1. 在android/app/目錄下創(chuàng)建接口文件IServiceTest.aidl

創(chuàng)新新互聯(lián),憑借十多年的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),本著真心·誠(chéng)心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(wǎng)站有上千案例。做網(wǎng)站建設(shè),選創(chuàng)新互聯(lián)。
package android.app;
oneway interface IServiceTest
{
void show();
}
2. 在Android.mk文件中的變量LOCAL_SRC_FILES中加入core/java/android/app/IServiceTest.aidl
如果要在sdk中發(fā)布這個(gè)服務(wù)就在變量aidl_files中加入一樣的路徑。
3. 通過(guò)aidl編譯器編譯IServiceTest.aidl,會(huì)生成一個(gè)IServiceTest.java文件。
4. 創(chuàng)建服務(wù)類ServiceTestSerice
class ServiceTestSerice extends IServiceTest.Stub{
private static final String TAG = “ServiceTestSerice”;
Context mContext;
public ServiceTestSerice(Context context){
mContext = context;
}
public void show() throws RemoteException {
System.out.println(“My ServiceTestSerice”);
}
}
.5. 注冊(cè)服務(wù)
Java系統(tǒng)服務(wù)在ServerThread類的run()方法中生成并注冊(cè)到android平臺(tái),生成ServiceTestSerice實(shí)例對(duì)象,通過(guò)ServiceManager的addService方法將服務(wù)注冊(cè)到系統(tǒng)中。
try{
serviceTestSerice = new ServiceTestSerice(context);
ServiceManager.addService(Context.SERVICE_TEST, serviceTestSerice);
} catch (Throwable t) {
}
ServiceTestSerice serviceTestSerice;
以上代碼在ServerThread類的run()方法中。
在Context類中加入:
public static final StringSERVICE_TEST = “servicetest”
ServiceTestManager sServiceTestManager;
6. 使用系統(tǒng)服務(wù)
編寫(xiě)一個(gè)ServiceTestManager類,為包裝類。
public class ServiceTestManager{
private final IServiceTest mService;
ServiceTestManager(IServiceTest service){
mService = service;
}
public void test(){
try{
mService. show()
} catch (RemoteException ex){
}
}
}
7 提供應(yīng)用層開(kāi)發(fā)接口
在ContextImpl類中的getSystemService()方法中加入如下代碼:
else if (SERVICE_TEST.equals(name)){
return getServiceTestManager();
}
private ServiceTestManager getServiceTestManager(){
synchronized(sSync) {
if (sServiceTestManager == null){
IBinder b = ServiceManager.getService(SERVICE_TEST);
IServiceTest service = IServiceTest.Stub.asInterface(b);
sServiceTestManager = new ServiceTestManager(service);
}
}
調(diào)用過(guò)程如下:
ServiceTestManager manager= (ServiceTestManager) getSystemService(Context. SERVICE_TEST);
manager.show();
8. 測(cè)試
make
make update-api 更新current.xml文件
生成system.imz文件,放到ANDROID_SDK/platform/android-20/images/目錄下,
adb shell
service list
需要安裝java才能運(yùn)行的安裝JAVA程序方法:1、在網(wǎng)站上搜索一個(gè)APK格式的JAVA虛擬機(jī),下載安裝程序后安裝在手機(jī)上,安裝后手機(jī)上“所有程序”中增加此程序的圖標(biāo),如下圖(安裝方法與安裝其他程序一樣,通過(guò)手機(jī)瀏覽器下載安裝或通過(guò)電腦下載安裝包)2、先下載好自己需要的JAVA安裝包放在儲(chǔ)存卡上,進(jìn)入手機(jī)已安裝好的“JAVA“,再點(diǎn)擊菜單鍵(手機(jī)下方三條橫線的圖標(biāo)),點(diǎn)擊儲(chǔ)存卡選項(xiàng)3、手機(jī)上會(huì)自動(dòng)識(shí)別到儲(chǔ)存卡上的JAVA軟件,點(diǎn)擊需要安裝的一個(gè)軟件,我們以安裝QQ軟件為列(注意:并不是保存的所有的JAVA軟件都會(huì)被識(shí)別),選擇后點(diǎn)擊確定4、手機(jī)會(huì)提示選擇文件夾,在點(diǎn)擊空白處會(huì)自動(dòng)跳轉(zhuǎn)到下一個(gè)安裝界面5、界面直接切換到下一步操作界面時(shí),會(huì)提示:應(yīng)用程序手機(jī)QQ不受信任,確定繼續(xù)嗎?請(qǐng)點(diǎn)擊“確定”6、點(diǎn)擊“確定“后,手機(jī)將開(kāi)始安裝JAVA軟件7、安裝完成后,手機(jī)會(huì)直接提示:想要啟動(dòng)應(yīng)用程序嗎?如需要啟動(dòng)就點(diǎn)擊“確定“,如不需要就點(diǎn)擊”取消“,QQ軟件就已安裝完畢,如果需要使用QQ軟件,就進(jìn)入手機(jī)上安裝的“JAVA”程序,安裝的JAVA軟件都會(huì)在此程序打開(kāi)后的頁(yè)面顯示,點(diǎn)擊“手機(jī)QQ”即可運(yùn)行
首先要搭建android開(kāi)發(fā)環(huán)境,eclipse為例,先下載安裝android sdk, 之后安裝eclipse插件adt.然后在eclipse打開(kāi)AVD(android virtual device)。現(xiàn)在假設(shè)你的環(huán)境已經(jīng)打好。新建一個(gè)android項(xiàng)目,里面自動(dòng)生成一個(gè)類,Main什么的,名字不記得,之后把你的代碼復(fù)制過(guò)去,如果你有圖形用戶界面,那還要重寫(xiě)界面,因?yàn)閍nroid并不用swing組件,如果沒(méi)有界面,需要交互的話你自己寫(xiě)個(gè)簡(jiǎn)單界面。總之雖然android用的是java代碼,不過(guò)是有自己的API,和java的JDK還是有些區(qū)別。但是java自身的語(yǔ)言機(jī)制比如繼承,多態(tài),泛型等等還是可以使用。
當(dāng)前文章:安卓怎么添加java代碼,安卓手機(jī)寫(xiě)java代碼
轉(zhuǎn)載來(lái)于:http://chinadenli.net/article19/dsehidh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、營(yíng)銷型網(wǎng)站建設(shè)、面包屑導(dǎo)航、動(dòng)態(tài)網(wǎng)站、網(wǎng)站收錄、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容