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文件测试相关推荐
- 在html文件中集成easy,easyapi 通过java注解或注释自动生成带页面的接口文档
Java-自动生成带页面可调试的接口文档 介绍:一款java接口文档自动生成的插件,包含了根据接口注释或注解自动生成接口文档,可网页打开. 特点:一款无任何代码侵入的生成方式,10秒钟集成 1.支持读 ...
- SpringBoot如何自动生成实体类和Dao层以及映射文件(mybatis generator 自动生成代码)
一.首先添加自动生成代码插件 <!-- mybatis generator 自动生成代码插件 生成时解除注释 --><plugin><groupId>org.myb ...
- doc自动生成html,java web应用中自动生成文章html页面的实现.doc
java web应用中自动生成文章html页面的实现 java web应用中自动生成文章html页面的实现 2009-11-09 00:24:15 标签:web开发,页面转换 [推送到技术圈] 版权声 ...
- Java api文档自动生成工具smartdoc+torna
首先,一般做java服务端都用过postman,并且都写过前端调用的api文档接口,并且也用过市面上的一些工具. API自文档动生成,能够省去了写文档的时间. 当然,当前也会有很多类似的开源工具,我们 ...
- Java进阶之 如何自动生成代码
一.前言:为什么要有代码的自动生成? 对于这个问题 最简洁直接的回答就是:代替手动编写代码.提高工作效率. 什么样的场景和代码适合用自动生成这种方式呢? 做过Java服务端的朋友一定都 ...
- MyEclipse中流程定义文件保存时自动生成流程图
前提:MyEclipse已安装Activiti插件 第一步:打开菜单Windows->Preferences 第二步:选择Activiti->Save 第三步:勾选Create proce ...
- 解决VScode在保存less文件时,自动生成对应的css文件以及安装Easy less之后,计算式子不显示结果的问题
解决VScode在保存less文件时,自动生成对应的css文件以及安装Easy less之后,计算式子不显示结果的问题 一.解决VScode在保存less文件时,自动生成对应的css文件的问题 下载安 ...
- 痞子衡嵌入式:MCUXpresso IDE下工程链接文件配置管理与自动生成机制
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下工程链接文件配置管理与自动生成机制. 痞子衡在 2018 年初写过一个专题 <嵌入式开发文件系列&g ...
- 工银e生活开发脱坑日志(9)JAVA版的SDK自动生成msgId,PHP如何生成消息通讯唯一编号msgId
工行开发中msgId,是消息通讯唯一编号. JAVA中,SDK自动生成msgId,具体规则如下(来源工行支持中心): SDK支持自动生成msgId.以数据类型API为例,只需在SDK中调用时将clie ...
- php 工行e生活登录,工银e生活开发脱坑日志(9)JAVA版的SDK自动生成msgId,PHP如何生成消息通讯唯一编号msgId...
工行开发中msgId,是消息通讯唯一编号. JAVA中,SDK自动生成msgId,具体规则如下(来源工行支持中心): SDK支持自动生成msgId.以数据类型API为例,只需在SDK中调用时将clie ...
最新文章
- keras 的 example 文件 pretrained_word_embeddings.py 解析
- [转]CSS hack大全详解
- JavaScript的使用
- 个人易遗忘的代码记录
- amd同步多线程_AMD下一代锐龙APU实锤!Zen3、RDNA2绝配
- 逻辑分析仪抓取CAN总线数据
- 雨尘奇偶猫单页SEO系统源码v1.3
- Python getattr() 函数
- 【Spark】Spark Stream读取kafka写入kafka报错 AbstractMethodError
- 【联系】—— Beta 分布与二项分布、共轭分布
- Linux使用命令 笔记
- JSP页面乱码的几种解决方案
- 遗传算法 matlab 详解,遗传算法的Matlab实现讲解
- 太阳电池板特性实验_太阳电池伏安特性的测量
- 如何查看kali的详细ip地址网关_在Linux中检查默认网关或路由器IP地址的四个命令...
- 音频打不开 服务器运行失败,win7系统提示音频服务器未运行的解决方法
- 计算机系统如何禁止文件删除功能,Win7如何禁止在C盘上安装软件?|win7系统c盘哪些文件是可以删除的...
- JAVA SE学习笔记(七):终章:Java程序设计基础笔记(全10万字)
- 计算机的隐藏游戏怎么找回,文件夹隐藏了怎么恢复,电脑屏幕上文件夹隐藏了怎么恢复...
- 黑马程序员--SpringBoot---基础篇