首页 > 其他分享 >Android包体积优化-R文件内联

Android包体积优化-R文件内联

时间:2023-02-28 23:12:36浏览次数:50  
标签:文件 内部 静态 体积 内联 Android id

最近在公司项目中应用到了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

相关文章

  • 2月27日Android开发学习
    App工程目录结构App工程分为两个层次,第一个层次是项目,另一个层次是模块。模块依附于项目,每个项目至少有一个模块。一般而言的“编译运行App”,指的是运行某一模块,而非运行......
  • 2023.2.28Android开发
    今天早上学习了数据库原理,下午学习了Python程序设计Android开发的设置视图的对齐方式设置视图的对齐方式有两种途径:采用layout_gravity属性,它指定了当前视图相对于上级视......
  • Android基础之EditText
    EditText表示编辑框,它是TextView的子类,用户可在此控件中输入信息。除了支持TextView控件的属性外,EditText还支持一些其他的常用属性: ......
  • protobuf使用(二)android ndk
    简介 1.  官方文档中提到一些protobuf的优点,protobuf灵活高效的结构化数据存储格式.方便用于序列化,适合做RPC的数据交换.2.  相比XML,protobuf比XML更小......
  • Android Studio 实现扫码功能
    因公司的需求,需要做一些安卓方面的开发,权衡许久,确定了使用AndroidStudio作为开发工具。对于安卓开发,目前还算小白一个,刚接触没几天。其中一项功能为安卓PDA扫码功能,因为......
  • 在android源码中编译ADW_Launcher
    1.下载ADW_Launcher源码 cd/android-2.1/packages/apps/ mkdirADW_Launcher cdADW_Launchergitclonegit://github.com/AnderWeb/android_packages_apps_Launcher.gi......
  • android string.xml文件中的整型和string型代替
    在android的开发中,经常会遇见一句话,比如“我今年23岁了”;这个23需要在程序中生成,但是遇到一个问题,这完整的一句话是一个TextView中的,而不是三个textView拼接成的,而且是引用......
  • Android开发--Intent-filter属性详解
    如果一个Intent请求在一片数据上执行一个动作,Android如何知道哪个应用程序(和组件)能用来响应这个请求呢?IntentFilter就是用来注册Activity、Service和Broadca......
  • Android通过flutter_module引入Flutter,无法热更。
    一、混合开发中启用Flutter的热重启/热加载Flutter开发时,默认自动开启热重启/热更新功能,改动代码后,一旦Ctrl+S保存代码,修改的内容马上会热更新......
  • 梦想Android版CAD控件(安卓CAD二次开发,安卓CAD控件)2023.02.26更新
    下载地址:https://www.mxdraw.com/ndetail_40240.html1. 增加willBeReturnStart事件2. 增加使用OpenGL缓存3. 优化界面响应时间4. 修改在个别图纸上大量的小对象图块,缩......