Android Studio 混淆打包apk步驟
android APP開發後,不想將程式碼進行公開,有保護價值,最好進行混淆打包操作,主要有如下三個步驟
一、Android studio build相關配置修改
修改app目錄下的build.gradle檔案,參考如下:
buildTypes {
debug {
// 顯示Log
buildConfigField "boolean", "LOG_DEBUG", "true"
versionNameSuffix "-debug"
minifyEnabled false
zipAlignEnabled false
shrinkResources false
signingConfig signingConfigs.debug
}
release {
// 不顯示Log
buildConfigField "boolean", "LOG_DEBUG", "false"
//混淆
minifyEnabled true
//Zipalign優化
zipAlignEnabled true
// 移除無用的resource檔案
shrinkResources true
//前一部分代表預設的android程式的混淆檔案,該檔案已經包含了基本的混淆宣告,後一個檔案是自己的定義混淆檔案
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
debug包一般是不需要混淆了,這樣編譯時節省時間。
二、修改app目錄下的proguard-rules.pro檔案
ProGuard部分選項的作用:
壓縮: 移除無效的類、屬性、方法等,預設開啟
-dontshrink 關閉壓縮
優化: 優化位元組碼,並刪除未使用的結構,預設開啟;
-dontoptimize 關閉優化
-optimizationpasses n 表示proguard對程式碼進行迭代優化的次數,Android一般為5
混淆: 將類名、屬性名、方法名混淆為難以讀懂的字母,比如a,b,c,預設開啟;
-dontobfuscate 關閉混淆
#包明不混合大小寫
-dontusemixedcaseclassnames
#不去忽略非公共的庫類
-dontskipnonpubliclibraryclasses
#優化 不優化輸入的類檔案
-dontoptimize
#預校驗
-dontpreverify
#混淆時是否記錄日誌
-verbose
# 混淆時所採用的演算法
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
#保護註解
-keepattributes *Annotation*
網上有很多現成的混淆模板,複製就可以使用。如果有用到第三方SDK,也要注意新增混淆程式碼。
三、編譯打包
Android Studio中【build】——【generated signed apk】打包。