aidl打包到aar的玩法并封装Manager类

aidl打包到aar的玩法(推荐)

两个project

AidlAarServer以及AidlAarClient

1.新建项目AidlAarServer

2.File---New---AIDL---AIDL File,aidl文件修改好后,build下project。然后发现在app---build---generated---source---aidl---debug---com.potter.aidlaarserver下生成了IMyAidlInterface.java

3.创建一个MyService,继承于Service,并且把这个servcie注册在AndroidManifest.xml

4.新建Module---AidlAar,选择类型Android Library,这里要注意一点,我开始以为要把包名填写的和AidlJarServer的包名要一致,其实不一致也行。

5.把AidlJarServer的app---src---main---aidl这个目录拷贝到AidlAar的src---main下,build一下,然后发现在AidlAar---build---generated---source---aidl---debug---com.potter.aidlserver下生成了IMyAidlInterface.java。同时生成Aar包在AarLib----build----outputs---aar----aidlaar-release.aar

6.新建项目AidlAarClient

7. 新建一个Module,选择Import .Jar/.AAR Package,选好路径导入aar包(aidlaar-release.aar

),然后再去File---Project Structure---Dependencies点+号,选择Moduel Dependency。

8. 在AidlAarClient的代码里面bindService配合ServiceConnection拿到ImyAidlInterface的实例去调用api就ok了。

aidl打包到aar的玩法并封装Manager类(推荐)

提供了demo仅供参考,因为单纯aidl打成aar,第三方apk导入后还要自己去bindService之类的操作,我们可以封装起来,客户那边直接通过Manager类去调用我们提供的api就可以了。(这种感觉就有点像如android 系统里面的AudioManager,PackageManager的用法,例如AudioManager各种暴露的方法也都是通过aidl去调用的AudioManagerService的对应方法)

你可能感兴趣的:(aidl打包到aar的玩法并封装Manager类)