}
}
public static final class drawable {
…
}
public static final class dimen {
…
}
…
}
这都是些常量,那我们有没有办法删除这个文件呢,引用的地方直接使用常量的值?事实是可以的. 根据APK打包的编译过程,在编译过程中使用Android的Transform替换所有的类里面的常量. BuildConfig, Rid,
Rlayout, R$string,AppConstans, etc
目前滴滴开源了一个booster 可以直接使用,不用在自己造轮子
booster-transform-shrink
效果
组件化后或者依赖第三方 R文件越来越多,常量比较多时,效果比较显著 据抖音的一哥们说,他们项目针对此项目优化后,包体积减少2M左右.
在我们项目上使用,不是很明显,优化体积1M左右.
注意事项
因为是删除常量,所有使用反射的地方也需要keep住,如果使用滴滴的booster,可以参考 issues
Res资源
Android Lint 去除无用资源
当我们项目迭代不断迭代,总有些资源逐渐不在使用,成为了冗余,当很多时候又懒得删,或者怕删了出问题. Android Studio自带lint工具可以帮助我们清楚这些无用资源.(这里的