Android studio 混淆打包 proguard-rules.pro 与 bulid.gradle 配置总结
生活随笔
收集整理的這篇文章主要介紹了
Android studio 混淆打包 proguard-rules.pro 与 bulid.gradle 配置总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
現在寫的app 基本都是經過混淆了的,如果不混淆, 發布出去,別人一反編譯 就可以直接看你的源碼了
ok 來說一下混淆吧:
?
?
build.gradle文件
apply plugin: 'com.android.application'android {//簽名文件 改為自己的路徑signingConfigs {config {keyAlias 'xiao'keyPassword 'key'storeFile file('F:/Android/keystore.jks')storePassword 'key' // v2SigningEnabled false //是否采用APK Signature Scheme v2}}compileSdkVersion 25buildToolsVersion '25.0.3'//useLibrary 'org.apache.http.legacy'defaultConfig {applicationId "com.web"minSdkVersion 16targetSdkVersion 25versionCode 12versionName "1.0.0"jackOptions {enabled true}signingConfig signingConfigs.config}buildTypes {release {signingConfig signingConfigs.config// 是否進行混淆minifyEnabled false// 混淆文件的位置proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'// 不顯示LogbuildConfigField "boolean", "LOG_DEBUG", "false"//Zipalign優化zipAlignEnabled true// 移除無用的resource文件shrinkResources true}debug {signingConfig signingConfigs.config// 顯示LogbuildConfigField "boolean", "LOG_DEBUG", "true"versionNameSuffix "-debug"minifyEnabled falsezipAlignEnabled falseshrinkResources false}}compileOptions {targetCompatibility 1.8sourceCompatibility 1.8}productFlavors {} }dependencies {// 編譯libs目錄下的所有jar包compile fileTree(include: ['*.jar'], dir: 'libs')//noinspection GradleCompatiblecompile 'com.android.support:support-v4:25.3.1'compile 'com.android.support:design:25.3.1'compile 'com.github.bumptech.glide:glide:3.7.0' }?
proguard-rules.pro混淆文件
?
?
##################################################################################### # start on 2017/5/16 15:59 # update author: qihao on 2017/7/4 17:53 http://blog.csdn.net/gfg156196 # Email:sin2t@sina.com # ######################################################################################指定代碼的壓縮級別-optimizationpasses 5#包名不混合大小寫-dontusemixedcaseclassnames#不去忽略非公共的庫類-dontskipnonpubliclibraryclasses#優化 不優化輸入的類文件-dontoptimize#混淆時是否做預校驗-dontpreverify#混淆時是否記錄日志-verbose# 混淆時所采用的算法-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*#保護注解-keepattributes *Annotation*#如果引用了v4或者v7包-dontwarn android.support.**#保持 native 方法不被混淆-keepclasseswithmembernames class * {native <methods>;}#保持自定義控件類不被混淆-keepclasseswithmembers class * {public <init>(android.content.Context, android.util.AttributeSet);}#保持自定義控件類不被混淆-keepclassmembers class * extends android.app.Activity {public void *(android.view.View);}# 保持自定義控件類不被混淆-keepclasseswithmembers class * {public <init>(android.content.Context, android.util.AttributeSet);}# 保持自定義控件類不被混淆-keepclasseswithmembers class * {public <init>(android.content.Context, android.util.AttributeSet, int);}#保持 Parcelable 不被混淆-keep class * implements android.os.Parcelable {public static final android.os.Parcelable$Creator *;}#保持 Serializable 不被混淆-keepnames class * implements java.io.Serializable#保持 Serializable 不被混淆并且enum 類也不被混淆-keepclassmembers class * implements java.io.Serializable {static final long serialVersionUID;private static final java.io.ObjectStreamField[] serialPersistentFields;!static !transient <fields>;!private <fields>;!private <methods>;private void writeObject(java.io.ObjectOutputStream);private void readObject(java.io.ObjectInputStream);java.lang.Object writeReplace();java.lang.Object readResolve();}#保持枚舉 enum 類不被混淆 如果混淆報錯,建議直接使用上面的 -keepclassmembers class * implements java.io.Serializable即可#-keepclassmembers enum * {# public static **[] values();# public static ** valueOf(java.lang.String);#}-keepclassmembers class * {public void *ButtonClicked(android.view.View);}#不混淆資源類-keepclassmembers class **.R$* {public static <fields>;}#避免混淆泛型 如果混淆報錯建議關掉#–keepattributes Signature#關閉所有日志 log, java.io.Print, printStackTrace-assumenosideeffects class android.util.Log {public static *** e(...);public static *** w(...);public static *** i(...);public static *** d(...);public static *** v(...);}-assumenosideeffects class java.io.PrintStream {public *** print(...);public *** println(...);}-assumenosideeffects class java.lang.Throwable {public *** printStackTrace(...);}##################################################################################### # end 2017/7/4 17:53 http://blog.csdn.net/gfg156196 # # #####################################################################################?
贈送源碼:https://github.com/yugu88/MagicWX。
《最完整的Android逆向知識體系》
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的Android studio 混淆打包 proguard-rules.pro 与 bulid.gradle 配置总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android studio logca
- 下一篇: 最新Butterknife集成 全部方法