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

关于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

时间: 2024-10-12 17:10:54

关于Android Studio打包混淆以及上传mapping文件的相关文章

带你彻底明白 Android Studio 打包混淆

前言 在使用Android Studio混淆打包时,该IDE自身集成了Java语言的ProGuard作为压缩,优化和混淆工具,配合Gradle构建工具使用很简单.只需要在工程应用目录的gradle文件中设置minifyEnabled为true即可.然后我们就可以到proguard-rules.pro文件中加入我们的混淆规则了. ProGuard作用 压缩(Shrinking):默认开启,用以减小应用体积,移除未被使用的类和成员,并且会在优化动作执行之后再次执行(因为优化后可能会再次暴露一些未被使

Android Studio 代码混淆(你真的会混淆吗)

一.前言 今天要打包新产品,突然忘了混淆的参数是怎么写的了,虽然之前也混淆过,可是具体配置的参数代码有些记不起来了,因此决定花点时间写篇博客记录一下,方便以后查找和自己的记忆. 二.Android Studio 代码混淆基本配置 在工程目录下,找到 proguard-rules.pro 文件,它就是你要进行编写混淆配置的文件,在这个文件中编写混淆规则 当然,在这之前,还需要在你 module 的 build.gradle 文件中引用该混淆文件: 上面中的 proguard-android.txt

android studio 代码混淆如何忽略第三方jar包

最近在打包混淆时,遇到一个问题,混淆编译都不出错,运行出错,一般遇到这种问题,肯定是在运行的地方有代码被混淆了,经过错误排查,发现是程序中用到第三方的jar包的方法出现问题了,原来android studio混淆打包时把第三方的jar包给混淆了. 于是想这个问题很简单,保持jar包不混淆就好,于是直接在app目录下的proguard-rules.pro(或者proguard-rules.txt)混淆规则文件直接-libraryjars libs/xx.jar避免混淆.但是却引出了另一个错误: E

android+spring boot 选择,上传,下载文件

1 概述 前端android,上传与下载文件,使用OkHttp处理请求,后端使用spring boot+MVC,处理android发送来的上传与下载请求.这个其实不难,就是特别多奇奇怪怪的坑,因此,希望看到的,不要像笔者这样踩的那么痛苦了... 2 环境 win10 Spring Boot 2.2.2 RELEASE IDEA 2019.3.1 Android Studio 3.6RC1 Tomcat 9.0.30 3 android 3.1 准备工作 3.1.1 新建工程 这次用一个全新的例子

Android Studio 打包及引用 aar

Android Studio 打包及引用 aar 1. 简述 在比较大的 Android 项目的开发中,我们经常会遇到工程.jar 包等等之间相互引用的方式.一般我们通过在 gradle 文件中配置依赖来解决,比如: Gradle 的一些基本依赖配置方式如下: compile fileTree(dir: 'xxx', include: ['*.jar', "*.xxx"]):将某个目录下所有符合扩展名的文件作为依赖: compile 'com.xx.xx:ProjectName:Ver

Android项目能运行,上传svn后再下载却不能运行

今天遇到一个比较奇怪的问题,android项目上传到svn之前,可以运行,但是上传到svn后再check, 就出错. 搜索了一下,发现真的解决了问题. svn 不知道是出于什么原因,不能上传.so文件,所以,如果有朋友在上传的项目中引入了.so文件(这个文件一般是在libs文件夹下面).那么就会出现如标题一样的情况.所以, 一定要记住呀.

使用maven打包项目并上传到Linux服务器

maven打包: 项目右键Run as-->Maven build...-->  出来下面的界面,注意红色部分的填写,Goals填写package表示打包,下面的Skip Tests表示打包时不执行单元测试. 点击Run 就打包成功了,jar包在空间下/项目名/target下.没有打包配置文件. 将打包好的jar上传到Linux服务器: 首先通过cd 进入到需要上传的目录下,然后是输入rz命令回车,弹出窗口选择要上传的包,上传,最后通过ls命令查看有没有上传成功. 前两天通过这个方法上传成功了

android studio 打包报错:Generate Signed APK: Errors while building APK. You can find the errors in the 'Messages' view.

找到app文件下的build.gradle文件,之后在该文件中的android加入如下代码即可: android {...... lintOptions { checkReleaseBuilds false abortOnError false}} android studio 打包报错:Generate Signed APK: Errors while building APK. You can find the errors in the 'Messages' view. 原文地址:http

android studio打包weexplus项目常见错误

android studio打包weexplus项目时,gradle失败报错: ERROR: Unable to resolve dependency for ':[email protected]/compileClasspath': Could not download eventbus.jar 解决办法:下载不到相应的类库,添加镜像源 在project  build.gradle更改为 allprojects {    repositories {        maven {