1. 程式人生 > >Android Studio 混淆打包apk步驟

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】打包。