日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

aidl生成java文件_Android AIDL自动生成Java文件测试

發布時間:2025/5/22 Android 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 aidl生成java文件_Android AIDL自动生成Java文件测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/********************************************************************************

* Android AIDL自動生成Java文件測試

* 說明:

* 知道有aidl這東西已經挺久了,但是一直沒有花時間來系統了解一下其工作機制,現在

* 花點時間一點一點驗證一下其功能。

*

* 2016-5-8 深圳 南山平山村 曾劍鋒

*******************************************************************************/一、參考文章:1. Android AIDL使用詳解

http://blog.csdn.net/stonecao/article/details/6425019

2. android進程間通信:使用AIDL

http://blog.csdn.net/saintswordsman/article/details/5130947

二、cat forService.aidl

package com.example.aidltest.aidl;

import com.example.aidltest.aidl.forActivity;interfaceforService {voidregisterTestCall(forActivity cb);voidinvokCallBack();

}

三、cat forService.java/** This file is auto-generated. DO NOT MODIFY.

* Original file: D:\\soft\\Android\\workspace\\AidlTest\\src\\com\\example\\aidltest\\aidl\\forService.aidl*/package com.example.aidltest.aidl;//繼承了android.os.IInterface接口

public interfaceforService extends android.os.IInterface {/** Local-side IPC implementation stub class.*/

//Stub類繼承了Binder,并繼承我們在aidl文件中定義的接口

public static abstract classStub extends android.os.Binder implements

com.example.aidltest.aidl.forService {private static final java.lang.String DESCRIPTOR = "com.example.aidltest.aidl.forService";/** Construct the stub at attach it to the interface.*/

publicStub() {this.attachInterface(this, DESCRIPTOR);

}/**

* Cast an IBinder object into an com.example.aidltest.aidl.forService

* interface, generating a proxy if needed.*/

//在使用的時候經常會看到這一部分的內容

public staticcom.example.aidltest.aidl.forService asInterface(

android.os.IBinder obj) {if ((obj == null)) {return null;

}

android.os.IInterface iin=obj.queryLocalInterface(DESCRIPTOR);if (((iin != null) &&(iin instanceof com.example.aidltest.aidl.forService))) {return((com.example.aidltest.aidl.forService) iin);

}return newcom.example.aidltest.aidl.forService.Stub.Proxy(obj);

}

@Overridepublicandroid.os.IBinder asBinder() {return this;

}

@Overridepublic boolean onTransact(intcode, android.os.Parcel data,

android.os.Parcel reply,intflags)

throws android.os.RemoteException {switch(code) {caseINTERFACE_TRANSACTION: {

reply.writeString(DESCRIPTOR);return true;

}caseTRANSACTION_registerTestCall: {

data.enforceInterface(DESCRIPTOR);

com.example.aidltest.aidl.forActivity _arg0;

_arg0=com.example.aidltest.aidl.forActivity.Stub

.asInterface(data.readStrongBinder());this.registerTestCall(_arg0);

reply.writeNoException();return true;

}caseTRANSACTION_invokCallBack: {

data.enforceInterface(DESCRIPTOR);this.invokCallBack();

reply.writeNoException();return true;

}

}returnsuper.onTransact(code, data, reply, flags);

}private static classProxy implements

com.example.aidltest.aidl.forService {privateandroid.os.IBinder mRemote;

Proxy(android.os.IBinder remote) {

mRemote=remote;

}

@Overridepublicandroid.os.IBinder asBinder() {returnmRemote;

}publicjava.lang.String getInterfaceDescriptor() {returnDESCRIPTOR;

}

@Overridepublic voidregisterTestCall(

com.example.aidltest.aidl.forActivity cb)

throws android.os.RemoteException {

android.os.Parcel _data=android.os.Parcel.obtain();

android.os.Parcel _reply=android.os.Parcel.obtain();try{

_data.writeInterfaceToken(DESCRIPTOR);

_data.writeStrongBinder((((cb!= null)) ?(cb.asBinder())

: (null)));

mRemote.transact(Stub.TRANSACTION_registerTestCall, _data,

_reply,0);

_reply.readException();

}finally{

_reply.recycle();

_data.recycle();

}

}

@Overridepublic voidinvokCallBack() throws android.os.RemoteException {

android.os.Parcel _data=android.os.Parcel.obtain();

android.os.Parcel _reply=android.os.Parcel.obtain();try{

_data.writeInterfaceToken(DESCRIPTOR);

mRemote.transact(Stub.TRANSACTION_invokCallBack, _data,

_reply,0);

_reply.readException();

}finally{

_reply.recycle();

_data.recycle();

}

}

}static final int TRANSACTION_registerTestCall = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);static final int TRANSACTION_invokCallBack = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1);

}//AIDL中自定義的方法,沒有實現

public voidregisterTestCall(com.example.aidltest.aidl.forActivity cb)

throws android.os.RemoteException;public voidinvokCallBack() throws android.os.RemoteException;

}

四、cat MainActivity.javapublic classMainActivity extends ActionBarActivity {

@Overrideprotected voidonCreate(Bundle savedInstanceState) {

......newforService.Stub() {

@Overridepublic voidregisterTestCall(forActivity cb) throws RemoteException {//TODO Auto-generated method stub

}

@Overridepublic voidinvokCallBack() throws RemoteException {//TODO Auto-generated method stub

}

};

......

}

}

總結

以上是生活随笔為你收集整理的aidl生成java文件_Android AIDL自动生成Java文件测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。