Android代码混淆后查看日志
Android中可以通过混淆减少apk的大小,提高apk反编译的难度。
但是在混淆过后会遇到一个问题,就是日志,比如说错误日志的函数会变成abcd.
怎么解决这个问题呢
通过mapping文件
mapping文件是混淆后的代码跟正常代码的一个映射文件
通过这个文件可以把混淆后的代码转换成正常的代码展示
mapping文件在minifyEnabled 为false的时候,是不会产生的。当我们设置了minifyEnabled 为true,也就是开启混淆之后,默认是会在app下的build/outpus/mapping文件夹中产生一个mapping.txt文件
也可以通过在app下的proguard-rules.pro 文件中加入 -printmapping mapping.txt
就会在app下面输出一个mapping.txt文件
可以通过在混淆文件中加入
#保留源文件名称以及行号
-keepattributes SourceFile,LineNumberTable
#保留自定义异常
-keep public class * extends java.lang.Exception
来保留文件名跟行号
接下来就是解决方案
方案1
比如说我们把错误日志上传到了bugly或者firebase这种第三方平台。
我们可以通过上传mapping文件,比如bugly中,
如果是firebase,在开启混淆后,会报一个错
Execution failed for task ‘:app:uploadCrashlyticsMappingFileDebug’
Connection timed out: connect. If you are behind an HTTP proxy, please configure the proxy settings either in IDE or Gradle.
这是因为firebase自动上传mapping的时候,因为国外网络原因,无法自动上传
需要设置
debug {minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'signingConfig signingConfigs.xxx//指定签名文件签名// 设置是否要自动上传firebaseCrashlytics {mappingFileUploadEnabled true}}
但是这样的话,就不能上传mapping文件了,这个可能需要解决这个网络问题了
方案二
1.cmd进入sdk/tools/proguard/bin目录
2.将混淆后的日志cache_file_name.txt和上文提到的mapping文件放入此目录中。
3.执行命令:retrace.bat mapping.txt cache_file_name.txt
通过sdk中的工具,用命令的方式输出原日志。cache_file_name.txt这个文件可以自己随意定义,只需要把错误日志复制到里面就行了
方案三
还可以通过gui图形界面的方式输出
还是进入到 sdk/tools/proguard/bin目录
使用proguard.bat
Android代码混淆后查看日志相关推荐
- Android代码混淆后的定位
Android代码混淆后的定位 什么是代码混淆 如何开启Android Studio的代码混淆 如何在程序奔溃后定位到奔溃的代码行 mapping.txt 分析流程 什么是代码混淆 在java写的.j ...
- Android混淆后的日志查看方法(mac)
Android混淆后的日志查看方法(mac) 注:这是本人常用方法,如下述方法有错误或更好的办法,请大佬评论指出,防止误导他人.收集日志用的友盟,混淆后的日志在友盟错误列表-错误详情-详细日志, 1. ...
- android 混淆后的机制,Android 代码混淆机制
Android 代码混淆机制 由于Android项目是基于java语言的,而java属于高层抽象语言,易于反编译,其编译后的程序包包含了大量的源代码变量.函数名.数据结构等信息,根据其编译打包后的AP ...
- Android代码混淆工具Proguard学习
概述 Proguard代码混淆工具:可以对代码进行去冗余压缩,代码优化,代码混淆等.在Android中的主要应用就是对代码混淆:就是将类名,方法名,Field名变成如a,b,c或者1,2,3等难以阅读 ...
- android代码混淆个人总结及踩坑
android代码混淆个人总结及踩坑 前言 公司项目使用组件化开发的形式,需要对自己负责的模块进行一些混淆配置,关于混淆相信做android开发的都或多或少有过一些接触,通过对混淆文件的配置从而将代码 ...
- android 代码混淆
简介 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还能对字节码 ...
- android混淆语法(android代码混淆工具)
android 代码混淆算法有哪些 根据SDK的版本不同有2中不同的代码混淆方式,以上的proguard.cfg参数详解中所涉及到的信息是在较低版本SDK下的混淆脚本,事实上在高版本的SDK下混淆的原 ...
- Android代码混淆之混淆规则
请尊重他人的劳动成果,转载请注明出处:<Android代码混淆技巧> 因为Android是使用Java开发的,所以开发者可以使用ProGuard对代码进行混淆.SDK已经集成了ProGua ...
- Android 代码混淆Proguard
混淆概念 Android代码混淆,又称Android混淆,是伴随着Android系统的流行而产生的一种APP保护技术,用于保护APP不被破解和逆向分析. 在Android的具体表现就是打包时,将项目里 ...
最新文章
- centos 静态ip_CentOS 6 静态 IP 配置
- 【阿里云课程】1小时快速掌握Tensorflow核心功能,完成完整的项目实践
- php篮球比赛,篮球数据API接口 - 【篮球比赛动画直播变化数据】API调用示例代码...
- 桶排序(BucketSort)(java)
- python中递归函数基例_智慧树python答案
- solr 时间转成java_solr时区设置解决时间多8小时问题
- Arm学习总结之 32位和64位寄存器
- 判断字符串和数组是否为空
- Spring中利用java注解声明切面
- python移动文件
- TCP 和 UDP 有什么区别?
- dm9000网卡 S3C2440
- 传感器与检测技术考试
- 11月合资SUV销量:日系车统治榜单 大众产品攻势“拳意渐乱”
- mysql主主报错_MySQL 主主报错: Fatal error: The slave I/O thread stops because master and slave have...
- 江苏电信用户将体验iPhone6s的极速4G+网络
- [语录]足球解说员贺炜语录
- 触发拍照4G低功耗摄像机数据监控方案
- c语言写rpg游戏,第1章 序(来,我们一起写个角色扮演游戏)
- 发现新鲜的画法,文艺极简水彩线描简笔画植物:草叶集(一)
热门文章
- CODING 敏捷实战系列课第二讲:Scrum 敏捷项目管理核心要素之 3355
- python3封装pymysql,方便快速调用
- 解决 Android studio 出现“The emulator process for AVD xxx has terminated.”的错误
- 运动装备怎么选?五款好用的运动装备推荐
- SonarQube安装配置202202
- office常用技能总结--Excel函数之DCOUNT
- 《软件工程教程》(第2版) 主编:吴迪 马宏茹 丁万宁 第六章课后习题参考答案
- 【Visual C++】游戏开发五十五 浅墨DirectX教程二十二 水乳交融的美学:alpha混合技术
- python 个位,十位,百位 求解
- 基于WPF的Metro风格的MehApp库介绍