关于androidStudio打包混淆以及上传mapping文件

转载请注明出处:
http://blog.csdn.net/u014163726?viewmode=contents
本文出自Wrh的博客

打包

androidstudio的打包很简单

然后如果已经有keystore的一路next下去,如果没有的可能需要先创建keystore,最后我们就会得到一个apk文件

混淆

现在网上关于反编译的博客很多了,我在此就不多做介绍了,放上个传送门传送门

那么我们已经知道了反编译是如此的简单,我们总不希望自己辛苦写的代码被如此轻易的反编译走,而且这样有可能对公司的服务器留下被攻击的隐患,那么我们就可以使用混淆来保护我们所写的代码
Android studio混淆和Eclipse差不多是大同小异的。

名称 作用
minifyEnabled 是否开启混淆
shrinkResources 去除无用的resource文件
proguardFiles getDefaultProguardFile 加载混淆配置文件

如果按照默认的混淆规则很有可能你的程序会报错,因为混淆了一些方法所以程序运行期间无法找到该方法。所以我们应该自定义一些规则在proguard-rules.pro中

以下模板信息来源于网上

指定代码的压缩级别
-optimizationpasses 5
包明不混合大小写
-dontusemixedcaseclassnames
不去忽略非公共的库类
-dontskipnonpubliclibraryclasses
优化 不优化输入的类文件
-dontoptimize
预校验
-dontpreverify
混淆时是否记录日志
-verbose
混淆时所采用的算法
-optimizations !code/simplification/arithmetic,!field/,!class/merging/
保护注解
-keepattributesAnnotation
保持哪些类不被混淆
-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 class_files.txt
未混淆的类和成员
-printseeds seeds.txt
列出从 apk 中删除的代码
-printusage unused.txt
混淆前后的映射
-printmapping mapping.txt

mapping文件

mapping.txt
列出了原始的类,方法和字段名与混淆后代码间的映射。这个文件很重要,当你从release版本中收到一个bug报告时,可以用它来翻译被混淆的代码。

mapping目录在\app\build\outputs\mapping\release

测试


OK,Bye

更多相关文章

  1. 获取Android(安卓)SDK 源代码并在Eclipse中关联查看的方法
  2. Android(安卓)屏幕旋转时Activity的变化
  3. Android(安卓)DownLoadManager的使用
  4. Oprofile在Android中的应用
  5. 对android中MIME类型的理解
  6. Android(安卓)ViewStub控件使用
  7. 使用AXMLPrinter2,smali,baksmali来实现Android(安卓)编译,反编
  8. android自动获取短信验证码
  9. Android中BaseAdapter原理

随机推荐

  1. Ubuntu下android学习——(1)开发环境的搭建
  2. Android的日志工具Log及制定日志工具
  3. 浅析Android位置权限以及数组寻找索引的
  4. android开机自动启动指定app
  5. Android(安卓)Studio 生成含第三方jar包
  6. android内存分析工具- 内存基础知识(2)
  7. 国内Android(安卓)市场调查
  8. [email protected] 的 Android 和 i
  9. 【移动开发】Android中Theme和Style的使
  10. android 按两次返回键强制退出整个APP