先說點題外話雾鬼,這個AIDL我為什么要寫下來呢擎鸠?有兩個原因吧腺阳,第一就是自己平時開發(fā)過程中所遇到的問題及所預(yù)演過的案例都沒有做筆記馍盟,第二就是前段時間去面試了于置,被xxx面試官提問了解AIDL嗎?AIDL服務(wù)是運行在哪個進程和哪個線程等等問題贞岭?當(dāng)時被問蒙了(畢竟用的比較少)...故此簡單記錄一下八毯!
經(jīng)測試搓侄。AIDL接口定義在服務(wù)端,客戶端調(diào)用的時候即使是在子線程话速,該AIDL服務(wù)始終運行在服務(wù)端的線程讶踪,進程也是一樣。完全獨立的兩個進程和線程泊交!
什么是AIDL呢乳讥,這里不做過多的解釋,簡單解釋一下名詞:
AIDL:Android Interface Definition Language,即Android接口定義語言廓俭。
直接進入主題云石,首先AIDL是一種跨進程接口,所以需要service & client兩個進程研乒,每個進程即一個APP汹忠。打開AS分別創(chuàng)建兩個APP,先以service為例:在src/main下右鍵New-AIDL-AIDL File創(chuàng)建一個. aidl結(jié)尾的文件雹熬,里面定義自己的接口方法宽菜,然后就可以點擊狀態(tài)欄build-Make Module進行預(yù)編譯,在build-generated-source-aidl-debug目錄下就能看到我們剛才寫的. aidl文件的接口實現(xiàn)源碼了橄唬,看到里面有內(nèi)部類stub就表明已經(jīng)成功了赋焕。
手機端空閑時間記錄,未完待續(xù)...