**最近在做一个用AIDL调用第三方APP的接口
什么是AIDL?
AIDL 意思即 Android Interface Definition Language,翻译过来就是Android接口定义语言,是用于定义服务器和客户端通信接口的一种描述语言,可以拿来生成用于IPC的代码。设计AIDL这门语言的目的就是为了实现进程间通信。
如何使用?
服务端:
创建完成之后就可以在里面写接口了。
interface BookService {
int checkIssueBook(String bookID);
}
写完接口clean一下他会生成我们需要的.java文件,到这服务端基本就写完了。
客户端:
一:把服务端的.aidl文件复制到客户端的代码里。注:包名和.aidl文件名一定要一样!!!
二:复制完成后clen一下,生成.java文件。
//绑定
private void bindWalletService() {
Intent intent = new Intent();
intent.setAction("");
> 该标识用来说明这个activity可以执行哪些动作,所以当隐式intent传递过来action时,如果跟这里<intent-filter>所列出的任意一个匹配的话,就说明这个activity是可以完成这个intent的意图的,可以将它激活!
intent.setPackage("包名");
getActivity().bindService(intent, serviceConn, Context.BIND_AUTO_CREATE);
}
//解绑
private void unbindWalletService() {
//判空
if (serviceConn != null) {
getActivity().unbindService(serviceConn);
}
}
//service(调用接口)
private BookserviceConn book = new BookserviceConn () {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
//子线程
new Thread(new Runnable() {
@Override
public void run() {
}
}).start();
关于AIDL的简单知识就这些了,由于我在项目中只是客户端,相比较更了解客户端,不同理解即使指出。