最近在公司项目中应用到了R文件内联来进行包体积优化,故记录一下实践的一些经验
R文件内部包含了Android中所使用到的所有资源的唯一标识符,也就是id,从源代码形式来看就是在名为R类的内部包含多个静态内部类,代表不同类别的资源,而这些静态内部类的内部就是这类资源从小到大依次编排的资源id,
这些id是静态内部类的静态属性,因此我们在代码中才能使用诸如R.string.app 的方式来引用到相应的资源id
而R文件的内联就是指在编译完毕的最终产物(apk/aab)中,将源码中诸如R.string.app的这种调用全部替换为最终的int类型的值,经过这样的处理,R文件就没有在最终产物中存在的必要了,因此达到了最终产物体积缩小的目的。
经过调研,发现目前主要有两种方式能达到R文件内联的效果:
1.利用AGP特性实现R文件内联
参考链接:Android agp 对 R 文件内联支持 - 网易云音乐技术团队 - SegmentFault 思否
2.自定义gradle 插件实现R文件内联
参考链接:ByteX/README.md at master · bytedance/ByteX (github.com)
因此决定基于以上两种套路进行项目实践
标签:文件,内部,静态,体积,内联,Android,id From: https://www.cnblogs.com/hzbkd/p/17166419.html