Android在發(fā)布Android studio的時候就發(fā)布了一種獨有的格式AAR瘦癌,專門用于打包UI組件庫。與jar相比其多了一些UI組件用到的屬性跷敬、圖片等一系列文件讯私,它的好處在于你不需要再多創(chuàng)建一個Library Module,只需引用這個AAR文件即可西傀,Android Sudio會自動把AAR包里的文件跟你的項目融合斤寇。
本文介紹如何打包aar文件,有時候我們不希望被人看到庫文件的源代碼拥褂,這就需要我們發(fā)布aar文件時候娘锁,進行代碼混淆。進行混淆時候會有些坑饺鹃,本文也一并介紹莫秆。
首先,介紹如何將自定義的view控件生成aar:
在一個工程下悔详,新建一個Module镊屎,選擇android library,
image.png
Module建完后伟端,將需要封裝成庫的代碼拷貝至Module中杯道,完成后,進行Build下的Rebuld操作,會在Module下的build文件夾生成一個debug版本的aar庫
image.png
但是党巾,我們一般給別人用的都是release版本的庫萎庭,而且,有時候為了不想別人看到庫的源代碼齿拂,需要進行代碼混淆驳规,這時候,需要進入Module所屬的build.gradle文件署海,修改buildTypes吗购,將release的minifyEnabled改為true
image.png
然后,進入android studio 的terminal界面砸狞,輸入gradlew assembleRelease生成打包文件捻勉。
image.png
輸入gradlew assembleRelease,運行刀森,發(fā)現(xiàn)會BUILD FAILED踱启,提示錯誤是
image.png
這里,需要改動一下我們的混淆文件研底,
image.png
混淆文件默認(rèn)是所有代碼混淆埠偿,這里,需要取消對公開的類進行混淆榜晦。對本Module所屬的proguard-rules.pro文件進行更改
image.png
然后冠蒋,重新gradlew assembleRelease,發(fā)現(xiàn)可以build successful乾胶。在build文件夾下抖剿,發(fā)現(xiàn)已經(jīng)有release版本的aar文件了
image.png
生成的aar文件,如果其他的android工程需要使用识窿,我們需先將這個aar文件拷貝至工程所在libs文件夾牙躺,libs文件夾可以自己新建
image.png
然后,在app所屬的build.gradle文件中腕扶,做如下修改:
image.png
在dependencies中孽拷,添加我們的aar庫。
image.png
然后半抱,就可以在工程中使用了脓恕。
通過工程中,我們通過對庫的方法使用ctrl+鼠標(biāo)左鍵的方法查看方法的源碼窿侈,發(fā)現(xiàn)其已經(jīng)被混淆過了炼幔。
image.png