最近本人想研究一下aidl,但是无奈网上的大部分都是eclipse环境,有的studio环境的代码,运行不起来,所以今天自己写了一个小的案例,亲测可以用
关于aidl的名词解释,网上有很多,我这里就不累述了,只简单的给小白讲一下如何写aidl
第一步 :
先在studio中建立一个service端的工程,如图:
第二步:
在服务端开始写一个aidl接口,声明方法,以便让别的进程或客户端调用
鼠标先点击包名,然后在点击file-->new-->aidl-->aidl file,然后输入aidl文件名称即可,随便起个名字就行
鼠标点击
最终是如图所示的文件:studio会自动生成一个同名的包,然后将aidl放置包里
第三步:
因为aidl要求,客户端的aidl文件和服务端的aidl文件必须包名和类名都一致,但是studio默认生成的aidl文件的包名跟程序的包名一致,然而安卓不允许两个应用程序有相同的包名,,因此这里先做一个小操作,将aidl文件的包名改下,这样客户端的aidl的文件的包名就可以保持一致了,并且客户端和服务端的包名就可以不一致了
将这个aidl文件放置到包名的上一层目录,即本例子中的com下,然后在将serviceaidl这个目录删除
最终结果如图显示:
改完之后,一定要在studio里改下aidl文件的包名,可以看到接口,可以在接口里声明一个方法,让客户端来调用
我在文件里声明了一个方法:
用过eclipse的人都知道,eclipse会自动帮我们生成一个aidl的java文件,该java文件就是符合aidl规范的文件,eclipse会自动帮我们写这么复杂的规范文件,然而studio怎么生成呢?java文件在哪呢?
点击make project之后,在 build-->generated-->source-->debug下,就会看到studio帮我们生成的aidl文件
第四部:
新建一个Service文件,并实现接口中的方法:
服务端写好了,接下来就可以写客户端了
我懒的写了,有需要源代码的可以回复我