Android Programming: Pushing the Limits -- Chapter 7:Android IPC -- ApiWrapper

來源:互聯網
上載者:User

標籤:

前面兩片文章講解了通過AIDL和Messenger兩種方式實現Android IPC。而本文所講的並不是第三種IPC方式,而是對前面兩種方式進行封裝,這樣我們就不用直接把Aidl檔案,java檔案拷貝到用戶端了,而是為用戶端提供一個aar(Anroid Archive)包。通過這個aar包對AIDL或者Messenger進行封裝,最終用戶端就可以像調用一般的java類一樣,而不用處理通訊方面的內容。(實際上書中說是要打包成jar包,但是在建立的Java Library Module中,我沒能成功的建立Aidl檔案,最後選擇了aar。如何建立aar,請閱讀:Building an AAR Library in Android Studio)。

本文不再對代碼進行解釋,如果不清楚請先閱讀:

Android Programming: Pushing the Limits -- Chapter 7:Android IPC -- AIDL

Android Programming: Pushing the Limits -- Chapter 7:Android IPC -- Messenger

本文範例程式碼:

Service:https://github.com/ldb-github/WrappedAidlService

Client:https://github.com/ldb-github/WrappedAidlClient

服務端:

項目包括了兩個Module:

app Module是服務所在。

wrappedaidl Module是一個Android Library,最終這個Module產生aar包,提供給用戶端。這個模組實際就是把原來在用戶端中與服務端進行通訊的代碼封裝了起來。

這個項目中包含了Aidl 和 Messenger 兩種方式。其中:

ApiWrapper是對Aidl方式的封裝。

ApiWrapperByMessenger是對Messenger方式的封裝。

為了能夠回調用戶端,增加了一個回調介面ApiCallback,ApiWrapper或者ApiWrapperByMessenger會在通訊的不同時期調用相應的回調方法把訊息傳遞給用戶端。

 

用戶端:

這樣用戶端就不用直接拷貝服務端的檔案,而是添加aar包:

同時還得修改模組的build.gradle檔案:

這樣就可以在用戶端使用ApiCallback,ApiWrapper 和 ApiWrapperByMessenger了。

用戶端UI:

 

Android Programming: Pushing the Limits -- Chapter 7:Android IPC -- ApiWrapper

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.