前言,當前android studio使用的版本較新,低版本的如果有差異,或者問題,歡迎拍磚!
1、修改配置文件
找到配置文件,build.gradle,修改如下。
1 signingConfigs { 2 release { 3 // 下面各值的意思將在后續進行講解 4 storeFile file('release.keystore') 5 storePassword "123456" 6 keyAlias "androiddebugkey" 7 keyPassword "123456" 8 } 9 debug { 10 storeFile file('release.keystore') 11 storePassword "123456" 12 keyAlias "androiddebugkey" 13 keyPassword "123456" 14 } 15 } 16 17 buildTypes { 18 release { 19 minifyEnabled true // 設置代碼進行混淆 20 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 21 signingConfig signingConfigs.release // 簽名配置 22 } 23 }
以前版本中。
a> 我們使用的是runProguard不過現在是使用minifyEnabled了。設置為true就是進行混淆。
b> proguradFiles 指定配置混淆項目的文件,可以看到使用的是progurad-rules.pro。這是我們后續配置排除混淆和運行環境會用到的。
2、創建KeyStore文件
進入此文件下,我們可以看到我們已經有的*.keysotre文件。
我這里已經有了一個debug.keystore文件了,不過我暫時用不着,也不記得密碼啥子的了。
所以我們重新生成一個,也可以刪除原有內容,然后重新生成一個文件。
當然,我們要先進入.android文件夾下面才能操作。運行cmd => 輸入:cd .android =>再輸入我們的命令
keytool -genkey -v -keystore release.keystore -alias androiddebugkey -keyalg RSA -validity 10000
完成后續的生成這樣一個release.keystore文件我們就生成了。生成的文件,我們需要拷貝到和上面的配置(build.gradle),同目錄下即可。
好了,下面就再次運行程序就已經加密了。不過我們也要配置后續的環境。
3、生成重新生成代碼,反編譯后可以查看文件已經加密了
progurad-rules.pro
1 -optimizationpasses 5 2 -dontusemixedcaseclassnames 3 -dontskipnonpubliclibraryclasses 4 -dontpreverify 5 -verbose
添加如下內容。這樣完整的混淆后的文件我們就可以使用了。
注:如果你使用了第三方的 jar.又不需要混淆,或者已經混淆為了避免出問題。你可以在progurad-rules.pro文件中加上下面內容。
-dontwarn net.youmi.android.** -keep class net.youmi.android.** { *; }
這里使用了有米舉例。。。
4、參考網頁:
http://blog.csdn.net/zhaoxiao2008/article/details/7443020 debug.keystore文件不存在解決辦法
http://blog.csdn.net/hudashi/article/details/9016805 android混淆打包
http://www.bkjia.com/Androidjc/924623.html 快速掌握 Android Studio 中 Gradle 的使用方法
http://www.cnblogs.com/youxilua/archive/2013/05/20/3087935.html 用Gradle 構建你的android程序
歡迎拍磚哈!