android開(kāi)發(fā)系列之a(chǎn)idl

      aidl在android開(kāi)發(fā)中的主要作用就是跨進(jìn)程通訊來(lái)著,說(shuō)到進(jìn)程相比很多人都是非常熟悉了,但是為什么會(huì)有跨進(jìn)程通訊這個(gè)概念呢?原來(lái)在android系統(tǒng)中,有這么一套安全機(jī)制,為了各個(gè)Apk數(shù)據(jù)的獨(dú)立性、安全性,它們彼此之間是不能直接進(jìn)行數(shù)據(jù)的訪問(wèn)的。所以為了實(shí)現(xiàn)多個(gè)APK之間的數(shù)據(jù)、方法、代碼復(fù)用,我們通常采用的做法就是定義好AIDL接口,這樣就能夠既保護(hù)現(xiàn)有代碼的邏輯性、同時(shí)又能夠兼顧好封裝性,各個(gè)團(tuán)隊(duì)之間只需要溝通好AIDL接口定義就可以了。

      下面讓我們直接進(jìn)入主題吧,在進(jìn)行AIDL定義的時(shí)候,通常會(huì)將公用的代碼邏輯單獨(dú)封裝到一個(gè)獨(dú)立的APK中,這個(gè)APK我們不妨成為服務(wù)器Server。當(dāng)定義好Server斷邏輯之后,就可以供其他第三方代碼調(diào)用了,這個(gè)第三方Apk我們不妨成為Client。但是Server和Client方,必須同時(shí)保證AIDL文件名稱(chēng)相同,同時(shí)又在相同的包名下面。只有同時(shí)滿(mǎn)足這兩點(diǎn)的話,才能利用AIDL進(jìn)行通訊。

      假如有一套公用的計(jì)算方法,在多個(gè)第三方APK中都需要調(diào)用。所以定義兩個(gè)android project,一個(gè)服務(wù)端程序AidlServer,一個(gè)客戶(hù)端測(cè)試程序TestClient。其中服務(wù)端、客戶(hù)端的AIDL接口文件都位于包“com.example.aidl下面”,定義好ICal.aidl文件,代碼如下:

1
2

我想了解如何學(xué)習(xí)

姓名:
手機(jī):
留言: