android aidl文件,Android Studio中aidl文件的存放规则

作为一个普通的烂大街的Android开发,实际开发中是一次也没有用过AIDL进行进程间通信。只是在刚学习Android的时候按照教材依样画葫芦的“使用”了一下,那时还是用Eclipse的。今天想着在Android Studio上也“使用”一下,结果系统会自动生成的java接口文件死活生成不出来。作为一个不百度/谷歌就不会开发的Android开发,当然是马上就去搜索了一番,折腾了好一阵子,最终总结出了在Android Studio中aidl文件的存放规则,不知道是否完全正确,还有就是:没有原因,不讲原理,因为我也不知道。。。反正期望的java文件是生成出来了。

首先,在Android Studio中,所有的aidl文件都要独立的存放在aidl文件夹中,aidl文件夹与java、res、assets等文件夹同级。

47441bdc3509

其次,aidl文件夹下必须有个package(或者叫文件夹?目录结构?),其结构要和AndroidManifest.xml文件中声明的package的值一致(其实java文件夹下也有同样的一个package)。所有的aidl文件都得放到这个package(为了描述方便,后面都使用“packageName”来指代这个package)下。

47441bdc3509

47441bdc3509

接着,我们使用AIDL进行进程间通信时,一般(教材说的)都会写一个实现了Parcelable接口的实体类(为了描述方便,后面都使用“实体类”来指代)和这个实体类所对应的aidl文件(为了描述方便,后面都使用“实体类aidl文件”来指代)还有一个可操作该实体类的接口类的aidl文件(为了描述方便,后面都使用“接口aidl文件”来指代)。“实体类”就是放在java文件夹下面这个没什么好说的了,下面就说一下“实体类aidl文件”和“接口aidl文件”这个两个文件的存放规则

先说“实体类aidl文件”,这个文件在aidl文件夹的存放路径必须和“实体类”文件在java文件夹中的存放路径一样。例如“实体类”在java文件夹中的存放路径是packageName.entity,则在aidl文件夹中的存放路径也必须是packageName.entity,否则会报“couldn't find import for class...”的错误。

47441bdc3509

而对于“接口aidl文件”就是只要放到“packageName”这个package下就行了,既可以跟“实体类aidl文件”同一个目录,也可以放到“packageName”这个package下的任意目录。推荐是放到跟“实体类aidl文件”同一个目录下。

47441bdc3509

各个aidl文件存放到正确的位置,而且aidl文件内容正确无误的话,只要rebuild一下,系统就会自动的在build/generated/source/aidl/debug/packageName下生成“接口aidl文件”对应的java文件了。

总结一下,在Android Studio中,所有的aidl文件都存放在与java、res等文件夹同级的aidl文件夹中,aidl文件夹下要有一个与packageName相同的package。“实体类aidl文件”在aidl文件夹的存放路径必须和“实体类”文件在java文件夹中的存放路径一样。而“接口aidl文件”则推荐是跟“实体类aidl文件”存放在同一个目录中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值