Android 代码混淆 防止反编译
2014-12-05 18:24
351 查看
为了防止代码被反编译,因此需要加入混淆。混淆也可以通过第三方进行apk混淆,也可以用android中的proguard进行混淆。
混淆步骤:
1、配置混淆文件,名字可以随意,在这里使用proguard-android,格式为txt。
在项目的project.properties文件中加入proguard.config=proguard-android.txt,就是上面写的混淆文件。
3、android默认运行环境是debug模式,是不执行代码混淆的。因此,必须对项目进行签名才可以,如果在打包时遇到错误,可能是混淆文件哪里写的有问题。
参考
http://blog.csdn.net/lovexjyong/article/details/24652085
混淆步骤:
1、配置混淆文件,名字可以随意,在这里使用proguard-android,格式为txt。
-optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassnames # 是否使用大小写混合 -dontskipnonpubliclibraryclasses # 是否混淆第三方jar -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 # 保持哪些类不被混淆 -libraryjars libs/gson-2.0.jar # 保持 第三方jar不被混淆 -keepclasseswithmembernames class * { # 保持 native 方法不被混淆 native <methods>; } -keepclasseswithmembers class * { # 保持自定义控件类不被混淆 public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet, int); # 保持自定义控件类不被混淆 } -keepclassmembers class * extends android.app.Activity { # 保持自定义控件类不被混淆 public void *(android.view.View); } -keepclassmembers enum * { # 保持枚举 enum 类不被混淆 public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆 public static final android.os.Parcelable$Creator *; } -keepclassmembers class **.R$* { # 保持R文件不被混淆 public static <fields>; } -keep class com.alipay.android.app.IAliPay{*;} # 保持某个接口或类不被混淆 -keep class com.android.app.view**{*;} # 保持某个包下所有的类不被混淆 -keep class com.android.app.CommonCallback{ # 保持某个类或接口的公有和保护类型的成员和方法不被混淆 public protected <fields>; public protected <methods>; } -keep class com.android.app.Platform$*{ # 保持内部类不被混淆 *; } #-keep class com.android.app.** implements com.android.app.Platform$ICallback {*;} # 保持内部接口不被混淆 -dontwarn android.support.**2、引入
在项目的project.properties文件中加入proguard.config=proguard-android.txt,就是上面写的混淆文件。
3、android默认运行环境是debug模式,是不执行代码混淆的。因此,必须对项目进行签名才可以,如果在打包时遇到错误,可能是混淆文件哪里写的有问题。
参考
http://blog.csdn.net/lovexjyong/article/details/24652085
相关文章推荐
- Proguard android代码混淆 防止反编译
- android 如何防止代码被反编译(代码混淆)
- AndroidStudio开启代码混淆Progurad功能,防止你的app被反编译
- 命令行编译android程序,欢迎探讨命令行如何使用proguard混淆优化代码
- Android 如何防止代码被反编译
- 关于android防止反编译的保护措施——混淆编译
- 防止Android代码被反编译的方法
- Proguard android代码混淆 防止反编译
- Android Native 代码 Release 编译 - 混淆 Native 代码
- android 应用 Ant脚本自动编译、打包、代码混淆、签名、安装等
- 牛人必修 Ant编译android工程 ,并Proguard代码混淆,v4混淆配置
- android打包混淆代码编译会出现很多warling,然后编译失败问题解决办法
- Android 如何防止代码被反编译
- 详细讲解Android对自己的应用代码进行混淆加密防止反编译
- 代码混淆—android被反编译的两种解决方案
- android 如何防止代码被反编译
- 如何混淆Android项目代码(ProGuard)防止反编译
- 代码混淆—android被反编译的两种解决方案
- Proguard android代码混淆 防止反编译
- 如何混淆Android项目代码(ProGuard),防止反编译