前言
最近Compose
已经正式发布了1.0
版本,这说明谷歌认为Compose
已经可以用于正式生产环境了
那么相比传统的XML
,Compose
的性能到底怎么样呢?
本文主要从构建性能与运行时两个方面来分析Compose
的性能,数据主要来源于:Jetpack Compose — Before and after 与 Measuring Render Performance with Jetpack Compose , 想了解更多的同学可以直接点击查看
构建性能
Compose
构建性能主要以 tivi 为例来进行说明Tivi
是一个开源的电影App
,原本基于Fragment
与XML
构建,同时还使用了DataBinding
等使用了注解处理器的框架
后来迁移到使用Compose
构建UI
,迁移过程分为两步
- 第一步:迁移到
Navigation
与Fragment
,每个Fragment
的UI
则由Compose
构建 - 第二步:移除
Fragment
,完全基于Compose
实现UI
下面我们就对Pre-Compose
,Fragments + Compose
,Entirely Compose
三个阶段的性能进行分析对比
APK
体积
包体积是我们经常关注的性能指标之一,我们一起看下3个阶段的包体积对比