Android 之 打包混淆ProGuard

打包后的几个很重要的文件
  1. 需要记住的目录:
    在Android studio的build文件夹下,build/outputs/mapping/下的文件
    • dump.txt     这个文件描述了APK中的class 文件的内部结构
    • mapping.txt     这个文件提供了一个对照列表,即原始的名字和混淆后的名字的对照表,在我们发布应用后收集到的bug 日志,需要根据这个表来进行定位bug的位置。
    • seeds.txt     这个文件列出了没有被混淆的类和成员
    • usage.txt     这个文件列出了被从APK文件中删除掉的代码
  2. 关于如何进行打包混淆

    • build.gradle 文件

      buildTypes{
          release {
              minifyEnable true
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          }    
      }
      

      通过getDefaultProguardFile函数加载默认的混淆配置文件,这里是proguard-android.txt,这个文件android studio 会到我们的SDK目录tools/proguard/文件夹下面去加载。在该文件夹下面我们也可以使用proguard-android-optimize.txt文件,这个文件和proguard-android.txt的混淆规则是一样的,但是还增加了一些优化,这些优化深入到字节码(.class file 也就是说会深入到方法中去进行优化)进行来进一步减少APK的大小并且提高运行速度。
      剩下一个文件就是我们进行自定义混淆规则的文件,proguard-rules.pro 因为有些时候android studio在混淆时会把一些我们不希望进行混淆的类或者方法给混淆了,这个时候我们就需要在这个文件中列出我们不希望进行混淆的类或者方法,具体如何编写如下:

    • progurad-rules.pro 主要使用下面这些关键字来保持某些代码不被加入到混淆规则中去:
      • keep
      • keepclassmembers
      • keepclassmemebernames
      • keepclasswithmembers
      • keepclasswithmembernames
      • keepattributes
      • keepnames
      • keepdirectories
      • keepparameternames
      • keeppackagenames

    keep*等关键字的作用和用法见下表:

keep关键字作用示例
keep通用保持一个类的某些方法或者成员不被混淆keep class com.xiaolei.model.csdndemo.* {
        *;
}

。。。。待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值