Android 接口定义语言AIdl
前言
Android进程间通信技术,有aidl,Binder,socket,管道,信号量等。经常用到Binder,Aidl。
AIDL(Android Interface definition language)安卓接口定义语言,它是一种Android内部进程通信接口描述语言。通过Aidl 可以定义不同应用进程之间的接口。
使用Aidl定义语言实现不同apk之间进行通信的步骤:
快速实现apk之间调用加法运算
首先建立Service端:
1.服务端建立aidl文件夹,建立aidl后缀文件(方式一.建立java类型的接口文件,更改后缀名称为aidl,方式二直接建立aidl文件,写上服务端对外提供的服务进行)
interface MyAidlInterface ( ){public plus(int var1,int var2)}
2.build apk,自动生成java文件。java文件 android.os.IInterface接口,内部static abstract class Stub extends android.os.Binder implements com.tseng.college.bicycle.IMyAidlInterface ,
内部抽象类继承Binder,并实现了对外服务接口。
3.建立service类,定义服务内部类,继承抽象的Stub,并实现服务对外提供接口的方法。
4.在清单文件中声明service,exported=true,允许外部应用进行调用。
客户端:
1.创建客户端,将aidl文件及文件夹拷贝到客户端,build之后生成与服务端一摸一样java文件。
注意: 文件路径保持与服务端一致
2.使用bindservice方式开启服务
private boolean a(Activity paramActivity) { Context localContext = paramActivity.getApplicationContext(); Intent mIntent = new Intent("被开启服务的路径名"); mIntent.setPackage("被开启服务的应用包名"); return localContext.bindService(mIntent, this.serviceConnection, Context.BIND_AUTO_CREATE); }
3.在onBinder中返回 服务端的服务接口= IBinder.asInterface(),进行调用即可。
以上代码完成aidl接口定义语言实现不同apk之间通信。
更多相关文章
- Android studio怎样添加assets文件
- 反编译和重新打包Android的dex文件
- Android中最重要的采用pull解析xml文件
- 修改Android Studio默认配置文件路径
- Android XML文件中的@、?、@+的该怎么理解?
- android studio开发环境配置(指定SDK及卸载)附安装文件网盘地址(win
- Android编译过程总结及android中各种img文件的作用以及系统启动