淺談Android Aidl 通訊機(jī)制
服務(wù)端:
首先是編寫一個(gè)aidl文件,注意AIDL只支持方法,不能定義靜態(tài)成員,并且方法也不能有類似public等的修飾符;AIDL運(yùn)行方法有任何類型的參數(shù)和返回值,在java的類型中,以下的類型使用時(shí)不需要導(dǎo)入包(import),基本數(shù)據(jù)類型、String、Map、List.當(dāng)然為了避免出錯(cuò),建議只要使用了,就導(dǎo)入包。
然后在服務(wù)端啟動(dòng)一個(gè)服務(wù)并注冊(cè),編寫一個(gè)任意類實(shí)現(xiàn)AIDL文件生成的JAVA接口Stub!
最后在service里面實(shí)例化你的任意類并且在onBind(Intent a)方法上面返回你任意類的對(duì)象!
客戶端:
首先把你在服務(wù)端的aidl文件完整的復(fù)制過來一份,并且保證包名一樣
然后調(diào)用bindservice方法綁定你在服務(wù)端創(chuàng)建的方法mContext.bindService(intent, mServiceConnection, 0);
其中mServiceConnection是重點(diǎn):
private ServiceConnection mServiceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {//連接上服務(wù)器時(shí)調(diào)用
mService = IRemoteService.Stub.asInterface(service);
}
@Override
public void onServiceDisconnected(ComponentName name) {//沒連上調(diào)用
mService = null;
}
};
其中mService就是服務(wù)端的aidl對(duì)象,我們可以通過它來給服務(wù)端的方法賦值
其中的傳的Intent要注意必須提供一個(gè)intent-filter來匹配請(qǐng)求是否合法,所以我們?cè)诳蛻舳嗽L問服務(wù)的時(shí)候,還必須傳遞包含了匹配action的Intent哦。
以上內(nèi)容是小編給大家介紹的Android Aidl 通訊機(jī)制 ,希望對(duì)大家有所幫助!
相關(guān)文章
安卓(Android)開發(fā)之統(tǒng)計(jì)App啟動(dòng)時(shí)間
當(dāng)大家要改善APP啟動(dòng)速度優(yōu)化的時(shí)候,首先要知道App的啟動(dòng)時(shí)間,那么改如何統(tǒng)計(jì)時(shí)間呢,下面我們一起來看看。2016-08-08
Ubuntu中為Android系統(tǒng)上實(shí)現(xiàn)內(nèi)置C可執(zhí)行程序測(cè)試Linux內(nèi)核驅(qū)動(dòng)程序
本文主要介紹在Ubuntu上為Android系統(tǒng)內(nèi)置C可執(zhí)行程序測(cè)試Linux內(nèi)核驅(qū)動(dòng)程序,這里對(duì)測(cè)試Linux 內(nèi)核驅(qū)動(dòng)程序做了詳細(xì)介紹,并附有代碼示例,有興趣的小伙伴可以參考下2016-08-08
android自定義組件實(shí)現(xiàn)儀表計(jì)數(shù)盤
這篇文章主要為大家詳細(xì)介紹了android自定義組件實(shí)現(xiàn)儀表計(jì)數(shù)盤,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
Android Studio 中的Gradle構(gòu)建系統(tǒng)示例
這篇文章主要介紹了Android Studio 中的Gradle構(gòu)建系統(tǒng)示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
解決NDK開發(fā)中Eclipse報(bào)錯(cuò)Unresolved inclusion jni.h的最終解決方法(已測(cè))
這篇文章主要介紹了解決NDK開發(fā)中Eclipse報(bào)錯(cuò)Unresolved inclusion jni.h的最終方法,需要的朋友可以參考下2016-12-12
Android開發(fā)實(shí)現(xiàn)讀取excel數(shù)據(jù)并保存為xml的方法
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)讀取excel數(shù)據(jù)并保存為xml的方法,涉及Android針對(duì)Excel數(shù)據(jù)讀取及xml格式文件的構(gòu)造與保存相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
Android中通過樣式來去除app的頭及界面全屏(備忘)的實(shí)現(xiàn)方法
這篇文章主要介紹了Android中通過樣式來去除app的頭及界面全屏(備忘)的相關(guān)資料,需要的朋友可以參考下2016-12-12
Kotlin中的對(duì)象表達(dá)式和對(duì)象聲明的具體使用
這篇文章主要介紹了Kotlin中的對(duì)象表達(dá)式和對(duì)象聲明的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

