便捷的将你的项目作为SDK---用aar代替过时的jar

来源:互联网 发布:日本中国夏令营知乎 编辑:程序博客网 时间:2024/06/05 20:50

背景知识
这几天接了一个需求,要把项目整个打包作为SDK给别的公司用
首先想到的就是采用jar包的形式把代码打包,再把资源文件拷进ja包r里,用反射的方式去获取资源id
但是由于时间紧迫,要求当天就要有产出,无奈只能先行百度下,看下有没有什么便捷的方案,无意当中就看到aar包,经过试验完美符合预期,所以写一篇博文用于记录,便于以后回忆

使用工具
Android Studio

使用说明
首先使用Android Studio建立一个lib项目
这里写图片描述

这里写图片描述

然后把你的项目代码和资源都移植到lib module里

然后配置项目属性,把你的项目里的签名(用于第三方分享或者登陆)还有混淆文件配置到lib module中

signingConfigs {    config1 {        keyAlias ''        keyPassword ''        storeFile file('')        storePassword ''    }}buildTypes {    release {        minifyEnabled true        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        signingConfig signingConfigs.config1    }}

然后
这里写图片描述
点击assembleRelease脚本
你会在module目录下的build/outputs/aar下面找到一个release.aar
然后你把这个压缩包解压,把里面的classes.jar作为lib导入到一个项目中(Android Studio自带反编译功能)查看下项目代码是否已经混淆,混淆的程度是否满足你的预期(辛辛苦苦写的代码 随随便便给别人拿走可不好),记住你提供的入口API文件千万不要混淆,不然别人在引用的时候会找不到该类,确认无误了,可以写一个小demo,放一个button,点击事件里就填上你提供的API,看下是否能正确跳转或者调用

顺便补充一点,如果怕和别的项目在资源ID:比如string,dimen上产生冲突,可以写一个脚本,在你的资源名称前加上你公司或者项目特有的前缀

发布aar
把你要发布的aar,和该aar说依赖第三方的库整理好,一起给要新的项目,新的项目如果已经有依赖那些第三方的库,则无需重新依赖,对于没有依赖的,就要配置依赖关系,这个就是第一步剥离依赖的好处,避免多余的依赖,可以把你的jar包放在aar包里,也没有问题

在新的项目的application模块的libs文件夹下面放上该aar文件,同时在该模块对应的build.gralde中加上下面的配置

dependencies {      compile(name:'mylibrary-release', ext:'aar')     }repositories{      flatDir{  dirs 'libs'      }    }

好了一个小时不到,你的完整项目已经可以被别的公司快捷使用,代码也混淆了,保持了应有的私密性

如果你觉得对你有帮助,需要转载,请注明出处

0 0