Android APK打包代码混淆规则怎么定义
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了Android APK打包代码混淆规则怎么定义的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android APK打包代码混淆规则怎么定义文章都会有所收
千家信息网最后更新 2026年11月02日Android APK打包代码混淆规则怎么定义
这篇文章主要介绍了Android APK打包代码混淆规则怎么定义的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android APK打包代码混淆规则怎么定义文章都会有所收获,下面我们一起来看看吧。
第一步:在项目工程目录下的proguard-rules.pro文件中配置自定义的混淆规则
#注意:#1.引用外部的jar包 如果不是自己写的最好不混淆它们,因为外部jar包有可能已经混淆过#2.不要混淆XML布局中使用的自定义控件类,混淆后加载布局会报找不到该控件错误#3.不要混淆Manifests中配置的组件类,混淆后系统会找因不到该组件而报错#------------------------------------------------------------------#指定代码的压缩级别-optimizationpasses 5#表示混淆时不使用大小写混合类名,混淆后的类名为小写-dontusemixedcaseclassnames#表示不进行优化,建议使用此选项,因为根据proguard-android-optimize.txt中的描述,优化可能会造成一些潜在风险,不能保证在所有版本的Dalvik上都正常运行。-dontoptimize# 混淆时输出日志-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#表示不混淆任何包含native方法的类的类名以及native方法名-keepclasseswithmembernames class * { native ;}#表示不混淆任何一个View中的setXxx()和getXxx()方法,因为属性动画需要有相应的setter和getter的方法实现,混淆了就无法工作了。-keepclassmembers public class * extends android.view.View { void set*(***); *** get*();}#表示不混淆Activity中参数是View的方法,因为有这样一种用法,在XML中配置android:onClick="buttonClick"属性,当用户点击该按钮时就会调用Activity中的buttonClick(View view)方法,如果这个方法被混淆的话就找不到了。-keepclassmembers class * extends android.app.Activity { public void *(android.view.View);}#表示不混淆枚举中的values()和valueOf()方法-keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String);}#表示不混淆Parcelable实现类中的CREATOR字段,毫无疑问,CREATOR字段是绝对不能改变的,包括大小写都不能变,不然整个Parcelable工作机制都会失败。-keepclassmembers class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator CREATOR;}#表示不混淆R文件中的所有静态字段,我们都知道R文件是通过字段来记录每个资源的id的,字段名要是被混淆了,id也就找不着了。-keepclassmembers class **.R$* { public static ;}#保持自定义控件类不被混淆-keepclasseswithmembers class * { public (android.content.Context, android.util.AttributeSet);}#保持自定义控件类不被混淆-keepclasseswithmembers class * { public (android.content.Context, android.util.AttributeSet, int);}#过滤掉自己编写的实体类以及自定义控件类-keep class com.beacon.supertool.bean.**{*;}-keep class com.beacon.supertool.widget.**{*;}#不需要混淆第三方类库-dontwarn android.support.v4.** #去掉警告-keep class android.support.v4.** { *; } #过滤android.support.v4-keep interface android.support.v4.app.** { *; }-keep public class * extends android.support.v4.**-keep public class * extends android.app.Fragment#不需要混淆butterknife-dontwarn butterknife.**-keep class butterknife.** { *;}#不需要混淆gson-dontwarn com.google.**-keep class com.google.gson.** {*;}#不需要混淆glide-dontwarn com.bumptech.glide.**-keep class com.bumptech.glide.** {*;}#不需要混淆okhttp3 okio-dontwarn okhttp3.**-keep class okhttp3.** {*;}-dontwarn okio.**-keep class okio.** {*;}#不需要混淆第三方库库或jar...... 第二步:在项目工程目录下的build.gradle文件中修改
buildTypes {// debug版本的配置 debug { versionNameSuffix "-debug" minifyEnabled false zipAlignEnabled false shrinkResources false signingConfig signingConfigs.debug }// release版本的配置 release { // 不显示Log buildConfigField "boolean", "LOG_DEBUG", "false" //混淆 minifyEnabled true //Zipalign优化 zipAlignEnabled true // 移除无用的resource文件 shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }关于"Android APK打包代码混淆规则怎么定义"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Android APK打包代码混淆规则怎么定义"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
方法
代码
规则
字段
控件
文件
配置
版本
知识
组件
内容
大小
属性
工程
布局
目录
第三方
篇文章
类名
系统
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技图片
为想互联网科技怎么样
杭州互联网科技公司
奇酷互联网科技公司
唐信互联网科技
卓越科技(互联网 )
兼蜜互联网科技
撒么互联网科技公司
甘肃拓世互联网科技有限公司
银川新华互联网科技学校地址
创业天下互联网科技有限公司
全球顶尖互联网科技公司
互联网和黑科技的看法
崇明区互联网教育科技诚信经营
中国航天科技大学国际工业互联网
青岛科技大学互联网大赛研究生
互联网金融科技名词解释
华中科技大学互联网的牛人
图游互联网科技
互联网科技职业技能培训学校
瑰夏咖啡
互联网黑科技
互联网科技网站
互联网科技公司有哪些
深圳艾佳互联网科技
互联网科技大会
科技类的互联网平台
广州有谷有贝互联网科技有限公司
万物互联网智能科技
小牛互联网科技有限公司地址