首先要注意一點,Android Studio中把proguard.txt已經命名爲proguard-rules.pro,由此可見,採用Gradle打包,混淆規則文件的名稱是不重要的,可以自己隨便命名。混淆規則跟原來一樣,沒有變化。不懂可以搜一下別人怎麼寫的。
加入簽名文件,在Build->Generate Signed APK…
就會看到下面的彈出框
如果沒有簽名文件就創建新的簽名文件,如果已經有簽名文件,那麼選擇簽名文件的位置,並填寫好密碼就可以點Next了。創建簽名文件的方式跟老版本(Eclipse+ADT)的簽名方式一樣,這裏就不再多說了。你會發現AS生成的簽名文件是jks後綴名的,跟原來的可以說tore不一樣,事實上,簽名文件也並不是受文件名影響。
Next後會彈出下面的框
在Buid Type中默認有兩個選項,故名思議,我們平常用的是debug,正式打包,我們需要用release,選中後點Finish就可以打包了。但是這樣打包並沒有做代碼混淆,下面我們繼續加入代碼混淆。
選中項目的Open Module Setting,然後我們會看到下面這個框
我們選中app->Signing 點擊+號,新增一般配置,這個配置就是剛剛需要手動輸入和導入簽名文件的操作,我們可以在這個config(可以隨便命名)填好籤名密碼和簽名文件的路徑。
然後我們再點到Build Types選卡
這個就是我們的正式發包的需要配置的內容,其他選默認。需要改兩個地方:Signing Config,選擇我們剛剛設置好的簽名配置;在Proguard File這一欄選中項目中的proguard-rules.pro的絕對路徑,也就是項目根目錄下的app/proguard-rules.pro,然後點擊ok。Gradle會自動同步修改過的內容。
這個時候我們來看一下app目錄下的build.gradle的內容,你會發現跟我們剛纔配置的內容是一模一樣的。
下面我可以打包正式簽名的apk包。有三種方式:
1. 在Build-> Generate Signed APK… 直接下一步以下一步就可以打包了;
2. 在AS 提供的終端中輸入gradlew release,或者外部的終端打開到項目的跟目錄再輸入gradlew release。但這個前提是已經在本機安裝了gradle,並且配置了環境變量,不然終端是無法識別這樣的命令的。
3. 使用AS默認Gradle插件,在我們窗口的最右邊可以找到Gradle(默認是最小化),打開它並點擊項目名稱再下一層,看到有一個Tasks->build,找到assembleRelease(批量打包)並雙擊,就自動打包。
正式簽名包如果沒有更改過目錄默認是在app目錄下或者是app/build/output/apk目錄下,個人比較喜歡放在後面那個目錄。
還要注意一點,修改打包的版本信息,需要在build.gradle中修改下面紅色的內容,跟manifest.xml一樣
defaultConfig {
applicationId 'com.arjinmc.goddnessplan'
minSdkVersion 14
targetSdkVersion 22
versionCode 2
versionName '0.0.2'
signingConfig signingConfigs.config
}