【朝花夕拾】效能優化篇之(八)AIDL與Android跨程序通訊
一、Linux程序間通訊
1、程序隔離
在作業系統中,程序與程序間的記憶體和資料都是不共享的。兩個程序就好像大海中相互獨立的兩個島嶼,各自生活在互相平行的兩個世界中,互不干擾,各自為政。這樣做的目的,是為了避免程序間相互操作資料的現象發生,從而引起各自的安全問題。為了實現程序隔離,採用了虛擬地址空間,兩個程序各自的虛擬地址不同,從邏輯上來實現彼此間的隔離。
馬克思主義哲學說,人是一切社會關係的總和。任何一個個體都不可能完全隔離於外界,都不可避免地與外界“互通有無”。程序也一樣,時不時需要與其他程序之間通訊,兩個程序之間要進行通訊,就需要採用特殊的通訊機制:程序間通訊(IPC:Inter-Process Communication)。
Android系統基於Linux,咱們先了解一下Linux中跨程序間通訊。
二、Android跨程序通訊
三、Android元件間通訊
四、AIDL
五、理解Binder
相關推薦
【朝花夕拾】效能優化篇之(八)AIDL與Android跨程序通訊
一、Linux程序間通訊 1、程序隔離 在作業系統中,程序與程序間的記憶體和資料都是不共享的。兩個程序就好像大海中相互獨立的兩個島嶼,各自生活在互相平行的兩個世界中,互不干擾,各
【朝花夕拾】Android效能優化篇之(四)Apk打包
APK,即Android Package,是將android程式和資源整合在一起,形成的一個.apk檔案。相信所有的Android程式設計師是在IDE的幫助下,完成打包輕而易舉,但對打包流程真正清楚的可能並不多。本章的內容比較簡單,也是非常基礎的內容,但是對理解android應用的結構卻有很大
【朝花夕拾】Android效能優化篇之(一)序言及JVM篇
序言 筆者從事Anroid開發有些年頭了,深知掌握Anroid效能優化方面的知識的必要性,這是一個程式設計師必須修煉的內功。在面試中,它是面試官的摯愛,在工作中,它是程式碼質量的攔路虎,其重要性可見一斑。在團隊中,效能優化的工作又往往由經驗豐富的老師傅來完成,可見要做好效能優化,絕不是一件容易的事情。
【朝花夕拾】Android效能優化篇之(五)Android虛擬機器簡介
前言 Android虛擬機器的使用,使得android應用和Linux核心分離,這樣做使得android系統更穩定可靠,比如程式中即使包含惡意程式碼,也不會直接影響系統檔案;也提高了跨平臺相容性。在Android4.4以前的系統中,Android系統均採用Dalvik作為執行andorid程式的
【朝花夕拾】Android效能優化篇之(五)Android虛擬機器
前言 Android虛擬機器的使用,使得android應用和Linux核心分離,這樣做使得android系統更穩定可靠,比如程式中即使包含惡意程式碼,也不會直接影響系統檔案;也提高了跨平臺相容性。在Android4.4以前的系統中,Android系統均採用Da
【朝花夕拾】Android效能篇之(一)序言及JVM
序言 筆者從事Anroid開發有些年頭了,深知掌握Anroid效能優化方面的知識的必要性,這是一個程式設計師必須修煉的內功。在面試中,它是面試官的摯愛,在工作中,它是程式碼質量的攔路虎,其重要性可見一斑。在團隊中,效能優化的工作又往往由經驗豐富的老師傅來
【朝花夕拾】Android效能篇之(六)Android程序管理機制
一、Android程序管理的特殊設計 Linux系統對程序的管理方式是一旦程序活動停止,系統就會結束該程序。儘管Android基於Linux Kernel,但在程序管理上,卻採取了另外一種獨特的設計:當程序活動停止時,系統並不會立刻結束它,而是會盡可能地將該程序儲存在記憶體中,在以後的某個時間,
【朝花夕拾】Android效能篇之(七)Android跨程序通訊
前言 Android系統的執行由大量相互獨立的程序相互協助來完成的,所以Android程序間通訊問題,是做好Android開發高階工程師必須要跨過的一道坎,也是面試時經常被問及到的知識點。但是,我們是否真的清楚,Android中都有哪些方式實現跨程序通訊
【朝花夕拾】記憶體篇之(三)Java GC
在上一篇日誌中有講到,JVM記憶體由程式計數器、虛擬機器棧、本地方法棧、GC堆,方法區五個部分組成。其中GC堆是一塊多執行緒的共享區域,它存在的作用就是存放物件例項。本節中所要講述的各種場景,就發生在這塊區域,垃圾回收也主要發生在GC堆記憶體中。本章內容為高質量面試中幾乎是必問的知識點,尤其是
【朝花夕拾】Android Log篇
前言 從事Android開發的這些年中,經常碰到這樣一個現象:同一款app中,往往有好幾種風格迥異的log處理方式,有時候會讓維護者暈頭轉向。同時筆者也經常碰帶一些模稜兩可的問題:Log等級分好幾種,到底什麼情況下用哪個等級的log?什麼情況下可以使用log,log怎麼用,為什
【朝花夕拾】不要以今天的迴避來逃脫明天的責任。
專欄達人 授予成功建立個人部落格專欄
【朝花夕拾】一篇文章搞懂Android跨程序通訊
前言 只要是面試中高階工程師崗位,Android跨程序通訊就是最受面試官青睞的知識點。Android系統的執行由大量相互獨立的程序相互協助來完成的,所以Android程序間通訊問題,是做好Android開發高階工程師必須要跨過的一道坎。如果您還對這方面的
【朝花夕拾】設計模式之單例模式
itl con 單個 靜態類 domain led 加載數據 簡單 領導 單例模式簡介 單例模式是GOF 23個設計模式中最簡單的模式了,它提供了一種創建唯一對象的最佳實現,註意此處的簡單只是表述和意圖很簡單,但是實現起來,尤其是實現一個優美的單例模式卻沒有那麽簡單
【朝花夕拾】Android自定義View篇之(二)Canvas常用技巧
前言 上一篇講View的繪製流程中講到過,最後一步是draw流程,在這個過程中,子view需要重寫onDraw方法來畫出自己的內容。在自定義View繪製自身內容的時候,系統提供了3個非常重要的類來幫助開發者畫各種炫酷的圖形:Canvas、Paint、Pa
【朝花夕拾】Android自定義View篇之(四)Canvas繪製文字教程
前言 前面的文章中在介紹Canvas的時候,提到過後續單獨講Canvas繪製文字,因為這一節內容比較細緻,內容很多。這裡先宣告一下,本文的內容的來源於騰訊課堂中“仍物線學堂”中課件,因為該課件對常用的繪製文字基本技巧做了比較詳細的講解
【朝花夕拾】Android自定義View篇之(四)自定義View的三種實現方式及自定義屬性詳解
前言 儘管Android系統提供了不少控制元件,但是有很多酷炫效果仍然是系統原生控制元件無法實現的。好在Android允許自定義控制元件,來彌補原生控制元件的不足。但是在很多初學者看來,自定義View似乎很難掌握。其中有很大一部分原因是我們平時看到的自定
【朝花夕拾】Android自定義View篇之(五)Android事件分發及傳遞機制
前言 在自定義View中,經常需要處理Android事件分發的問題,尤其在有多個輸入裝置(如遙控、滑鼠、遊戲手柄等)時,事件處理問題尤為突出。Android事件分發機制,一直以來都是一個讓眾多開發者困擾的難點,至少筆者在工作的前幾年中,沒有特意研究它之前
【朝花夕拾】Android自定義View篇之(五)Android事件分發機制(上)三個重要方法的處理邏輯
前言 在自定義View中,經常需要處理Android事件分發的問題,尤其在有多個輸入裝置(如遙控、滑鼠、遊戲手柄等)時,事件處理問題尤為突出。Android事件分發機制,一直以來都是一個讓眾多開發者困擾的難點,至少筆者在工作的前幾年中,沒有特意研究它之前
【朝花夕拾】Android自定義View篇之(六)Android事件分發機制(中)從原始碼分析事件分發邏輯及經常遇到的一些“詭異”現象
前言 轉載請註明,轉自【https://www.cnblogs.com/andy-songwei/p/11039252.html】謝謝! 在上一篇文章【【朝花夕拾】Android自定義View篇之(
【朝花夕拾】Android自定義View篇之(七)Android事件分發機制(下)解決滑動衝突
前言 前面兩篇文章,花了很大篇幅講解了Android的事件分發機制的原理性知識。然而,“紙上得來終覺淺,絕知此事要躬行”,前面講的那些原理,也都是為解決實際問題而服務的。本文將結合實際工作中經常遇到的滑動衝突案例,總結滑動衝突的場