美文网首页Android知识安卓面试
使用AndResGuard压缩资源,减少APK体积

使用AndResGuard压缩资源,减少APK体积

作者: 码字农民工 | 来源:发表于2017-03-15 12:02 被阅读246次
  • 什么是AndResGuard

AndResGuard是一个帮助你缩小APK大小的工具,他的原理类似Java Proguard,但是只针对资源。他会将原本冗长的资源路径变短,例如将res/drawable/wechat变为r/d/a。
AndResGuard不涉及编译过程,只需输入一个apk(无论签名与否,debug版,release版均可,在处理过程中会直接将原签名删除),可得到一个实现资源混淆后的apk(若在配置文件中输入签名信息,可自动重签名并对齐,得到可直接发布的apk)以及对应资源ID的mapping文件。文档说明

  • 使用方法

配置gradle demo
在项目根build.gradle当中

buildscript {
    repositories {
      jcenter()
    }
    dependencies {
      classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.1.16'
    }
}

在app的build.gradle当中

apply plugin: 'AndResGuard'

紧接着在app的build.gradle当中,继续加入以下代码

andResGuard {
  // mappingFile = file("./resource_mapping.txt")
  mappingFile = null //指定旧的mapping文件,保证同一资源文件在不同版本混淆后的名称保持一致。若在命令行设置会覆盖config.xml中的信息。
  use7zip = true
  useSign = true
  // 打开这个开关,会keep住所有资源的原始路径,只混淆资源的名字
  keepRoot = false
  whiteList = [
      // 你的图标
      "R.drawable.icon",
      // 你的项目名字
      "R.string.com.crashlytics.*",
      // 友盟统计
      "R.string.umeng*",
      "R.string.UM*",
      "R.string.tb_*",
      "R.layout.umeng*",
      "R.layout.tb_*",
      "R.drawable.umeng*",
      "R.drawable.tb_*",
      "R.anim.umeng*",
      "R.color.umeng*",
      "R.color.tb_*",
      "R.style.*UM*",
      "R.style.umeng*",
      "R.id.umeng*",
      // 新浪图标
      "R.drawable.sina*",
      // for google-services.json
      "R.string.google_app_id",
      "R.string.gcm_defaultSenderId",
      "R.string.default_web_client_id",
      "R.string.ga_trackingId",
      "R.string.firebase_database_url",
      "R.string.google_api_key",
      "R.string.google_crash_reporting_api_key",
      // facebook
      "R.layout.*facebook*",
      "R.id.*facebook*",
      // 短信验证
      "R.layout.*messager*",
      "R.id.*messager*",
      // share commond
      "R.id.progress_bar_parent",
      "R.id.webView"
  ]
  compressFilePattern = [
      "*.png",
      "*.jpg",
      "*.jpeg",
      "*.gif",
      "resources.arsc"
  ]
   sevenzip {
       //一般artifact与path中选一个,如果两个都选,会优先path
       artifact = 'com.tencent.mm:SevenZip:1.1.16'
       //path = "/usr/local/bin/7za" -linux
       //path = "C:\\Program Files\\7-Zip\\7za.exe" -window
  }
}
     在whiteList的配置中你可以根据项目实际情况进行配置

上面所列更多详细参数描述,请看这

  • 到这就算把该工具应用到项目当中,如何打包才能生效?

Android Studio 最简单的方式就是


Paste_Image.png

还有命令行模式

./gradlew resguard
  • 运行后的apk路径在哪?

项目名称\app\build\outputs\apk\AndResGuard_app-release\很多文件

效果图

Paste_Image.png Paste_Image.png Paste_Image.png

如有错误请提出,谢谢!

相关文章

  • 使用AndResGuard压缩资源,减少APK体积

    什么是AndResGuard AndResGuard是一个帮助你缩小APK大小的工具,他的原理类似Java Pro...

  • AndResGuard keepmapping 的一个坑

    AndResGuard是微信的资源压缩工具,减少包体积大小的利器。我们项目是在Jenkins上面构建的,所以是通过...

  • Android 混淆压缩

    一.为什么要混淆压缩? 原因主要有三 增加反编译的成本 资源压缩 减少apk体积 代码压缩 规避64k方法限制 二...

  • APK体积减少攻略

    APK体积减少攻略 整体7zip压缩 将APK包解压到文件夹 全选所有文件,右键“添加到压缩包”3.“压缩格式”必...

  • 2020-01-30 前端性能优化

    减少资源体积 gzip gzip 使用了 LZ77 算法与 Huffman 编码来压缩文件,重复度越高的文件可压缩...

  • Android-瘦身优化

    APK瘦身 随着业务迭代,apk体积逐渐变大。项目中积累的无用资源,未压缩的图片资源等,都为apk带来了不必要的体...

  • Apk瘦身方案

    背景:随着业务迭代,Apk体积逐渐变大。项目中积累无用资源,未压缩的图片等都会增加apk的size,而Apk的si...

  • Android开发工具

    https://tinypng.com/ 压缩图片的网站 减少apk体积 IG0ZQ9Gt9myX6mJZHpZf...

  • 减少apk体积

    [TOC] 首先说下apk体积减小的必要性 减小apk的安装时间,增加用户留存,减少CDN流量费用 再这之前,先来...

  • android优化APK大小方法

    压缩资源文件名称 可以用 AndResGuard 压缩资源图片 可以用img-optimizer-gradle-p...

网友评论

    本文标题:使用AndResGuard压缩资源,减少APK体积

    本文链接:https://www.haomeiwen.com/subject/aldlnttx.html