最近公司项目做好上线后,有需求单独对某个功能模块打包成组件sdk的形式,提供给其它第三方应用调用。
Android 目前实现打包生成sdk的三种方式:
一、jar包(依赖文件打包jar包不能包含资源文件)
二、依赖文件夹(就是上面那种将整个文件夹拷贝到其他位置,让项目进行依赖,好处是可以对源文件进行更改,坏处是文件太大容易出问题)
三、aar包(aar可以包含资源文件)
目前我们是用的第三种方法实现打包sdk的流程如下:
1.打开项目,如果要设置aar 打成混淆包,可进入 build 文件里设置如下:
buildTypes {
release {
minifyEnabled true //代码混淆
zipAlignEnabled true //资源压缩
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
然后点击右侧Gradle,选中要打包的library这里演示的是打K线图kchartlib,
Tasks>build>assenble 双击执行命令开始打包;
2. 几秒过后,aar包已经打好,进入kchartlib 源码 选择build>outputs>aar>kchartlib-release.aar 包。
3.引用打好的aar 包,新建一个项目ChartSdk,将打好的aar包libs目录里,然后在build.gradle文件里加上:
dependencies {
implementation(name: 'kchartlib-release', ext: 'aar')
}
repositories { flatDir { dirs 'libs' }
}
至此已经成功引入。
4.如果你想在一个新项目里ChartSdk,在library引用aar,项目又引用library,操作如下:
在主项目的build.gradle 添加library目录路径的引用。
5.如果library里使用了一些第三方的注解框架主项目也使用了时,就会编译失败。如引用butterknife,下篇我将给大家讲解如果解决这个包的引用冲突问题。
更多Android 学习交流请加群:413893967