写点什么

APP 瘦身大法 --AndResGuard 的使用,android 地图开发框架

用户头像
Android架构
关注
发布于: 刚刚


我们可以看到 res 文件夹下的目录结构,比如我们想查看该 app 的布局文件,很轻松就能够找到 layout 文件夹:



layout 文件夹下,文件名的可读性也很高,我们可以看到有 activity_add_friend.xml,可以知道是添加银行卡页面的布局。


微信的开源库 AndResGuard 正好解决这种问题,对资源进行混淆,保护 res 资源文件的可读性,同时,可以减少 APP 的大小。经过 AndResGuard 处理后:


res 文件夹名称变为 r,该文件夹下的目录结构变成:



此时,我们根本无法知道哪个文件夹是存放布局文件的,哪些文件夹是存放图片的,即使找到存放 xml 文件的文件夹,我们也难以知道这些 xml 是干嘛用的,如图:



文件的名称毫无可读性,此时,想要找到添加银行卡界面的布局文件,就不再是件容易的事了。


接下来,我们对比下使用 AndResGuard 前后 apk 的大小:



可以看到,apk 的大小从 31.8M 减少到 29.6M,少了 2.2M,很不错的瘦身大法。

AndResGuard 的配置

项目根目录下 build.gradle 中,添加插件的依赖:

dependencies {classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.10'}

app 模块中 build.gradle 中,添加相关配置

个人建议单独出一个 gradle 文件,在 app 目录下,创建 and_res_guard.gradle 文件,如图:



and_res_guard.gradle 文件中的配置:


apply plugin: 'AndResGuard'


andResGuard {mappingFile = nulluse7zip = trueuseSign = truekeepRoot = falsecompressFilePattern = [".png",".jpg",".jpeg",".gif","resources.arsc"]whiteList = [// your icon"R.drawable.icon",// for fabric"R.string.com.crashlytics.",// for umeng update"R.string.tb_","R.layout.tb_*","R.drawable.


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


tb_","R.drawable.u1","R.drawable.u2*","R.color.tb_",// umeng share for sina"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",


//友盟"R.string.umeng*","R.string.UM*","R.layout.umeng*","R.drawable.umeng*","R.id.umeng*","R.anim.umeng*","R.color.umeng*","R.style.UM","R.style.umeng*",

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
APP瘦身大法--AndResGuard的使用,android地图开发框架