Jetpack
文章平均质量分 87
Jetpack
哆啦A梦z
Android开发工程师
展开
-
Kotlin 之 协程(四)协程并发
认识channelchannel是一个并发安全的队列,可以连接协程,实现不同协程的通信。Library中定义了几种类型的Channel。 它们在内部能够存储多种元素,只是在send调用是否能够挂起方面有所不一样。 对于全部通道类型,receive调用的行为方式相同:若是通道不为空,则接收元素,不然将挂起。Unlimited channel无限制通道(Unlimited channel)是最接近队列的模拟:生产者能够将元素发送到此通道,而且它将无限增加。 send方法将永远不会被挂起。 若是没有更多原创 2022-02-07 17:50:48 · 2674 阅读 · 0 评论 -
Kotlin 之 协程(三)Flow异步流
flow介绍挂起函数可以异步返回单个值,那如何异步多次返回多个值呢?使用flow,flow的特点:flow{…}块中的代码可以挂起使用flow,suspend修饰符可以省略流使用emit函数发射值流使用collect的函数收集值flow类似冷流,flow中代码直到流被收集(调用collect)的时候才运行,类似lazy,什么时候用,什么时候执行。流的连续性:流收集都是按顺序收集的flowOn可更改流发射的上下文,即可以指定在主线程或子线程中执行 //使用flow,suspend修原创 2022-02-04 00:40:01 · 2856 阅读 · 0 评论 -
Kotlin 之 协程(二)启动取消协程
协程的构建器launch和async构建器都用来启动新协程launch,返回一个job并且不附带任何结果值async,返回一个Deferred,Deferred也是一个job,可以使用.await()在一个延期的值上得到它的最终结果 //等待一个作业:join与await private fun runBlocking1(){ //runBlocking可以把主线程变成一个协程 //job1和job2是runBlocking的子协程 //原创 2022-01-18 20:25:16 · 2191 阅读 · 0 评论 -
Jetpack 之 WorkManager
WorkManager 引入 官方库dependencies { def work_version = "2.7.1" // (Java only) implementation "androidx.work:work-runtime:$work_version" // Kotlin + coroutines implementation "androidx.work:work-runtime-ktx:$work_version" // optiona原创 2022-01-08 19:03:26 · 1209 阅读 · 0 评论 -
Jetpack 之 ViewModel和LiveData
ViewModel引入见 Lifecycle官方库LiveData引入见 Lifecycle官方库Kotlin 扩展模块支持使用多个 AndroidX 依赖项。这些模块的名称后附加了后缀“-ktx”。例如:implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"会变为implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_原创 2022-01-08 18:30:00 · 1361 阅读 · 0 评论 -
Jetpack 之 Lifecycle
Lifecycle简介Lifecycle是一个生命周期感知组件,一般用来响应Activity、Fragment等组件的生命周期变化,并将变化通知到已注册的观察者。有助于更好地组织代码,让代码逻辑符合生命周期规范,减少内存泄漏,增强稳定性。可以和Lifecycle一起工作的类我们称之为有生命周期意识的控件。我们建议那些提供了需要和Android生命周期打交道的类的库最好提供有生命周期意识的控件,这样它们的用户就能轻松的集成这些类,而不是在客户端手动管理生命周期。LiveData 就是一个有生命周期意原创 2022-01-08 17:12:30 · 1181 阅读 · 0 评论 -
Retrofit+Jetpack(LiveData,Lifecycles,ViewModel,Room)+koin构建Android 官方的推荐架构指南MVVM架构
我们先参考一下官方的sunflower项目先来俩按钮:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"原创 2020-05-11 17:56:38 · 1118 阅读 · 3 评论 -
Android Jetpack(五) 界面
1、动画和过渡略2、表情符号 - 在旧版平台上启用最新的表情符号字体EmojiCompat 支持库旨在让 Android 设备及时兼容最新的表情符号。它可防止您的应用以 ☐ 的形式显示缺少的表情符号字符,该符号表示您的设备没有用于显示文字的相应字体。通过使用 EmojiCompat 支持库,您的应用用户无需等到 Android OS 更新即可获取最新的表情符号。表情符号兼容性示例应用 ...原创 2020-04-26 18:31:20 · 356 阅读 · 0 评论 -
Android Jetpack(四) 行为
1、CameraX - 轻松地向应用中添加相机功能CameraX 是一个 Jetpack 支持库,旨在帮助您简化相机应用的开发工作。它提供一致且易于使用的 API 界面,适用于大多数 Android 设备,并可向后兼容至 Android 5.0(API 级别 21)。CameraX Extensions 是可选插件,通过该插件,您可以在支持的设备上向自己的应用中添加人像、HDR、夜间模式和美...原创 2020-04-26 17:58:42 · 857 阅读 · 0 评论 -
Android Jetpack(三) 架构
1、数据绑定 - 以声明方式将可观察数据绑定到界面元素数据绑定库是一种支持库,借助该库,您可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源。一般调用 findViewById() 来查找 TextView 并将其绑定到 viewModel 变量的 userName 属性:findViewById<TextView>(R.id.sample_text).a...原创 2020-04-26 14:52:14 · 592 阅读 · 0 评论 -
Android Jetpack(一) 介绍
Jetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。Jetpack 包含与平台 API 解除捆绑的 androidx.* 软件包库。这意味着,它可以提供向后兼容性,且比 Android 平台的更新频率更高,以此确保您始终可以获取最新且最好的 Jetpack 组件版本。加...原创 2020-04-24 10:32:41 · 352 阅读 · 0 评论 -
Android Jetpack(二) 基础
基础组件可提供横向功能,例如向后兼容性、测试和 Kotlin 语言支持。1、Android KTX - 编写更简洁、惯用的 Kotlin 代码KTX 拥有的一些 扩展程序列表dependencies {//androidx.activityimplementation "androidx.activity:activity-ktx:1.1.0"//androidx.benchmar...原创 2020-04-24 16:21:44 · 4739 阅读 · 0 评论