91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 0.10M
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-02-01
  • 標(biāo)簽: 進程??AIDL??

資源簡介

這兩天在學(xué)習(xí)aidl跨進程調(diào)用,研究了一天終于寫出了個helloword。。做下記錄吧。

根據(jù)官方提供的指南,開發(fā)aidl跨進程調(diào)用,主要分以下步驟:
1.         創(chuàng)建.aidl文件-該文件(YourInterface.aidl)定義了客戶端可用的方法和數(shù)據(jù)的接口。
2.         在makefile文件中加入.aidl文件-(Eclipse中的ADT插件提供管理功能)Android包括名為AIDL的編譯器,位于tools/文件夾。
3.         實現(xiàn)接口-AIDL編譯器從AIDL接口文件中利用Java語言創(chuàng)建接口,該接口有一個繼承的命名為Stub的內(nèi)部抽象類(并且實現(xiàn)了一些IPC調(diào)用的附加方法),要做的就是創(chuàng)建一個繼承YourInterface.Stub的類并且實現(xiàn)在.aidl文件中聲明的方法。
4.         向客戶端公開接口-如果是編寫服務(wù),應(yīng)該繼承Service并且重載Service.onBind(Intent) 以返回實現(xiàn)了接口的對象實例

上面的東西真的很官方。。下面結(jié)合我的例子做一下學(xué)習(xí)總結(jié):
先開發(fā)服務(wù)器端
1.創(chuàng)建一個aidl文件,可以看提供的源碼。創(chuàng)建完成后,eclipse插件自動在gen目錄下生成同名字的java文件。里面包含一個Stub抽象類,這個類繼承自android.os.Binder,這個類是實現(xiàn)整個遠程調(diào)用的核心。
2.然后創(chuàng)建一個類來繼承上面說到的那個Stub抽象類,實現(xiàn)里面的抽象方法。(這些抽象方法是根據(jù)aidl文件自動生成的)。
3.創(chuàng)建一個自定義Service繼承自Service,實現(xiàn)其onBind方法,注意此onBind方法必須返回第二步創(chuàng)建的那個Stub類的子類。然后在xml中聲明此service,注意此service的聲明必須包含一個action,此action也用于客戶端的調(diào)用使用。(在下面的客戶端開發(fā)中會有介紹)。
4.創(chuàng)建一個activity,此activity只要實現(xiàn)把service啟動了即可。
這樣服務(wù)器端就開發(fā)完畢,運行后啟動了一個可供遠程調(diào)用的service。關(guān)鍵還是通過onBind暴露一個Binder給客戶端。Binder哪來呢?就是通過aidl文件adt會自動生成一個抽象類Stub繼承自Binder,只需要創(chuàng)建一個類實現(xiàn)這個Stub的抽象方法即可。

然后開發(fā)客戶端:
1.客戶端也需要一個aidl文件,注意客戶端的aidl文件的包名必須和服務(wù)器端的aidl包名一致,名字也相同。創(chuàng)建完后同樣會在gen下生成一個接口。
2.創(chuàng)建一個Activity,包含變量ServiceConnection con,實現(xiàn)其onServiceConnected和onServiceDisconnected方法,onServiceConnected方法生成第一步那個接口的實現(xiàn)類的對象。con對象用于在onCreate中綁定service,這個service的action必須為服務(wù)器端聲明的那個service的配置action。綁定中用到con會執(zhí)行onServiceConnected方法生成aidl對象iPerson。然后就可以通過iPerson來調(diào)用aidl里的任意方法返回服務(wù)器的東西。
客戶端開發(fā)完畢。關(guān)鍵點是創(chuàng)建aidl文件自動生成了一個接口,在activity中必須綁定服務(wù)程序開啟的service,在綁定過程中初始化aidl對象。然后就可用aidl對象調(diào)用任意方法了。

OK,可以運行看效果了。過程真的很繁瑣。。但是好像也只能這樣了。最主要的還是服務(wù)端onBind暴露,然后客戶端bindService得到aidl對象。

資源截圖

代碼片段和文件信息

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2425??2012-07-04?15:20??aidl跨進程調(diào)用\aidl跨進程調(diào)用.txt

?????文件?????128808??2012-07-04?15:20??aidl跨進程調(diào)用\remote.zip

?????目錄??????????0??2012-07-04?15:21??aidl跨進程調(diào)用

-----------?---------??----------?-----??----

???????????????131233????????????????????3


評論

共有 條評論