Jetpack compose
文章平均质量分 94
OpenHarmony_小贾
这个作者很懒,什么都没留下…
展开
-
Jetpack Compose | 可组合项生命周期及其常见处理Effect副作用API
内部会启动协程,所以适合当副作用中有耗时任务时的场景下;当需要在可组合项外启动协程时(如onClick中),可以使用rememberCoroutineScope适合有资源需要收尾的场景下,内部一定要重写onDispose(),用于释放资源、解注册等操作;对于包含长期操作的副作用很有效,尤其适合用在重启这些操作时代价高昂的场景中;SideEffect每次重组时都会执行内部的lambda,不过SideEffect 能确保可组合项成功重组之后才会执行内部的 Lambda。原创 2023-11-23 15:28:28 · 174 阅读 · 0 评论 -
jetpack compose中实现丝滑的轮播图效果
最近在翻Jetpack库,发现了DataStore,官方是这么说的:Jetpack DataStore 是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。DataStore 使用 Kotlin 协程和 Flow 以异步、一致的事务方式存储数据。如果您目前是使用存储数据的,请考虑迁移到 DataStore。显而易见,在需要存储较小或简单的数据集时,DataStore比起SP更加简单且安全性更高,所以学习使用DataStore是很有价值的。原创 2023-11-22 15:00:12 · 251 阅读 · 0 评论 -
安卓现代化开发系列——从生命周期到Lifecycle
我们从电脑系统的窗口去理解Activity启动一个程序的时候,程序就会在电脑桌面上创建一个窗口,创建的那一瞬间(通常会很快,可能不需要1秒)就相当于Activity的onCreate()。创建完成后,窗口就可以被用户所看见了,被用户看到的那一瞬间就相当于Activity的onStart()。通常来说,一个新启动的程序会自动获得焦点并可被用户交互,因此onStart()之后,窗口会被置顶到顶层,这一瞬间就相当于Activity的onResume()。原创 2023-11-01 15:17:40 · 325 阅读 · 1 评论 -
【Jetpack Compose】BOM是什么?
本篇旨在帮助小伙伴们了解和使用Compose中BOM相关的知识,在Compose的开发过程中更加便捷、统一的管理相关依赖信息。BOM在使用过程中还是比较容易上手的,也是极大程度上帮助开发者更轻松的管理Compose相关依赖信息,感兴趣的小伙伴们赶紧上手体验下吧~原创 2023-10-13 13:30:00 · 1068 阅读 · 0 评论 -
Android Jetpack Compose之确定重组范围并优化重组
Compose的重组是智能的,Composable函数在进行重组时会尽可能的跳过不必要的重组,只对需要变化的UI进行重组。那Compose是如何认定UI需要变化呢?或者换句话说Compose是如何确定重组的范围呢。如果重组随意的发生,那么对UI的性能会是一个很不稳定的状态,时而好,时而坏。而且如果编写的UI代码有问题,那么重组将会带来状态的混乱,导致UI显示出错。原创 2023-09-27 16:19:39 · 852 阅读 · 0 评论 -
Android架构灵魂组件Lifecycle的生命周期机制详解
在早期 Andorid 架构中,生命周期的事件监听和状态查询,我们需要自定义一套提供侦测功能的 Activity/Fragment 基类及回调接口,在 Activity/Fragment 的生命周期方法中实现依赖组件的操作,在外部进行事件监听和状态查询。这种模式会导致代码条理性很差而且会扩散错误。在 Lifecycle 引入后,可以避免在 Activity/Fragment 生命周期方法内写太多的业务逻辑处理代码,这样可以使我们的业务逻辑更加解耦。原创 2023-09-25 16:19:20 · 350 阅读 · 0 评论 -
Compose LazyColumn 对比 RecyclerView ,谁的性能更好?
LC 和 RV 各有长短,就看我们如何去选择了,用在什么场景了。该如何选择,相信大家看完也就知道了,复杂列表 (像电商首页那种) 是必须要选用RV 的,简单的列表可以选择LC,因为简单列表LC体验更好,更加丝滑,跟手性更好。当然LC 还在google的优化中 , 之后的LC肯定也会和他老大哥RV 一样,不管面对什么场景都会有着更加稳定的表现。原创 2023-09-23 17:57:50 · 352 阅读 · 0 评论 -
Android Jetpack解析之——LiveData
LiveData是一种可观察的数据存储器类。与常规的可观察类不同,LiveData具有生命周期感知能力,意指它遵循其他应用组件(如activity、fragment或service)的生命周期。这种感知能力可确保LiveData仅更新处于活跃生命周期状态的应用组件观察者。如果观察者(由Observer类表示)的生命周期处于STARTED或RESUMED状态,则LiveData会认为观察者处于活跃状态。LiveData只会将封信通知给活跃的观察者。原创 2023-09-15 15:31:52 · 466 阅读 · 0 评论 -
Android Jetpack 中Hilt的使用
Hilt 是 Android 的依赖项注入库,可减少在项目中执行手动依赖项注入的样板代码。执行 手动依赖项注入 要求您手动构造每个类及其依赖项,并借助容器重复使用和管理依赖项。Hilt 通过为项目中的每个 Android 类提供容器并自动管理其生命周期,提供了一种在应用中使用 DI(依赖项注入)的标准方法。Hilt 在热门 DI 库 Dagger 的基础上构建而成,因而能够受益于 Dagger 的编译时正确性、运行时性能、可伸缩性和 Android Studio 支持。原创 2023-09-06 14:25:24 · 447 阅读 · 0 评论 -
对于Android开发,Jetpack Compose真的要开始学起来了?
这篇文章主要讲了Compose是什么以及我们要开始学习它的必要性。最后为了帮助大家更好的熟知 Jetpack Compose 这一套体系的知识点,这里记录比较全比较细致的《Jetpack 入门到精通》(内含Compose)学习笔记!!!对Jetpose Compose这块感兴趣的小伙伴可以参考学习下……原创 2023-08-31 15:07:43 · 299 阅读 · 0 评论 -
如何通过Side Effects来使得你使用Compose变的得心应手?
……原创 2023-08-21 21:41:57 · 126 阅读 · 0 评论 -
Jetpack系列-ViewModel的使用及原理浅析
ViewModel在架构中用于承载业务逻辑和作为容器保存屏幕状态,它可以缓存界面的状态,并且能在配置变更后持久保留相应的界面状态。在jetpack套件中,ViewModel随lifecycle一起提供。ViewModel在架构中用于承载业务逻辑和作为容器保存屏幕状态,它可以缓存界面的状态,并且能在配置变更后持久保留相应的界面状态。在jetpack套件中,ViewModel随lifecycle一起提供。// 直接继承ViewModel。原创 2023-08-20 20:48:46 · 298 阅读 · 0 评论 -
Android JetPack Compose之主题的理解与使用
根据百度百科知识,主题可以被定义为:文艺作品中所表现的中心思想。我们的APP就是一个作品,所以它的主题也代表了这个APP想要表达的思想,就比如看到京东APP的红色,我们就能明确的知道这是京东系的购物APP,看到淘宝的橙色我们就可以想到是阿里系旗下的产品……,现在的Android手机还有深色主题和亮色主题。分别代表不同的场景。所以主题可以理解为app的整体对外的一个形象,不同风格的主题会展现给人不同的形象。包括颜色,字体,形状等,当然也包括其他类型的多媒体资源,例如文本,声音,和图像等。原创 2023-07-20 14:30:44 · 394 阅读 · 0 评论 -
弄清 Jetpack Compose 中的一些新概念
在学习compose 中,最好的资料是官方文档,但是在学习官方文档时,容易因为语言的差异性,导致概念容易出现混淆,所谓基础不牢,地动山摇。记录一篇博文,给自己和需要的朋友参考。compose 全称 Jetpack Compose 是被Google推荐用于构建原生 Android 界面的新工具包。它可简化并加快 Android 上的界面开发,使用更少的代码、强大的工具和直观的 Kotlin API,快速打造生动而精彩的应用。一句话,Android 推出新的原生声明式 UI 框架叫 compose。原创 2023-07-17 15:21:38 · 230 阅读 · 0 评论 -
Jetpack Compose之学习前的准备~
不少传统视图控件在Compose中没有对应的Composable实现,例如SurfaceView、WebView等。因此在Compose中可能会有使用传统View控件的需求。Compose提供了名为AndroidView的Composable组件,允许在Composable中插入任意基于继承自View的传统视图控件。) {可以看到Compose并没有完全撇弃View这一套,而是逐步在升级过渡,也让大家使用没有后顾之忧。为了帮助大家更好的熟知Jetpack Compose 这一套体系的知识点,原创 2023-07-15 21:58:50 · 657 阅读 · 0 评论 -
灵魂组件Lifecycle的生命周期机制详解
在早期 Andorid 架构中,生命周期的事件监听和状态查询,我们需要自定义一套提供侦测功能的 Activity/Fragment 基类及回调接口,在 Activity/Fragment 的生命周期方法中实现依赖组件的操作,在外部进行事件监听和状态查询。这种模式会导致代码条理性很差而且会扩散错误。在Lifecycle引入后,可以避免在 Activity/Fragment 生命周期方法内写太多的业务逻辑处理代码,这样可以使我们的业务逻辑更加解耦。有助于您编写出更有条理且往往更精简的代码,此类代码更易于维护。原创 2023-06-26 15:06:37 · 389 阅读 · 0 评论 -
Jetpack Compose 入门难点解疑
希望大家在入门Compose的过程中少走弯路,多理解不同api在合适的场景下的作用原创 2023-06-25 21:15:00 · 740 阅读 · 0 评论 -
如何合理使用 Jetpack 组件开发 Android 项目?
Jetpack 组件是成熟的解决方案,能够帮助 Android 开发人员更快、更高效地开发应用程序。因此,在使用 Jetpack 组件时,应尽量避免或减少自定义解决方案,以提高开发效率和代码质量。如果 Jetpack 组件无法满足需求,可以基于 Jetpack 组件二次开发。例如,LiveData 无法满足某些场景下实时流(stream)数据的需求,可以在 LiveData 的基础上进行二次开发来实现该功能。原创 2023-04-28 15:36:02 · 1556 阅读 · 0 评论 -
Android-MVVM-Databinding的原理、用法与封装
说起 DataBinding/ViewBinding 的历史,可谓是一波三折,甚至是比 Dagger/Hilt 还要传奇。说起依赖注入框架 Dagger2/Hilt ,也是比较传奇,刚出来的时候火的一塌糊涂,各种攻略教程,随后发现坑多难以使用,随之逐渐预冷,近几年在 Hilt 发布之后越发的火爆了。原创 2023-03-12 21:05:28 · 1056 阅读 · 0 评论 -
Android跨进程传输大图思考及实现
文件中的,我们看上面测试的两个例子,其中有一个传了。原创 2023-03-10 15:15:59 · 541 阅读 · 0 评论 -
Android Jetpack Compose使用及性能优化小结
无论是官网文档还是介绍Compose的优点时,都会说到Compose是声明式的。声明式编程(英语:Declarative programming)或译为声明式编程,是对与命令式编程不同的编程范型的一种合称。它们建造计算机程序的结构和元素,表达计算的逻辑而不用描述它的控制流程。指令式编程(英语:Imperative programming);是一种描述电脑所需作出的行为的编程范型。几乎所有电脑的硬件都是指令式工作;几乎所有电脑的硬件都是能执行机器语言,而机器代码是使用指令式的风格来写的。原创 2023-03-06 15:36:40 · 776 阅读 · 0 评论