最近公司项目做好上线后,有需求单独对某个功能模块打包成组件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 双击执行命令开始打包;

Androidstudio 如何生成aar和引用

2. 几秒过后,aar包已经打好,进入kchartlib 源码 选择build>outputs>aar>kchartlib-release.aar 包。

Androidstudio 如何生成aar和引用
生成release 包

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目录路径的引用。

Androidstudio 如何生成aar和引用

5.如果library里使用了一些第三方的注解框架主项目也使用了时,就会编译失败。如引用butterknife,下篇我将给大家讲解如果解决这个包的引用冲突问题。

更多Android 学习交流请加群:413893967 

相关文章: