排序
ViewModel实例什么时候被回收
一、ViewModel存在的意义? ViewModel做为JetPack中重要的组件,翻译成中文就是“视图模型”,根据分离关注点原则,ViewModel的出现,主要是为了分担Activity中的职责,专门用于存放和...
Android JetPack Compose之主题的理解与使用
概述 根据百度百科知识,主题可以被定义为:文艺作品中所表现的中心思想。我们的APP就是一个作品,所以它的主题也代表了这个APP想要表达的思想,就比如看到京东APP的红色,我们就能明确的知道这...
通勤两万公里,聊聊我在华米的这一年~
前言 去年的今天,我正式入职了华米。现在想想,在华米的这一年经历了迷茫,也获得了成长。 迷茫 老读者朋友们都知道,在入职华米之前我在LB担任研发副经理算得上是半个管理职位,入职华米之后...
Android-Jetpack>> LiveData粘性数据
溯源 ViewModel 将数据保留在内存中,这意味着开销要低于从磁盘或网络检索数据。ViewModel 与一个 Activity(或其他某个生命周期所有者)相关联,在配置更改期间保留在内存中,系统会自动将 Vie...
JetpackCompose的第一次项目实践 | 经验分享
前言 Jetpack Compose想必各位安卓开发者已经不太陌生了,因为最近JetBrains-Compose for iOS开始Alpha**,对使用Compose进行跨平台的渴望又进了一步。 事实上之前我也接触过Compose,做过点小...
又想做屏保了,这次用Compose做个蜂窝墙
距离上次做飘动的小球的屏保已经过去了一个多月,发现那些小球看多了也腻,然而想再做个屏保么也没啥思路,但是前阵子在陪娃看了个新出的动画片,叫啥量子战队的,里面主角总部的墙引起了我的注...
基于 Compose Runtime 做 PPT UI 库?
本文主要内容来自 Using Compose Runtime to create a client library - Fatih Giriş,由 FunnySaltyFish 整理并翻译(看在我纯手打的份上,不妨给个赞吧)。如果英语听力和阅读能力尚可的朋友...
使用 Compose 绘制渐变贝塞尔曲线趋势图
要么说 Compose 优雅呢,假如你想画个东西,用安卓 View 的话你要继承 View 并且实现其中的 onDraw 方法,然后才能拿到 Canvas 开始绘制,但 Compose 你只需要这样: Canvas(modifier = Modifie...
推荐几个开源项目,也许对你有所帮助
公众号:字节数组 希望对你有所帮助 ??? 闲着无事,来写篇文章,推荐几个我正在密集更新的个人开源项目,再附带几篇相关联的介绍文章,也许对你有所帮助 ??? 一、Matisse Matisse 是一个用 Jetp...
Compose 的 Navigation 很难用?我给你封装一个超好用的!
Navigation 组件支持 Jetpack Compose 应用。我们可以在利用 Navigation 组件的基础架构和功能,在可组合项之间导航。然而,在项目中使用之后,我发现这个组件真的不好用: 耦合:导航需要持有N...
谷歌的bug:当 CompileSdk 33 遇上Kotlin
最近项目里compose 要升级到1.3, 要求compile sdk 也要到33版本,大家都知道 一般情况下,我们修改compilesdk 都不会有什么问题,最多就是一些api的适配,编译不过啥的, 但是不会引发线上故障...
Jetpack Compose(第五趴)——Jetpack Compose主题设置(下)
咱们书接上文, 四、处理颜色 在上一步骤中,我们了解了如何创建自己的主题,以为您的应用设置颜色、字体样式和形状。所有Material组件开箱即可使用这些自定义功能。例如,FloatingActionButton...
我用Compose写了一个开源项目~
前言 在我的新书《Android Jetpack开发:原理解析与应用实战》 项目实战中,我们实现了一个MVVM版本的出行防疫App。之前说过,会开发对应的Compose版本,如今,他来了~ 项目简介 如果你还...
从一个bug开始,理解Fragment和ViewPager2的状态恢复流程
在使用Fragment和ViewPager2时遇到了一个奇怪的bug,于是顺藤摸瓜学习了一下Fragment和View的状态保存恢复流程,解决方法在最后面,对源码解析不感兴趣的可以直接前往 首先看一下崩溃调用栈 jav...
Paging3系列–处理网络加载状态
前言 在现代移动应用中,大数据列表的展示是一种常见的需求。然而,处理大量数据的网络加载过程可能会带来一些挑战,比如长时间的等待、空数据或错误信息的展示。为了提供更好的用户体验,我们...
Jetpack Room系列文章:用最简单的方式掌握数据库操作的艺术
Jetpack Room是Android官方提供的一个持久化库,旨在简化Android应用程序中的数据库操作。它提供了一个抽象层,使开发人员能够以面向对象的方式处理数据库操作,而无需编写复杂的SQL查询语句。...
从 Component Tree 视角看 Dagger 到 Hilt 的演变
1. 从 Dagger 的本质说起 一言以蔽之, Dagger 的本质就是一棵 Component Tree (组件树)。 1.1 Component :依赖注入容器 component 是 Dagger 中的核心概念,我们通过 @Component 注解定义并生...
Android复杂UI的性能优化实践 – PTQBookPageView 性能优化记录
最近发现之前写的翻页器组件用起来似乎有些卡顿,就去想着做一下性能优化,这一篇博客就是PTQBookPageView从v1.0.1版本到v1.1.0版本优化的思考和分析,以及优化的过程记录。 组件相关链接: 组...
Jetpack Compose(第五趴)——Jetpack Compose主题设置(上)
一、简介 通过此篇博客,你将学习: Material Design入门指南以及如何针对您的应用对其进行自定义 Compose如何实现Material Design系统 如何在应用中定义和使用颜色、排版和形状 如何设置组件的...
Android Compose UI实战练手—-Google Bloom 主页实现(完结)
1.概述 主页的页面比前面的欢迎页和登录页面要复杂得多,假设使用传统的view,即使用xml布局的方式,我们可能需要书写很多的代码,但是使用Compose UI,这一切都会变得很简单,有了前面的页面开...