Android(安卓)代码混淆
16lz
2022-05-21
1.简介
Android代码混淆默认用的是Proguard(http://proguard.sourceforge.net/)工具。在Android 2.3.3以后创建的工程将默认产生proguard.cfg文件,这个文件是proguard混淆的配置文件,然后再在default.properties中加上proguard.config=proguard.cfg即可,如果你的工程里没有生成proguard.cfg文件可以拷贝下面代码,然后保存为proguard.cfg文件即可:
-optimizationpasses5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontpreverify-ignorewarnings-verbose-optimizations!code/simplification/arithmetic,!field/*,!class/merging/*-keeppublicclass*extendsandroid.app.Activity-keeppublicclass*extendsandroid.app.Application-keeppublicclass*extendsandroid.app.Service-keeppublicclass*extendsandroid.content.BroadcastReceiver-keeppublicclass*extendsandroid.content.ContentProvider-keeppublicclass*extendsandroid.app.backup.BackupAgentHelper-keeppublicclass*extendsandroid.preference.Preference-keeppublicclasscom.android.vending.licensing.ILicensingService-keepclasseswithmembernamesclass*{native<methods>;}-keepclasseswithmembernamesclass*{public<init>(android.content.Context,android.util.AttributeSet);}-keepclasseswithmembernamesclass*{public<init>(android.content.Context,android.util.AttributeSet,int);}-keepclassmembersenum*{publicstatic**[]values();publicstatic**valueOf(java.lang.String);}-keepclass*implementsandroid.os.Parcelable{publicstaticfinalandroid.os.Parcelable$Creator*;}
2.步骤
1.生成proguard.cfg文件;
2.在default.properties中加上proguard.config=proguard.cfg
3.导出打包APK
3.常见问题
1.注意保留一些如Activity,Service 等系统类,防止调用时找不到类;
2.如果调用的第三方库已经混淆了,可能出错所以就要设置不要混淆这些库:
-dontwarn-libraryjarslibs/Baidu_Mobstat_Android_SDK.jar-libraryjarslibs/baidumapapi.jar-dontskipnonpubliclibraryclassmembers-dontskipnonpubliclibraryclasses-dontwarnnet.poemcode.**
3.记得要导出打包APK才能混淆
4.反编译验证
工具如下http://download.csdn.net/detail/yale8848/8063631
更多相关文章
- android系统中运行jar文件
- Android(安卓)Android.mk 文件一点感悟
- Android:使用SAX或者DOM或者pull操作XML文件
- Android(安卓)字体自适应设置
- Android中使用【microlog4】进行日志存储
- 跟着第二行代码回顾Android--持久化技术
- MediaRecorder流程分析
- android:AssetManager
- NPM 和webpack 的基础使用