日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android studio 混淆打包 proguard-rules.pro 与 bulid.gradle 配置总结

發(fā)布時間:2024/4/15 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android studio 混淆打包 proguard-rules.pro 与 bulid.gradle 配置总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

現(xiàn)在寫的app 基本都是經(jīng)過混淆了的,如果不混淆, 發(fā)布出去,別人一反編譯 就可以直接看你的源碼了

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// 是否進(jìn)行混淆minifyEnabled false// 混淆文件的位置proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'// 不顯示LogbuildConfigField "boolean", "LOG_DEBUG", "false"//Zipalign優(yōu)化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#優(yōu)化 不優(yōu)化輸入的類文件-dontoptimize#混淆時是否做預(yù)校驗-dontpreverify#混淆時是否記錄日志-verbose# 混淆時所采用的算法-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*#保護(hù)注解-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>;}#避免混淆泛型 如果混淆報錯建議關(guān)掉#–keepattributes Signature#關(guān)閉所有日志 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逆向知識體系》

?

?

?

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的Android studio 混淆打包 proguard-rules.pro 与 bulid.gradle 配置总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。