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程式間通訊,AIDL工作原理AndroidAI
- Aidl程式間通訊詳細介紹AI
- android AIDL程式間通訊(只介紹了簡單資料型別)AndroidAI資料型別
- [Android]你不知道的Android程式化(4)--程式通訊AIDL框架AndroidAI框架
- Android 程式之間通訊Android
- Android studio 無法建立layout_land檔案解析Android
- Android程式間通訊詳解Android
- 4-AIII–Service跨程式通訊:aidlAI
- Android程式間通訊(複習筆記)Android筆記
- Android studio匯出apk檔案AndroidAPK
- Webview獨立程式並通過AIDL實現資料通訊WebViewAI
- 使用命令列建立Android Studio專案命令列Android
- 溫故之.NET程式間通訊——記憶體對映檔案記憶體
- Android AIDL原理AndroidAI
- 用bat批次修改檔案建立和修改時間BAT
- Android執行緒間通訊Android執行緒
- Android跨程式通訊Android
- Android 多程式通訊Android
- PHP程式間通訊PHP
- 程式間通訊——LINUXLinux
- 程式間通訊(Socket)
- 程式間的通訊
- Linux程式間通訊Linux
- Android IPC 之AIDLAndroidAI
- Flutter與android之間的通訊FlutterAndroid
- [Android]程式通訊Andromeda框架Android框架
- Android10 建立檔案 Permission deniedAndroid
- Visual Studio 2005 如何建立“Web 應用程式”Web
- Visaul Studio 2015 MFC 應用程式工程建立
- 什麼是程式間通訊?Linux程式間通訊有幾種方式?Linux
- 程式間通訊是什麼?Linux程式間通訊有幾種方式?Linux
- IPC-程式間通訊
- 程式間通訊簡介
- Linux程式間通訊-eventfdLinux
- 用cli建立.vue檔案Vue
- 程式間通訊--訊息佇列佇列
- Android AIDL使用詳解AndroidAI
- Android中活動間通訊總結Android
- 餓了麼開源專案Hermes:新穎巧妙易用的Android程式間通訊IPC框架Android框架