Android aidl學(xué)習(xí)筆記-服務(wù)端

本文參考:http://blog.csdn.net/fwt336/article/details/52587133

服務(wù)端編碼步驟

aidl描述:

AIDL (Android Interface Definition Language) 是一種IDL 語言,用于生成可以在Android設(shè)備上兩個(gè)進(jìn)程之間進(jìn)行進(jìn)程間通信(interprocess communication, IPC)的代碼。如果在一個(gè)進(jìn)程中(例如Activity)要調(diào)用另一個(gè)進(jìn)程中(例如Service)對象的操作,就可以使用AIDL生成可序列化的參數(shù)。

操作步驟

1.首先新建一個(gè)android項(xiàng)目

2.main文件夾右鍵選擇aidl,新建一個(gè)aidl文件,本項(xiàng)目中文件名為IRemoteService,IRemoteService.aidl中可以任意寫幾個(gè)方法,這步操作之后main文件夾下回多一個(gè)aidl目錄,目錄中包名與java目錄中的包名一致。

3.點(diǎn)擊Build - Make Project,等待執(zhí)行完成,查看app - build - generated - source - aidl - debug下是否生成IRemoteService.java文件,IRemoteService中有一個(gè)靜態(tài)抽象類 Stub,Stub實(shí)現(xiàn)了IRemoteService接口,實(shí)現(xiàn)了IRemoteService.aidl中的所有方法,需要注意的是Stub中聲明了一個(gè)asInterface方法,這個(gè)方法接受一個(gè)Binder對象,并將其轉(zhuǎn)化成Stub對應(yīng)的接口對象(也就是這里的IRemoteService)并返回。

4.java目錄下新建一個(gè)javabean,項(xiàng)目中命名為HelloMsg并實(shí)現(xiàn)Parcelable接口。

5.aidl與IRemoteService.aidl同目錄下新建HelloMsg.aidl文件,文件中只需要寫入package 包名parcelable HelloMsg,注意:parcelablep是小寫。

6.再次Make Project。

7.java目錄下新建一個(gè)service繼承Service,本項(xiàng)目中命名為RemoteService,聲明IRemoteService.Stub對象,重寫onBind方法,用于向客戶端返回Binder對象,至此服務(wù)端代碼已經(jīng)編寫完成,不要忘記在AndroidManifest加上service標(biāo)簽。

源代碼已上傳Github,歡迎star:

https://github.com/uiatnys/AIDLServiceDemo

最后

項(xiàng)目結(jié)構(gòu)如下所示


src.png
iremoteservice.png
iremoteservice_java.png
hellomsg.png
hellomsg_java.png
remoteservice.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容