zoukankan      html  css  js  c++  java
  • 关于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目录在 appuildoutputsmapping elease


    测试


    OK,Bye

  • 相关阅读:
    nginx简单配置
    解决 eclipse出现 Address already in use: bind
    JavaScript 正则表达式学习
    RabbitMQ的介绍与spring整合
    RabbitMQ的安装与客户端的简单实用
    java中的break与continue
    书单
    (七)SpringBoot2.0基础篇- application.properties属性文件的解析及获取
    (六)SpringBoot2.0基础篇- MyBatis、Redis整合(JedisCluster集群连接)
    (五)SpringBoot2.0基础篇- Mybatis与插件生成代码
  • 原文地址:https://www.cnblogs.com/tianshiaimi/p/5025578.html
Copyright © 2011-2022 走看看