微信开源工具AndResGuard

1、简介

AndResGuard是一个帮助你缩小APK大小的工具,他的原理类似Java
Proguard,但是只针对资源。他会将原本冗长的资源路径变短,例如将res/drawable/wechat变为r/d/a。

AndResGuard不涉及编译过程,只需输入一个apk(无论签名与否,debug版,release版均可,在处理过程中会直接将原签名删除),可得到一个实现资源混淆后的apk(若在配置文件中输入签名信息,可自动重签名并对齐,得到可直接发布的apk)以及对应资源ID的mapping文件。

可以减小apk包体大小。

开源地址 https://github.com/shwenzhang/AndResGuard

2、接入

a、在项目更目录下build.gradle文件中引入

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

b、然后在app目录下新建and-res-guard.gradle文件,在build.gradle下配置如下

apply from:'and-res-guard.gradle'

c、完成以上配置,基本上已配置完毕

and-res-guard.gradle文件内容如下

apply plugin: 'AndResGuard'

andResGuard {

// mappingFile = file("./resource_mapping.txt")
mappingFile = null
use7zip = true
useSign = true
// 打开这个开关,会keep住所有资源的原始路径,只混淆资源的名字
keepRoot = false
// 设置这个值,会把arsc name列混淆成相同的名字,减少string常量池的大小
fixedResName = "arg"
// 打开这个开关会合并所有哈希值相同的资源,但请不要过度依赖这个功能去除去冗余资源
mergeDuplicatedRes = true
compressFilePattern = [
"*.png",
"*.jpg",
"*.jpeg",
"*.gif",
"resources.arsc"
]
//添加白名单,保留不被混淆的资源文件
whiteList = [
//app
"R.drawable.ic_launcher",
"R.drawable.ic_launcher_*",
//google-services
"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",
]

sevenzip {
artifact = 'com.tencent.mm:SevenZip:1.2.10'
//path = "/usr/local/bin/7za"
}
}

3、注意事项

所有使用getIdentifier访问的资源都需要加入白名单。
友盟、极光、sharesdk、个推等第三方sdk资源文件需要加入白名单。
glide加载资源文图片需要加入白名单或者处理下
遍历查询所有通过getIdentifier访问的资源,然后统统加入白名单

4、打包apk

可使用命令 ./gradlew resguard[BuildType | Flavor] 或者直接执行下列task任务

在这里插入图片描述

5、apk包

我们可得到以下output路径得到以下7个有用的文件说明如下:

在这里插入图片描述

6、参考地址

开源地址https://github.com/shwenzhang/AndResGuard

AndResGuard和walle多渠道打包

https://blog.csdn.net/cto_1649900265/article/details/107456522

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GitHub 是一个全球最大的代码托管平台之一,提供版本控制和协作的功能,开发者可以在上面共享、管理、发布自己的代码。 微信开源生鲜商城是基于微信公众号开发的一款线上商城系统。通过微信公众号平台的API,商家可以将自己的生鲜商品进行展示和销售,用户可以通过微信购买商品、下单付款并获得物流信息。 在GitHub上,有很多开源项目致力于开发微信开源生鲜商城。这些项目提供了丰富的功能和模块,可以让开发者快速搭建和定制自己的微信生鲜商城。 通过GitHub,开发者可以下载这些开源项目的代码,并在本地进行部署和修改。这些开源项目通常提供了详细的文档和使用说明,让开发者能够更加方便地理解和使用项目。 同时,通过GitHub的版本控制功能,开发者可以方便地进行代码管理和协作。多人合作开发时,可以利用GitHub的分支和合并功能,有效地管理代码的版本和修改。 使用GitHub开发微信开源生鲜商城不仅可以节省开发成本,还可以利用开源社区的力量共同完善项目。开发者可以提交自己的修改和优化,与其他开发者交流和协作,共同推动项目的发展和改进。 总之,利用GitHub进行微信开源生鲜商城的开发是一种高效、便捷的方式,可以帮助开发者快速开发出功能完善的商城系统,并与其他开发者一同推动项目的进步。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值