时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

新版 Android 插件登场,应用能瘦身 50%,Google 把代码优化和资源压缩合二为一

  • 2025-09-23
    北京
  • 本文字数:835 字

    阅读完需:约 3 分钟

大小:393.76K时长:02:14
新版 Android 插件登场,应用能瘦身 50%,Google 把代码优化和资源压缩合二为一

Google 宣布,在最新版本的 Android Gradle Plugin(AGP)中引入了一种全新的资源压缩优化方案,将代码优化与资源压缩合并处理。在同时支持多种设备形态、并大量共享代码和资源的应用上,这一方案能让体积缩减幅度最高达到 50%。


在这一新方法中,Android 长期使用的优化器 R8 可以同时处理代码和资源引用,从而识别出那些只被无用代码引用的资源,并将它们连同对应的冗余代码一起移除。


这意味着,AAPT2 不必再生成那些一刀切的保留规则;取而代之,开发者能获得更精准的分析信息,从而更有针对性地移除无用代码和资源。


在旧版本中,AAPT2 会在 R8 优化代码之前生成无条件保留规则,这些规则经常会误保留一些无用代码,进而阻止 R8 清理掉相关的冗余资源。


Google 表示:“在新的 R8 优化流程下,对于跨多种设备形态共享大量代码和资源的应用,体积缩减效果可超过 50%,对于中小型应用也有显著提升。”


随着新优化机制的引入,开发者目前可选择四种不同的应用优化方式:

1. 不进行优化

2. 仅使用 R8

3. 使用 R8 并启用资源压缩

4. 启用优化版资源压缩


这几种方式效果依次递进。启用 R8 可以减小 DEX 文件体积;在此基础上,启用资源压缩会移除 res 文件夹和资源表中未使用的资源,但不会进一步减少 DEX 大小;而优化版资源压缩还能同时追踪代码和资源的引用,把冗余的资源和 DEX 代码一起清理掉,从而让应用体积进一步缩小。


AGP 8.12.0 已提供这一全新的资源压缩流程,开发者可自行选择启用。要启用它,开发者需在 AGP 配置中写入:


android {  buildTypes {    release {      isMinifyEnabled = true      isShrinkResources = true    }  }}
复制代码


在即将发布的 AGP 9 中,这一优化行为将成为默认设置。


应用体积缩减的好处不仅体现在更快的下载速度、更快的安装过程和更低的内存占用,还能带来更快的启动时间、更流畅的渲染表现,并减少 ANR(应用无响应)的发生——这种问题通常是由于应用的 UI 线程长时间被阻塞导致的。


原文链接:

https://www.infoq.com/news/2025/09/android-optimized-R8/

2025-09-23 14:215472

评论

发布
暂无评论

手把手教您在PyCharm中连接云端资源进行代码调试

华为云开发者联盟

人工智能 华为云 企业号 2 月 PK 榜 华为云开发者联盟

OKR之剑·实战篇04:OKR执行过程优化的那些关键事

vivo互联网技术

团队管理 OKR

代码实例解读如何安全发布对象

华为云开发者联盟

开发 华为云 企业号 2 月 PK 榜 华为云开发者联盟

技术管理 之 干系人管理

码猿外

技术管理 干系人管理

Databend Roadmap in 2023

Databend

新范式+新标准=世界级产品|StarRocks年度总结

StarRocks

数据库

1

Doctor Blind

想找个稳定的工作

MavenTalker

职业素养 职业发展 求职面试

RocketMQ源码-NameServer架构设计及启动流程

小小怪下士

Java 源码 程序员 RocketMQ

分层次的电路设计方法

timerring

FPGA

windows命令窗口

MEImei

分享一个 HIVE SQL 性能优化点-使用公共表表达式 CTE 替换临时表

明哥的IT随笔

hadoop hive

比亚迪元EV汽车拆解报告

不脱发的程序猿

嵌入式 汽车电子 比亚迪元EV汽车拆解

架构实战营第 10 期 - 模块五:微博评论高性能高可用计算架构设计

kaizen

「架构实战营」

一看就懂!任务提交的资源判断在Taier中的实践

袋鼠云数栈

mockito入门

查拉图斯特拉说

后端 单元测试

软件测试/测试开发 | app自动化测试(Android)--App 控件交互

测试人

软件测试 自动化测试 测试开发 appium app自动化测试

2K字就能理解的async/await原理,还要拖多久?

梁木由

前端 前端开发 校招 前端入门

云时代,好用的数据迁移方案推荐

NineData

数据库迁移 数据校验 数据复制 迁移工具 NineData

AIGC的浪潮下,文本生成发展得怎么样了?

澜舟孟子开源社区

人工智能 文本生成 AIGC

一文走进多核架构下的内存模

KaiwuDB

多模数据库 多核编程 内存模

坚持技术or转做管理,我们该如何选择?

石云升

极客时间 1月月更 技术领导力实战笔记

火山引擎DataTester:0代码也能实施A/B测试的实验平台

字节跳动数据平台

大数据 AB testing实战 企业号 2 月 PK 榜

开发互动直播应用很简单:声网 Android Demo保姆级跑通教程

声网

android RTC RTE 教程分享

全球首个面向遥感任务设计的亿级视觉Transformer大模型

京东科技开发者

CNN 遥感 遥感影像 企业号 2 月 PK 榜 深度视觉

应用部署初探:3个主要阶段、4种常见模式

SEAL安全

应用部署

贴合运维场景的告警聚合实现——以Zabbix为例

北海

运维 zabbix 告警 IT运维

BSN-DDC基础网络详解(一):基础介绍

BSN研习社

比亚迪新能源汽车战略布局研究

不脱发的程序猿

汽车电子 比亚迪新能源汽车战略布局 比亚迪新能源汽车

《欧拉开源操作系统行业应用案例集》2023年案例集征集开始!

openEuler

Linux 操作系统 openEuler

新版 Android 插件登场,应用能瘦身 50%,Google 把代码优化和资源压缩合二为一_后端_Sergio De Simone_InfoQ精选文章