关于Android Studio打包混淆以及上传mapping文件
2015-07-16 16:11
477 查看
关于Android Studio打包混淆以及上传mapping文件
转载请注明出处:http://blog.csdn.net/u014163726?viewmode=contents
本文出自Wrh的博客
打包
Android studio的打包很简单然后如果已经有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/
保护注解
-keepattributes Annotation
保持哪些类不被混淆
-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
相关文章推荐
- iOS 类似淘宝商品详情查看翻页效果的实现
- Android---利用Google的云消息
- Android-studio第一次开始跳过SDK下载
- Android触控基础:MotionEvent
- Android通过反射打造可以存储任何对象的万能SharedPreferences
- Swif语法基础 要点归纳(一)
- [Tool] 取得APP的Store URL Scheme (Android、iOS)
- Windows环境下Android Studio安装教程
- AndroidStudio创建TV-APP,出现Error:(28, 13) Failed to resolve: com.squareup.picasso:picasso:2.5.0 的解决
- android常用模式了解
- iOS 启动画面设置
- Android代码优化——使用Android lint工具
- Twitter算法面试题详解(Java实现)——Trapping Rain Water
- android自定义View(三)——动画焦点框
- Swift面向对象基础(中)——Swift中的方法
- Android框架之快速开发框架xUtil
- Android 中一些常用而又容易忘记的
- iOS错误报告中关于崩溃地址的分析
- Android 开发相关的Blog推荐——跟随大神的脚步才能成长为大神
- android RecylerView需要注意的问题