安卓如何生成代码混淆的release版本的aar文件并使用

Android在发布Android studio的时候就发布了一种独有的格式AAR,专门用于打包UI组件库。与jar相比其多了一些UI组件用到的属性、图片等一系列文件,它的好处在于你不需要再多创建一个Library Module,只需引用这个AAR文件即可,Android Sudio会自动把AAR包里的文件跟你的项目融合。
本文介绍如何打包aar文件,有时候我们不希望被人看到库文件的源代码,这就需要我们发布aar文件时候,进行代码混淆。进行混淆时候会有些坑,本文也一并介绍。
首先,介绍如何将自定义的view控件生成aar:
在一个工程下,新建一个Module,选择android library,
安卓如何生成代码混淆的release版本的aar文件并使用
Module建完后,将需要封装成库的代码拷贝至Module中,完成后,进行Build下的Rebuld操作,会在Module下的build文件夹生成一个debug版本的aar库
安卓如何生成代码混淆的release版本的aar文件并使用
但是,我们一般给别人用的都是release版本的库,而且,有时候为了不想别人看到库的源代码,需要进行代码混淆,这时候,需要进入Module所属的build.gradle文件,修改buildTypes,将release的minifyEnabled改为true
安卓如何生成代码混淆的release版本的aar文件并使用
然后,进入android studio 的terminal界面,输入gradlew assembleRelease生成打包文件。
安卓如何生成代码混淆的release版本的aar文件并使用
输入gradlew assembleRelease,运行,发现会BUILD FAILED,提示错误是
安卓如何生成代码混淆的release版本的aar文件并使用
这里,需要改动一下我们的混淆文件,
安卓如何生成代码混淆的release版本的aar文件并使用
混淆文件默认是所有代码混淆,这里,需要取消对公开的类进行混淆。对本Module所属的proguard-rules.pro文件进行更改
安卓如何生成代码混淆的release版本的aar文件并使用
然后,重新gradlew assembleRelease,发现可以build successful。在build文件夹下,发现已经有release版本的aar文件了
安卓如何生成代码混淆的release版本的aar文件并使用
生成的aar文件,如果其他的android工程需要使用,我们需先将这个aar文件拷贝至工程所在libs文件夹,libs文件夹可以自己新建
安卓如何生成代码混淆的release版本的aar文件并使用
然后,在app所属的build.gradle文件中,做如下修改:
安卓如何生成代码混淆的release版本的aar文件并使用
在dependencies中,添加我们的aar库。
安卓如何生成代码混淆的release版本的aar文件并使用
然后,就可以在工程中使用了。
通过工程中,我们通过对库的方法使用ctrl+鼠标左键的方法查看方法的源码,发现其已经被混淆过了。
安卓如何生成代码混淆的release版本的aar文件并使用