麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > OS > 安卓 > 正文

Android遠程服務(wù)編寫和調(diào)用教程

2024-09-11 17:15:22
字體:
供稿:網(wǎng)友

網(wǎng)上汗牛充棟的文章都是介紹Android遠程服務(wù)的,一個個將Binder機制、AIDL講得頭頭是道,然而沒有幾個人能夠給出清晰的范例說明如何用最快的方法學(xué)會編寫和調(diào)用一個Android遠程服務(wù)。若你僅僅是想如何編寫或者調(diào)用Android的遠程服務(wù),而懶得去理解Binder機制是如何運行的,那么本篇文章正好適合你。畢竟現(xiàn)在人人都會開車,但沒有幾個人明白發(fā)動機到底是如何運作的。

預(yù)備知識

讀者應(yīng)該有基本的java知識,和Android簡單app的開發(fā)經(jīng)驗。

環(huán)境

代碼運行環(huán)境:
1.ADT2014版本;
2.android:minSdkVersion=”8”;android:targetSdkVersion=”20”
3.workspace中已經(jīng)生成了appcompatv7,它的版本是android-22;

遠程服務(wù)開發(fā)教程

在開始開發(fā)之前,先弄清楚幾個概念:
1. IPC:進程間通信,你只需要知道Android是依賴這個東西來進行遠程服務(wù)調(diào)用的就可以了。
2. Binder機制:Android發(fā)明的一種IPC機制,據(jù)說非常非常的好,你就當(dāng)它是個黑盒子,通過這個黑盒子就可以進行遠程服務(wù)調(diào)用了,而且Android中的很多機制都是通過它實現(xiàn)的。
3. AIDL語言:一種專門用來寫遠程接口的語言,看它的名字就知道了,Android Interface Definition
Language。AIDL語言可以被android提供的編譯器編譯為Java源代碼,這個Java源代碼將會被服務(wù)的和客戶端使用,用來簡化遠程服務(wù)開發(fā)流程。如果你當(dāng)初玩過CORBA,那就更能明白什么是IDL語言了
4. IInterface接口、IBinder接口、IBinder類等等:都是用來實現(xiàn)Binder機制的接口和類,在本教程中,你就當(dāng)它們是Binder黑盒子的一部分,不需要了解。
再說一點,其實Android提供的ApiDemos中就有一個遠程服務(wù)的標(biāo)準(zhǔn)范例,但是其一是它沒有將服務(wù)端和客戶端分開寫,其二是例子中摻雜了太多其他的功能,因此理解起來較為困難。這個例子是com.example.android.apis.app.RemoteService,有興趣的可以在看完本文后再去詳細研究。

第一步,創(chuàng)建一個普通Android應(yīng)用

應(yīng)用名為WxbRemoteService,這個應(yīng)用可以刪掉其Activity類,但是為了簡單,我們就保留所有自動創(chuàng)建的代碼。

第二步,編寫AIDL

AIDL語言的語法和Java其實很像,你甚至可以先編寫一個Java接口,然后刪掉public、protected、private這些權(quán)限限定詞即可。例子如下IWxbService.aidl:

package com.dumaisoft.wxbremoteservice;interface IWxbService { void setName(String name); String getName();}

注意幾點:
1.接口名和aidl文件名相同。
2.接口和方法前不用加訪問權(quán)限修飾符public,private,protected等,也不能用final,static。
3.Aidl默認支持的類型包話java基本類型(int、long、boolean等)和(String、List、Map、 CharSequence),使用這些類型時不需要import聲明。對于List和Map中的元素類型必須是Aidl支持的類型。如果使用自定義類型作 為參數(shù)或返回值,自定義類型必須實現(xiàn)Parcelable接口。
4.自定義類型和AIDL生成的其它接口類型在aidl描述文件中,應(yīng)該顯式import,即便在該類和定義的包在同一個包中。
5.在aidl文件中所有非Java基本類型參數(shù)必須加上in、out、inout標(biāo)記,以指明參數(shù)是輸入?yún)?shù)、輸出參數(shù)還是輸入輸出參數(shù)。
6.Java原始類型默認的標(biāo)記為in,不能為其它標(biāo)記
IWxbService.aidl文件的位置是在com.dumaisoft.wxbremoteservice包中,只要語法正確,則會在ADT的gen目錄下的com.dumaisoft.wxbremoteservice包中生成java文件IWxbService.java。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产午夜精品一区二区三区在线观看 | xxxxxx免费 | 成人免费入口 | 成年免费看| 久久精品久久久久 | 国产精品久久久久久久hd | 黄色大片免费网站 | 亚洲精品久久久久www | www.69色| 一级做受大片免费视频 | 亚洲成人涩涩 | 成人资源在线观看 | 自拍亚洲伦理 | 在线天堂中文在线资源网 | 久久99国产综合精品 | 亚洲成人在线视频网站 | 日本娇小videos高潮 | 在线中文日韩 | 欧美成a人片在线观看久 | 欧美高清第一页 | 成人在线视频一区 | 2019天天干夜夜操 | 香蕉成人在线视频 | 91精品国产综合久久男男 | 毛片免费视频 | 午夜精品成人一区二区 | 日本黄色免费播放 | 天天碰天天操 | 日韩精品中文字幕在线播放 | 夜夜夜精品视频 | 中国av免费在线观看 | xxxx hd video 69| 国产精品99久久久久久久 | 热久久成人| 精品国产91久久久久久 | 又黄又爽免费无遮挡在线观看 | 久草在线新时代视觉 | 亚洲男人的天堂在线视频 | 日韩免费黄色 | 毛片一级网站 | 免费嗨片首页中文字幕 |