Android gradle怎么加密代码
发布网友
发布时间:2022-04-25 03:36
我来回答
共3个回答
热心网友
时间:2023-10-23 14:23
Android Studio和Eclipse能做到的是代码混淆,Android项目的代码混淆都是通过配置项目properties文件中的proguard.config属性完成的,
如:proguard.config=proguard.cfg,那混淆的逻辑就写在了proguard.cfg这个文件中。
至于proguard.cfg怎么写,要根据你的具体情况来做了(你想混淆哪些代码由你自己定义)
下面是一个proguard.cfg的例子:
-optimizationpasses 5 # 指定代码的压缩级别
-dontusemixedcaseclassnames # 是否使用大小写混合
-dontskipnonpubliclibraryclasses # 是否混淆第三方jar
-dontpreverify # 混淆时是否做预校验
-verbose # 混淆时是否记录日志
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时所采用的算法
-keepattributes SourceFile,LineNumberTable
-dontwarn org.apache.**
-dontwarn com.appsflyer.**
#四大组件不能混淆
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application {*;}
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
#自定义控件不要混淆
-keep public class * extends android.view.View {*;}
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclassmembers class * {
public <init>(org.json.JSONObject);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepattributes *Annotation*,EnclosingMethod
-keepclasseswithmembers class * {
public <init>(android.content.Context, Android.util.attributeSet, int);
}
# Google Play Services library
-keep class * extends java.uti.ListResourceBundle{
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable{
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable{
public static final ** CREATOR;
}
热心网友
时间:2023-10-23 14:24
如:proguard.config=proguard.cfg,那混淆的逻辑就写在了proguard.cfg这个文件中。
至于proguard.cfg怎么写,要根据你的具体情况来做了(你想混淆哪些代码由你自己定义)
下面是一个proguard.cfg的例子:
-optimizationpasses 5 # 指定代码的压缩级别
-dontusemixedcaseclassnames # 是否使用大小写混合
-dontskipnonpubliclibraryclasses # 是否混淆第三方jar
-dontpreverify # 混淆时是否做预校验
-verbose # 混淆时是否记录日志
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时所采用的算法
-keepattributes SourceFile,LineNumberTable
-dontwarn org.apache.**
-dontwarn com.appsflyer.**
#四大组件不能混淆
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application {*;}
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
#自定义控件不要混淆
-keep public class * extends android.view.View {*;}
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclassmembers class * {
public <init>(org.json.JSONObject);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepattributes *Annotation*,EnclosingMethod
-keepclasseswithmembers class * {
public <init>(android.content.Context, Android.util.attributeSet, int);
}
# Google Play Services library
-keep class * extends java.uti.ListResourceBundle{
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable{
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable{
public static final ** CREATOR;
}
热心网友
时间:2023-10-23 14:24
Android Studio和Eclipse能做到的是代码混淆,Android项目的代码混淆都是通过配置项目properties文件中的proguard.config属性完成的,
如:proguard.config=proguard.cfg,那混淆的逻辑就写在了proguard.cfg这个文件中。至于proguard.cfg怎么写,要根据具体情况来做了(想混淆哪些代码由自己定义)
下面是一个proguard.cfg的例子:
-optimizationpasses 5 # 指定代码的压缩级别
-dontusemixedcaseclassnames # 是否使用大小写混合
-dontskipnonpubliclibraryclasses # 是否混淆第三方jar
-dontpreverify # 混淆时是否做预校验
-verbose # 混淆时是否记录日志
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时所采用的算法
-keepattributes SourceFile,LineNumberTable
-dontwarn org.apache.**
-dontwarn com.appsflyer.**
四大组件不能混淆
自定义控件不要混淆