編輯:Android開發教程
Android Service是分為兩種:
本地服務(Local Service): 同一個apk內被調用
遠程服 務(Remote Service):被另一個apk調用
遠程服務需要借助AIDL來完成。
AIDL 是什麼
AIDL (Android Interface Definition Language) 是一種IDL 語言,用於生成可以在Android設備 上兩個進程之間進行進程間通信(interprocess communication, IPC)的代碼。如果在一個進程中(例如 Activity)要調用另一個進程中(例如Service)對象的操作,就可以使用AIDL生成可序列化的參數。
AIDL IPC機制是面向接口的,像COM或Corba一樣,但是更加輕量級。它是使用代理類在客戶端和實現端傳 遞數據。
AIDL 的作用
由於每個應用程序都運行在自己的進程空間,並且可以從應用程序UI 運行另一個服務進程,而且經常會在不同的進程間傳遞對象。在Android平台,一個進程通常不能訪問另一個 進程的內存空間,所以要想對話,需要將對象分解成操作系統可以理解的基本單元,並且有序的通過進程邊界 。
通過代碼來實現這個數據傳輸過程是冗長乏味的,Android提供了AIDL工具來處理這項工作。
選擇AIDL的使用場合
官方文檔特別提醒我們何時使用AIDL是必要的:只有你允許客戶端從不同的 應用程序為了進程間的通信而去訪問你的service,以及想在你的service處理多線程。
如 果不需要進行不同應用程序間的並發通信(IPC),you should create your interface by implementing a Binder;或者你想進行IPC,但不需要處理多線程的,則implement your interface using a Messenger。無 論如何,在使用AIDL前,必須要理解如何綁定service——bindService。
下面將要講到的這個 例子來自:http://www.cnblogs.com/lonkiss/archive/2012/10/23/2735548.html
下面用一個客戶 端Activity操作服務端Service播放音樂的實例演示AIDL的使用。
服務端代碼結構
客戶端代碼結構
被標記的就是需 要動手的。
Parse 移動 SDK 為 iOS、Android 和 Windows 應用程序提供了基於雲的 API 和服務。Parse SDK 還提供 了 JavaScript 和
iPhone第一個真正意義上的競爭對手G1如期而來,正如蘋果的產品一樣,這是一個強大的掌上電腦,並且擁有一個開源的操作系統,和一個智能的指觸式用戶界面。和iPhone一樣
Preferences之間可以定義依賴關系,在第一個例子中已有說明。對應定義了依賴關系的Preferences,依賴指向的 Preference可以稱為Parent p
Android的編譯和測試工具需要測試項目組織符合預訂的結構:分別為Test case 類,Test case 包以及測試項目。JUnit 為Android的測試的基礎,