android 代码混淆总结
default.properties文件加入:
target=android-7
proguard.config=proguard.cfg
以上两句
proguard.cfg 文件:
-optimizationpasses 7
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-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 com.android.vending.licensing.ILicensingService
-keep class com.baidu.mapapi.** {*;}
-keepclasseswithmembernames class * {
native
}
-keepclasseswithmembernames class * {
public
}
-keepclasseswithmembernames class * {
public
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep public class * extends android.view.View {
public
public
public
public void set*(...);
}
-keepclassmembers class **.R$* {
public static
}
-keepnames class * implements java.io.Serializable
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static !transient
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
补充一下:
-dontwarn com.google.android.gcm.**
-dontwarn net.nend.android.**
-dontwarn com.google.ads.**
也可以用这样的方式解决使用第三方包后出现的无法混淆的问题,大概的异常是:
Note: there were 160 duplicate class definitions.
Warning: com.google.ads.m: can't find referenced class com.google.ads.internal.state.AdState
Warning: com.google.ads.m: can't find referenced class com.google.ads.internal.state.AdState
You should check if you need to specify additional program jars.
更多相关文章
- 箭头函数的基础使用
- NPM 和webpack 的基础使用
- Python list sort方法的具体使用
- 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
- Android(安卓)- 插件使用整理 Android(安卓)Styler
- android注解框架ButterKnife详细使用文档(v7.0.1)
- 关于Android中是否可以使用全局变量的问题
- Android(安卓)Studio编译问题:ProcessException: org.gradle.proc
- Android(安卓)sqlite例子 有外键的使用