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.
更多相关文章
- Android加载html实现文件上传功能
- Android -- App生成快捷方式
- Android中将assets中的文件拷贝到sd卡
- db文件查看工具SQLiteExpert
- android proc 虚拟文件系统
- Android 9 读写SD卡文件
- Android zip文件压缩解压缩
- Android studio 53 文件下载
- android 文件系统分析