
Compose
文章平均质量分 94
普通网友
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入浅出 JetPack Compose UI 自动更新原理
可以看到,Compose 内部做了非常多有趣的优化,我不认为只使用 Compose 去编写 UI 能够发掘出这些东西。Compose 的编译器插件会对我们写的 Composable 函数作处理,生成 SlotTable 所需要的组信息以及用于重组时调用的 LambdaSlotTable 会在应用运行后创建Composable 监听使用到的 State 发生改变是由快照系统实现的重组发生时会从 SlotTable中取出旧数据对比是否发生改变,以跳过不必的重组。原创 2023-11-16 16:30:59 · 726 阅读 · 0 评论 -
深入浅出 JetPack Compose UI 自动更新原理
可以看到,Compose 内部做了非常多有趣的优化,我不认为只使用 Compose 去编写 UI 能够发掘出这些东西。Compose 的编译器插件会对我们写的 Composable 函数作处理,生成 SlotTable 所需要的组信息以及用于重组时调用的 LambdaSlotTable 会在应用运行后创建Composable 监听使用到的 State 发生改变是由快照系统实现的重组发生时会从 SlotTable中取出旧数据对比是否发生改变,以跳过不必的重组。原创 2023-11-07 15:30:08 · 569 阅读 · 0 评论 -
从0开始搭建一个APP:compose搬砖的一天
OK,先水到这,主要是阐述了一些第一次开发可能遇到的简单问题,也没有啥知识点,水一下,也挺好。再提一嘴,compose和Kotlin的学习是差不多的,要把格局打开,就是想象力得打开,打开了就会发现,很多东西,他其实已经存在了。原创 2023-11-02 14:32:21 · 365 阅读 · 0 评论 -
Jetpack Compose | State状态管理及界面刷新
remember 在重组后保持状态,但不会在配置更改后保持状态;如果想在配置更改后保持状态,可以使用 rememberSaveable 代替;rememberSaveable 会自动保存可保存在 Bundle 中的任何值;如果不支持Bundle存储,可以将对象声明为 @Parcelize 可序列化,如果不能序列化,还可以将其传入自定义 Saver 对象。//1、使用@Parcelize注解//记得引入 apply plugin: 'kotlin-parcelize'插件@Parcelize。原创 2023-10-30 16:09:16 · 695 阅读 · 0 评论 -
Android Jetpack Compose之UI的重组和自动刷新
本节介绍了Compose的智能重组和刷新,以及重组过程中可能会掉入的“坑”,这些坑我们需要去属性它,因为Compose框架要求Composable作为一个无副作用的纯函数运行,我们只要在开发的过程中遵循这一原则,那么重组中的“坑”就不会再是坑,而是我们提高程序执行性能的有效方法。为了帮助大家更好的熟知Jetpack Compose 这一套体系的知识点,这里记录比较全比较细致的《Jetpack 入门到精通》(内含Compose)学习笔记!!!原创 2023-09-22 15:44:16 · 542 阅读 · 0 评论 -
继续深挖,Jetpack Compose的State快照系统
Snapshot state(快照状态)是指可以被记录并观察其变化的隔离状态。当我们调用像mutableStateOf、mutableStateListOf、mutableStateMapOf、derivedStateOf、produceState、collectAsState等函数时,我们所得到的状态就是快照状态。所有这些函数都返回某种类型的状态,开发人员经常称其为快照状态。原创 2023-08-26 21:21:00 · 354 阅读 · 0 评论 -
Jetpack Compose是如何决定哪块代码进行重组的?
……原创 2023-08-14 16:39:32 · 250 阅读 · 0 评论 -
Compose:从重组谈谈页面性能优化思路,狠狠优化一笔
随着越来越多的人使用Compose开发项目的组件或者页面,关于使用Compose构建的组件卡顿的反馈也愈发增多,特别是LazyColumn这些重组频率较高的组件,因此很多人质疑Compose的性能过差,这真的是Compose的性能问题吗。当然Compose在当前的版本下依然存在许多优化空间,但是实际上我们的日常项目中并不会真的逼近Compose的理论性能上限,而是没有处理好一些状态的读取,导致了重组次数过多,在用户眼里那就是卡顿了,本文将为你提供一些优化思路,降低Compose页面的卡顿。State。原创 2023-08-05 21:08:55 · 1029 阅读 · 0 评论 -
现代化 Android 开发:Jetpack Compose 最佳实践
Compose 业务上能做的优化大体上就是这些了。总之我们就是我们要保持组件的颗粒度尽可能的小,容易变动的要独立出来,非常稳定的也要独立出来,尽量使用 Immutable 的数据结构。如此之后, Compose 的流畅度还是非常不错的。如果还觉得卡,那多半是因为你使用的是 Debug 包,Compose 会在 Debug 包加很多调试信息,会很影响其流畅度的。切换到 Release 包,可能丝滑感就出来了。为了帮助大家更好的熟知Jetpack Compose 这一套体系的知识点,原创 2023-07-17 14:16:52 · 1438 阅读 · 2 评论 -
细数那些Compose新手容易犯的错误
笔者作为一个日常Jetpack Compose开发者,对Compose的理解也在逐渐加深中,最近回顾当初学习和实践的过程中,犯了不少错误和踩了很多坑,本篇文章作为小总结分享给大家,同时文章会持续更新,也欢迎评论区或者私信给笔者投稿,谈谈你使用Compose过程中踩过的那些坑。原创 2023-07-08 20:51:17 · 554 阅读 · 0 评论 -
聊聊Compose跨平台与KMM
有许多开发者可能还没有了解过Compose Multiplatform和KMM,那么本次分享将通过以下几点来介绍Compose Multiplatform 与KMM,让我们一起体验Kotlin跨平台的魅力。这里需要先说明的是,本次分享我们只会从使用的角度去分享,作为一次跨平台技术的普及,不会涉及跨平台的底层原理,比如为什么可以跨平台这些深奥的道理。为什么不讲这些呢?原因很复杂,简单的说就是我不会。原创 2023-07-06 21:30:35 · 1240 阅读 · 0 评论 -
Jetpack Compose 不止是一个UI框架~
Jetpack Compose是用于构建原生Android UI的现代工具包。Jetpack Compose使用更少的代码,强大的工具和直观的Kotlin API,简化并加速了Android上的UI开发。这是Android Developers 官网对它的描述。本文不是教你Jetpack Compose 的一些基本使用方法,而是为啥我们需要Jetpack Compose 的一些简洁,让我们对Jetpack Compose 有更深层次的了解。原创 2023-05-05 15:59:39 · 1363 阅读 · 0 评论 -
Jetpack Compose之线性布局和帧布局
Compose 中的线性布局对应的是Android传统视图中的LinearLayout,不一样的地方是,Compose根据Orientation的不同又将布局分为Column和Row, Column对应传统视图LinearLayout中orientation = “vertical”的情况,Row对应传统视图LinearLayout中orientation = “horizontal”的情况.由于两者内部元素在父容器中的布局和对其方式不同,分成两个组件有助于提供类型安全的Modifier修饰符。原创 2023-04-25 13:46:32 · 645 阅读 · 0 评论