国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

android developer tiny share-20170217

2019-11-08 00:22:30
字體:
來源:轉載
供稿:網(wǎng)友

今天繼續(xù)講AIDL,講android中如何創(chuàng)建AIDL,包括AIDL的語法,數(shù)據(jù)類型,以及如何生成對應的Binder類。

下面是android developer官方的講解:

1.創(chuàng)建 .aidl 文件AIDL 使用簡單語法,使您能通過可帶參數(shù)和返回值的一個或多個方法來聲明接口。 參數(shù)和返回值可以是任意類型,甚至可以是其他 AIDL 生成的接口。您必須使用 java 編程語言構建 .aidl 文件。每個 .aidl 文件都必須定義單個接口,并且只需包含接口聲明和方法簽名。默認情況下,AIDL 支持下列數(shù)據(jù)類型:

Java 編程語言中的所有原語類型(如 int、long、char、boolean 等等)StringCharSequenceListList 中的所有元素都必須是以上列表中支持的數(shù)據(jù)類型、其他 AIDL 生成的接口或您聲明的可打包類型。 可選擇將 List 用作“通用”類(例如,List<String>)。另一端實際接收的具體類始終是 ArrayList,但生成的方法使用的是 List 接口。Map

Map 中的所有元素都必須是以上列表中支持的數(shù)據(jù)類型、其他 AIDL 生成的接口或您聲明的可打包類型。 不支持通用 Map(如 Map<String,Integer> 形式的 Map)。 另一端實際接收的具體類始終是 HashMap,但生成的方法使用的是 Map 接口。

您必須為以上未列出的每個附加類型加入一個 import 語句,即使這些類型是在與您的接口相同的軟件包中定義。

定義服務接口時,請注意:方法可帶零個或多個參數(shù),返回值或空值。所有非原語參數(shù)都需要指示數(shù)據(jù)走向的方向標記??梢允?in、out 或 inout(見以下示例)。原語默認為 in,不能是其他方向。注意:您應該將方向限定為真正需要的方向,因為編組參數(shù)的開銷極大。.aidl 文件中包括的所有代碼注釋都包含在生成的 IBinder 接口中(import 和 package 語句之前的注釋除外)只支持方法;您不能公開 AIDL 中的靜態(tài)字段。以下是一個 .aidl 文件示例:
// IRemoteService.aidlpackage com.example.android;// Declare any non-default types here with import statements/** Example service interface */interface IRemoteService {    /** Request the PRocess ID of this service, to do evil things with it. */    int getPid();    /** 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);}只需將您的 .aidl 文件保存在項目的 src/ 目錄內,當您開發(fā)應用時,SDK 工具會在項目的 gen/ 目錄中生成 IBinder 接口文件。生成的文件名與 .aidl 文件名一致,只是使用了 .java 擴展名(例如,IRemoteService.aidl 生成的文件名是 IRemoteService.java)。如果您使用 Android Studio,增量編譯幾乎會立即生成 Binder 類。 如果您不使用 Android Studio,則 Gradle 工具會在您下一次開發(fā)應用時生成 Binder 類 — 您應該在編寫完 .aidl 文件后立即用 gradle assembleDebug (或 gradle assembleRelease)編譯項目,以便您的代碼能夠鏈接到生成的類。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 龙江县| 永福县| 都江堰市| 隆德县| 淅川县| 咸阳市| 湄潭县| 红原县| 北碚区| 民县| 静安区| 郎溪县| 策勒县| 漳州市| 台中县| 鄱阳县| 涿鹿县| 浦江县| 内黄县| 富源县| 香港 | 孟连| 奇台县| 界首市| 南岸区| 邯郸市| 双柏县| 阿克苏市| 三江| 精河县| 翁源县| 灵川县| 南陵县| 河北省| 大新县| 姚安县| 广汉市| 将乐县| 上林县| 巴南区| 调兵山市|