写点什么

Android Jetpack 带来 WorkManager、Navigation 等特性

  • 2018-05-30
  • 本文字数:1156 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Android Jetpack 为 Android 应用程序带来了新的组件、工具和架构指南。新组件包括 WorkManager、Navigation、Paging、Slices 和 Android KTX。

Android Jetpack 组件将现有的支持库和架构组件汇集在一起​​,并将它们分为四类:

Android Jetpack 的组件作为“非捆绑”库提供,不属于底层 Android 平台的一部分。这意味着开发人员可以自由使用每个组件。此外,非捆绑的 Android Jetpack 库已全部移到新的 androidx.* 命名空间中(本文进行了详细描述)。

此外,应用程序可以在各种版本的Android 平台上运行,因为Android Jetpack 组件功能独立于底层Android 版本,从而提供向后兼容性。

WorkManager 是一个新的库,它为基于约束的后台作业提供解决方案,可用以替代作业或 SyncAdapter 之类的东西。WorkManager 提供了简洁的现代 API,旨在简化异步任务的指定,不管是在有 Google Play 服务还是没有 Google Play 服务的设备上均可运行。

Navigation 简化了导航的实现,旨在让单 Activity 应用成为首选的架构。通过内置的 fragment 支持,可充分利用架构组件(如 Lifecycle 和 ViewModel)的所有优势,而 Navigation 会为开发者处理 FragmentTransactions 的复杂性。开发者可以使用 Android Studio 3.2 提供的导航编辑器直观地查看和管理导航属性。

通过 Paging 1.0.0 可以很容易地在 RecyclerView 中以快速且无限滚动的方式加载和呈现大型数据集。它可以从本地存储、网络加载分页数据,并可以自定义如何加载内容。它可以与 Room、LiveData 和 RxJava 一起使用。

Slices 是一种 UI 模板,可以从 Google Search 和其他位置(如 Google Assistant)显示来自应用程序的交互式动态内容。

Android KTX 是一套 Kotlin 扩展,它为 Kotlin 优化了 Jetpack 和 Android 平台 API。Android KTX 旨在使 Kotlin 的开发更加简洁、舒适和顺畅。它可以将 Kotlin 代码:

复制代码
view.viewTreeObserver.addOnPreDrawListener(
object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
viewTreeObserver.removeOnPreDrawListener(this)
actionToBeTriggered()
return true
}
});

转换成更简洁的 Kotlin 代码,如下所示:

复制代码
view.doOnPreDraw { actionToBeTriggered() }

你可以在 developer.android.com/jetpack 上查看如何开始使用 Android Jetpack。YouTube 上有一个 Android Jetpack 播放列表,可以在其中查找有关 Android Jetpack、组件、工具和最佳实践的信息。

Android Jetpack 入门指南将告诉你如何将 Android Jetpack 引入到现有项目或开始新项目。Android Studio 3.2 支持 Android Jetpack,你也可以为 Jetpack 提供反馈

查看英文原文 Android Jetpack Brings WorkManager, Navigation and More

2018-05-30 13:333442
用户头像

发布了 731 篇内容, 共 484.9 次阅读, 收获喜欢 2008 次。

关注

评论

发布
暂无评论
发现更多内容

Spring Cloud 微服务实践(7) - 日志

xiaoboey

kafka 微服务 Spring Cloud 日志 spring cloud stream

国庆期间,我造了台计算机

yes

计算机 底层

Java程序员月薪多少K才能在北上广买得起房?

Java架构之路

Java 程序员 编程语言

技术实操丨SoundNet迁移学习之由声音分类到语音情感识别

华为云开发者联盟

AI 数据 语音识别

开源=免费?

Learun

31道Java核心面试题,一次性打包送给你

小Q

Java 学习 程序员 架构 面试

MySQL-技术专题-问题分析

码界西柚

SpringBoot-技术专题-启动原理

码界西柚

架构师训练营第四周作业

郎哲158

互联网应用系统技术方案主要解决什么问题?

博古通今小虾米

lldb常用命令与调试技巧

iOSer

ios lldb常用命令 lldb调试技巧

2020年秋招阿里136道Java高级岗面试题(含答案及复习资源)

Java架构之路

Java 程序员 面试 算法 编程语言

区块链教育 丨 首批区块链专业新生正式入学

CECBC

区块链技术 区块链教育

PyFlink + 区块链?揭秘行业领头企业 BTC.com 如何实现实时计算

Apache Flink

flink

Python时间序列分析简介(2)

计算机与AI

Python 时间序列

Nacos-技术专题-配置中心实现

码界西柚

从构建小系统到架构分布式大系统,Spring Boot2的精髓全在这里了

Java架构之路

Java 程序员 面试 Spring Boot 编程语言

开源数据库这么香,为什么我们还要下功夫自研?

华为云开发者联盟

数据库 开源 数据

字节跳动 Flink 单点恢复功能实践

Apache Flink

flink

Web前后端:如何分离,如何解耦?

华为云开发者联盟

大前端 后端 开发

来不及解释了,快上车!力软快速开发平台,助力企业搭乘万物互联的顺风车

Learun

区块链是一个不知道要解决什么问题的解决方案吗?

CECBC

比特币 区块链 银行

MySQL-技术专题-查询速度性能

码界西柚

深入分析CRM系统对现代企业的作用

Learun

spring-boot-route(十)多数据源切换

Java旅途

Java Spring Boot

EffectiveJava读书笔记-01-对象创建与销毁

wander

读书笔记 编程开发

程序员去外包真的不可取吗?

Java架构师迁哥

架构师训练营第四章 系统架构总结

郎哲158

建筑行业区块链应用场景是怎样的

CECBC

区块链 行业资讯

架构师训练营1期第三周作业

木头发芽

光大银行刘淼:基于华为云GaussDB(DWS) 数据仓库创新实践

华为云开发者联盟

数据仓库 数据 huawei

Android Jetpack带来WorkManager、Navigation等特性_移动_Diogo Carleto_InfoQ精选文章