Android Studio实现代码混淆
2016-07-25 15:24
459 查看
1,在build.grandle添加,其中规则写在proguard-rules.pro中,也可以自定义一个文件,将其代替,比如eclipse常用的 proguard-project.txt
2,在proguard-rules.pro中加入以下代码,基本可以涵盖所有
3,通过 Android Studio进行 混淆代码时,默认已经将 lib目录中的 jar 都已经添加到打包脚本中,所以不需要再次手动添加,否则会出现“ java.io.IOException: The same input jar is specified twice” 错误。
buildTypes { release { signingConfig signingConfigs.release minifyEnabled true proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘ } }
2,在proguard-rules.pro中加入以下代码,基本可以涵盖所有
-optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassnames # 是否使用大小写混合 -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 # 保持哪些类不被混淆 -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 *; }
3,通过 Android Studio进行 混淆代码时,默认已经将 lib目录中的 jar 都已经添加到打包脚本中,所以不需要再次手动添加,否则会出现“ java.io.IOException: The same input jar is specified twice” 错误。
相关文章推荐
- SourceProvider.getJniDirectories
- 执行失败的任务 ': processDebugManifest'
- 如何安装SQL Server 2008 Management Studio Express
- 获取免费的Camtasia Studio 2使用授权
- 如何使用Visual Studio 2010在数据库中生成随机测试数据
- Chrome Visual Studio 2005下的编译过程
- MSN Messenger 化繁为简(用 Visual Studio 2005 去掉 MSN 广告)
- Android Studio使用教程(六):Gradle多渠道打包
- zend studio 快捷键收集
- Visual Studio快速开发以及Visual Studio 2010新功能介绍
- C#中几个未知的Visual Studio编码技巧分享
- 微软 Visual Studio 2010官方下载地址给大家
- Visual Studio 2008中文版官方下载地址
- Web版彷 Visual Studio 2003 颜色选择器
- jquery1.4.2 for Visual studio 2010 模板文件
- 图文详解Android Studio搭建Android集成开发环境的过程
- 使用zend studio for eclipse不能激活代码提示功能的解决办法
- Zend Studio 无法启动的问题解决方法
- Zend Studio (eclipse)使用速度优化方法
- 解决Visual Studio 2005 无法显示设计视图的方法