AIDL初步了解
2016-10-28 18:01
381 查看
知道AIDL这个东西,android接口进程通讯语言,但是没有具体去看,google了一下,
初步了解了!记录,待以后后头看
AIDL步骤:
一般是服务端和客户端之间的进程通信。
1.分别新建两个android项目,一个为Service一个为Client
2.分别在两个项目中新建包,要求包名一致,然后在里面都创建
一个后缀为aidl的文件
如: package com.zhb.aidl;
interface IPerson {
String talk(String someone);
}3.在Service里面实现AIDL的方法
public class AIDLService extends Service {
private static final String TAG = "AIDLService";
//实现AIDL里面的方法
IPerson.Stub stub = new IPerson.Stub() {
@Override
public String talk(String someone) throws RemoteException {
Log.i(TAG, "talk() called");
return someone+"说";
}
};
@Override
public IBinder onBind(Intent intent) {
Log.i(TAG, "onBind() called");
return stub;
}
@Override
public boolean onUnbind(Intent intent) {
Log.i(TAG, "onUnbind() called");
return true;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i(TAG, "onDestroy() called");
}
}4.回到Client当中,一:就是绑定Service 二:与服务相连
绑定服务就是
Intent intent = new Intent("android.intent.action.AIDLService");
bindService(intent, conn, Context.BIND_AUTO_CREATE);
与服务连接就是
private IPerson person;
private ServiceConnection conn = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName arg0) {
// TODO Auto-generated method stub
Log.i(TAG, "onServiceDisconnected is called");
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
// TODO Auto-generated method stub
Log.i(TAG, "onServiceConnected called");
person = IPerson.Stub.asInterface(service);
}
};
此时就拿到了person,就可以调用服务里实现的AIDL接口里的talk方法
person.talk("哈哈");
目前在项目中用的比较少,貌似面试会问到,记录之,推荐一个博客写AIDL写得详细
Android:学习AIDL,这一篇文章就够了(上)
嗯,就是这样子
初步了解了!记录,待以后后头看
AIDL步骤:
一般是服务端和客户端之间的进程通信。
1.分别新建两个android项目,一个为Service一个为Client
2.分别在两个项目中新建包,要求包名一致,然后在里面都创建
一个后缀为aidl的文件
如: package com.zhb.aidl;
interface IPerson {
String talk(String someone);
}3.在Service里面实现AIDL的方法
public class AIDLService extends Service {
private static final String TAG = "AIDLService";
//实现AIDL里面的方法
IPerson.Stub stub = new IPerson.Stub() {
@Override
public String talk(String someone) throws RemoteException {
Log.i(TAG, "talk() called");
return someone+"说";
}
};
@Override
public IBinder onBind(Intent intent) {
Log.i(TAG, "onBind() called");
return stub;
}
@Override
public boolean onUnbind(Intent intent) {
Log.i(TAG, "onUnbind() called");
return true;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i(TAG, "onDestroy() called");
}
}4.回到Client当中,一:就是绑定Service 二:与服务相连
绑定服务就是
Intent intent = new Intent("android.intent.action.AIDLService");
bindService(intent, conn, Context.BIND_AUTO_CREATE);
与服务连接就是
private IPerson person;
private ServiceConnection conn = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName arg0) {
// TODO Auto-generated method stub
Log.i(TAG, "onServiceDisconnected is called");
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
// TODO Auto-generated method stub
Log.i(TAG, "onServiceConnected called");
person = IPerson.Stub.asInterface(service);
}
};
此时就拿到了person,就可以调用服务里实现的AIDL接口里的talk方法
person.talk("哈哈");
目前在项目中用的比较少,貌似面试会问到,记录之,推荐一个博客写AIDL写得详细
Android:学习AIDL,这一篇文章就够了(上)
嗯,就是这样子
相关文章推荐
- android aidl接口初步了解
- 初步了解《css》和《skin》调用
- maven初步了解
- 经典算法研究系列:六、教你初步了解KMP算法、updated
- JavaFx学习之道:JavaFx初步了解
- 初步了解Web Service
- mysql初步认识,了解mysql中的基本数据类型
- 初步了解EF
- 【2016-11-10】【坚持学习】【Day23】【Socket 编程初步了解】
- 初步了解前端知识
- 黑马程序员 - 学习笔记8 接口的初步了解
- 高并发处理-初步了解(一)
- 关于GF的Network模块的一些见解。初步开始了解GF的网络模块。GF版本:3.1.0
- ViewStub的初步了解与merge和include的使用
- 对Redis的一些初步了解(2)-----python与redis
- IOS MenuController初步了解
- .Net中初步了解ORM框架
- COM组件初步了解
- nodejs初步了解
- 初步了解JTAG