我自己的android studio代码混淆打包参考
来源:互联网 发布:下载淘宝网天猫商城 编辑:程序博客网 时间:2024/06/05 19:47
自己项目中常用的代码混淆方式,仅供参考
-keepclassmembers class fqcn.of.javascript.interface.for.webview { public *;}#指定代码的压缩级别-optimizationpasses 5#包明不混合大小写-dontusemixedcaseclassnames#不去忽略非公共的库类-dontskipnonpubliclibraryclasses-dontskipnonpubliclibraryclassmembers #预校验-dontpreverify #混淆时是否记录日志-verbose # 混淆时所采用的算法-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* #优化 不优化输入的类文件-dontoptimize#避免混淆泛型-keepattributes Singature#保护注解-keepattributes *Annotation-keepattributes *Annotation*-keep class com.lidroid.** { *; }-keep class * extends java.lang.annotation.Annotation { *; }# 保持哪些类不被混淆-keep public class * extends android.app.Fragment-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#如果有引用v4包可以添加下面这行-keep public class * extends android.support.v4.app.Fragment#忽略警告-ignorewarning##记录生成的日志数据,gradle build时在本项目根目录输出###apk 包内所有 class 的内部结构-dump proguard/class_files.txt#未混淆的类和成员-printseeds proguard/seeds.txt#列出从 apk 中删除的代码-printusage proguard/unused.txt#混淆前后的映射-printmapping proguard/mapping.txt########记录生成的日志数据,gradle build时 在本项目根目录输出-end#######如果引用了v4或者v7包-dontwarn android.support.**####混淆保护自己项目的部分代码以及引用的第三方jar包library-end#####保持 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);}-keep public class * extends android.view.View { public <init>(android.content.Context); public <init>(android.content.Context, android.util.AttributeSet); public <init>(android.content.Context, android.util.AttributeSet, int); public void set*(...);}#保持 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 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类打印各个等级日志的代码,打正式包的时候可以做为禁log使用,这里可以作为禁止log打印的功能使用,另外的一种实现方案是通过BuildConfig.DEBUG的变量来控制#-assumenosideeffects class android.util.Log {# public static *** v(...);# public static *** i(...);# public static *** d(...);# public static *** w(...);# public static *** e(...);#}##################################################################################################################### 以上通用 ###################################################################################################################################################### 常用第三方模块的混淆选项 ####################################gson#如果用用到Gson解析包的,直接添加下面这几行就能成功混淆,不然会报错。-keepattributes Signature# Gson specific classes-keep class sun.misc.Unsafe { *; }# Application classes that will be serialized/deserialized over Gson-keep class com.google.gson.** { *; }-keep class com.google.gson.stream.** { *; }-dontwarn com.alibaba.fastjson.**-keep class com.alibaba.fastjson.** { *; }# OkHttp3-dontwarn okhttp3.**-keep class okhttp3.**{*;}-dontwarn okio.**#butterknife-keep class butterknife.** { *; }-dontwarn butterknife.internal.**-keep class **$$ViewBinder { *; }#bugly-dontwarn com.tencent.bugly.**-keep public class com.tencent.bugly.**{*;}-keepclasseswithmembernames class * { @butterknife.* <fields>;}-keepclasseswithmembernames class * { @butterknife.* <methods>;}-dontwarn javax.annotation.**-dontwarn javax.inject.**# Retrofit-dontwarn retrofit2.**-keep class retrofit2.** { *; }-keepattributes Signature-keepattributes Exceptions# RxJava RxAndroid-dontwarn sun.misc.**-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { long producerIndex; long consumerIndex;}-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef { rx.internal.util.atomic.LinkedQueueNode producerNode;}-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef { rx.internal.util.atomic.LinkedQueueNode consumerNode;}#glide-dontwarn com.github.**-keep class com.github.bumptech.**{*;}#nineoldandroids-dontwarn com.nineoldandroids.**-keep class com.nineoldandroids.**{*;}#umeng-dontwarn com.umeng.**-keep class com.umeng.**{*;}#litepal-dontwarn org.litepal.**-keep class org.litepal.**{*;}-keepattributes *Annotation*-keep class sun.misc.Unsafe { *; }-dontwarn cn.jiguang.**-keep class cn.jiguang.** { *; }-dontwarn cn.jpush.**-keep class cn.jpush.** { *; }-libraryjars libs/badgeview.jar-libraryjars libs/umeng_social_api.jar-libraryjars libs/umeng_social_net.jar-libraryjars libs/umeng_social_tool.jar
阅读全文
0 0
- 我自己的android studio代码混淆打包参考
- 很全的Android Studio代码混淆参考
- Android studio的使用 -- 代码混淆与打包
- 【Android Studio】代码混淆与多渠道打包
- 使用Android Studio应用打包+代码混淆
- Android Studio应用打包+代码混淆
- Android studio 代码混淆及打包apk
- Android studio 代码混淆及打包apk
- Android Studio 混淆打包
- android studio混淆打包
- Android studio 打包、混淆
- android studio混淆打包
- Android studio 打包混淆
- android studio 混淆打包
- Android Studio 混淆打包
- Android Studio 混淆打包
- android studio 混淆打包
- Android Studio 混淆打包
- 总结“生成账单”功能的要点
- AngularJS注意事项
- 插件APK中的activity显示的视图,其实是附着在宿主Activity上的
- Ubuntu 16.04下搭建Web服务器
- surface Shader——主贴图、法线贴图、边缘颜色
- 我自己的android studio代码混淆打包参考
- mvc5新特性RouteAttribute特征路由
- LintCode_464_整数排序||
- 枚举应用
- Jocky混淆JAVA代码(保护你的JAVA项目)
- ManagementFactory api
- 运行DreamweaverCS6(绿色破解免)时,没有找到mfc100u.dll!
- iconfont字体图标四中制作方法
- 浏览器窗口的尺寸参数图解