圖文演示AIDL的使用全過程

注意:本文不做任何理論性的解釋說明,只有實際操作,至於Service的綁定過程,AIDL的實現過程之類的,一律不做深入講解,具體的原理講解,請跳轉學習AIDL,這一篇文章就夠了,這篇文章講解的很詳細,在此致敬


下面開始教程:

一、創建AIDL服務端


1、鼠標選中main文件夾,右鍵,new —— ADIL —— AIDL file,如圖所示





2,輸入aidl文件的名字,不要加後綴,如圖所示,然後點擊確定即可






3,生成後的目錄結構如下所示






4,編寫AIDL接口,如圖所示





5,點擊工具欄的build——make project,studio會幫我們把ADIL文件編譯成二進制文件


6,創建AIDL的實現類,在java文件夾上右鍵,new Service , 輸入文件名,系統會自動生成對應的文件,並且會自動在AndroidMainfest中幫我們配置好,生成的Service如圖


7,實現前面定義的接口,具體編寫方法看圖


8,編輯,安裝到手機上,這樣,AIDL的Service端就完成了


二、編寫AIDL的客戶端


1、創建AIDL文件夾,main ——— new —— Folder —— AIDL Folder,


2,創建AIDL的存放文件夾,aidl ——new —— pacakge , 粘貼進我們前面生成的AIDL文件的包名,粘貼好之後,如圖所示


3,把在Service端端生成的AIDL文件粘貼進我們創建好的文件夾裏面,如圖所示


4,點擊工具欄的build——make project


5,把ADIL作爲一個屬性引入,同時把ServiceConnection也作爲一個屬性引入(可以在其它位置實現後再引入,我這裏直接作爲匿名內部類引入了)


6,在onServiceConnected裏面實例化myAidlInterface,如圖所示


7,在適當的時候綁定Service,(一定要在調用之前綁定),如圖所示,實際使用中,最好做判空處理(示例代碼中沒寫),注意在解綁,防止內存泄漏等問題

new ComponentName("cn.showmac.aidlservice", "cn.showmac.aidlservice.PlusService")
ComponentName的兩個參數,第一個是AIDL文件的包名,第二個是要返回AIDL對象的Service





8,安裝,執行

發佈了31 篇原創文章 · 獲贊 13 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章