我们可以看到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 = null
use7zip = true
useSign = true
keepRoot = false
compressFilePattern = [
“.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.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”,
最后
愿你有一天,真爱自己,善待自己。
本文在开源项目:Android开发不会这些?如何面试拿高薪 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
实战项目、讲解视频**
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-oI3kt5dH-1710965007201)]