Android Studio 建立aidl檔案,用於程式間通訊
android studio的使用方式和eclipse大不相同,因為as是基於gradle構建專案的,eclipse是使用ant的方式構建。aidl檔案,定義了不同的程式之間進行通訊的介面,那as怎麼建立的呢?
一,AIDL是什麼鬼?
在Android平臺,一個程式通常不能訪問另一個程式的記憶體空間,所以要想對話,需要將物件分解成作業系統可以理解的基本單元,並且有序的通過程式邊界。由於每個應用程式都執行在自己的程式空間,並且可以從應用程式UI執行另一個服務程式,而且經常會在不同的程式間傳遞物件。Android提供了AIDL工具來處理這項工作。
*
AIDL (Android Interface Definition Language)是一種IDL
語言,用於生成可以在Android裝置上兩個程式之間進行程式間通訊(IPC)的程式碼。如果在一個程式中(例如Activity)要呼叫另一個程式中(例如Service)物件的操作,就可以使用AIDL生成可序列化的引數。
*
AIDL IPC機制是面向介面的,像COM或Corba一樣,但是更加輕量級。它是使用代理類在客戶端和實現端傳遞資料。
二,as自動構建,很簡單
選中你的專案module,右鍵>New>AIDL>AIDL File>IServiceInterface.aidl,as就會自動建立帶有AndroidManifest.xml中packageName一樣的包名,以及aidl檔案。如圖:
三,編寫aidl介面
這裡的介面程式碼,不能帶有修飾符,不能加public。
// IServiceInterface.aidl
package com.oair.oair_1;
// Declare any non-default types here with import statements
interface IServiceInterface {
String getServiceName();//自定義的方法
/**
* Demonstrates some basic types that you can use as parameters
* and return values in AIDL.
*/
void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat,
double aDouble, String aString);
}
編寫的介面,隨時可以增刪,提高擴充套件性,提供給遠端呼叫者。
可以通過as的選單:build>>Make Project
,生成對應的java檔案。建立完之後在build/generated/source/aidl/debug
下就可以見到自動生成的java檔案
四,aidl介面規範總結
1,Java程式語言的主要型別 (int, boolean等) — 不需要 import 語句。
2,不會有返回給呼叫方的異常。
3,預設IPC呼叫是同步的。如果已知IPC服務端會花費很多毫秒才能完成,可以試著在獨立的執行緒中呼叫。
4,AIDL介面中只支援方法,不能宣告靜態成員。
歡迎交流,Dusan,Q291902259。
相關文章
- Android程式間通訊之AIDLAndroidAI
- Android程式間通訊,AIDL工作原理AndroidAI
- Android 程式間通訊 AIDL詳解AndroidAI
- Android探索之AIDL實現程式間通訊AndroidAI
- Aidl程式間通訊詳細介紹AI
- 使用AIDL實現程式間的通訊AI
- Android 程式通訊機制之 AIDLAndroidAI
- 從AIDL看Android跨程式通訊AIAndroid
- Android IPC程式間通訊之AIDL和Messenger的使用AndroidC程式AIMessenger
- 從AIDL開始談Android程式間Binder通訊機制AIAndroid
- Android跨程式通訊之非AIDL(二)AndroidAI
- android AIDL程式間通訊(只介紹了簡單資料型別)AndroidAI資料型別
- Android 程式間通訊Android
- android-IPC/Binder/D-BUS(Binder/Messager/AIDL)程式間通訊(訊息機制)AndroidAI
- Linux程式間通訊中的檔案和檔案鎖Linux
- Android 程式之間通訊Android
- Android程式間的通訊Android
- [Android]你不知道的Android程式化(4)--程式通訊AIDL框架AndroidAI框架
- Android AIDL SERVICE 雙向通訊 詳解AndroidAI
- Android中AIDL實現程式通訊(附原始碼下載)AndroidAI原始碼
- Android程式間通訊詳解Android
- 4-AIII–Service跨程式通訊:aidlAI
- 快速入門android AIDL(開啟多程式並進行通訊)AndroidAI
- Android 之 Binder與程式間通訊Android
- Android 程式間通訊 Service、MessengerAndroidMessenger
- Android 使用Socket完成程式間通訊Android
- Android Studio Service AIDL 詳解AndroidAI
- 使用AIDL實現程式間的通訊之複雜型別傳遞AI型別
- Android程式間通訊——多程式共用SharedPreferencesAndroid
- Android studio 無法建立layout_land檔案解析Android
- 程式間通訊
- Android程式間通訊(複習筆記)Android筆記
- Webview獨立程式並通過AIDL實現資料通訊WebViewAI
- 溫故之.NET程式間通訊——記憶體對映檔案記憶體
- PHP程式間通訊PHP
- 程式間的通訊
- 程式間通訊(Socket)
- 程式間通訊 --IPC