写点什么

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:333411
用户头像

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

关注

评论

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

服务发现:ZooKeeper vs etcd vs Consul

Tux Hu

Docker 容器 微服务 etcd Consul

一篇文章搞定Java处理Excel的各种疑难杂症

知春秋

Java Excel POI

经历过疫情,你懂得了什么

Winann

疫情 个人成长 生活 成长

为什么软件开发很难外包

刘华Kenneth

外包 DevOps 风险 背锅

程序员的晚餐 | 5 月 15 日 如果不写代码了,那就开个饺子店

清远

美食

游戏发行中学到的重要经验(严肃长文)

谢锐 | Frozen

独立开发者 游戏开发 游戏出海 移动互联网

高仿瑞幸小程序 09 云数据库初体验

曾伟@喵先森

小程序 微信小程序 大前端 移动

谈谈双亲委派模型的第四次破坏-模块化

寻筝

Java JVM

Java实现Base64

Java

决战下半场:小程序技术助力金融APP重回C位

FinClip

小程序 数字化转型 app重构

看完这篇HTTP,跟面试官扯皮就没问题了

苹果看辽宁体育

https okhttp

找一个更好的理由

史方远

职场 成长 工作

初次见面

KAMI

如何在 Mac 上优雅的截图和录屏

Winann

macos 效率 效率工具 Mac

阿里巴巴泰山版《Java 开发者手册》,也是一份防坑指南

古时的风筝

Java规范 Java开发手册

回“疫”录(17):返宁的前一天

小天同学

疫情 回忆录 现实纪录 纪实

记一次MHA切换故障踩的坑

一个有志气的DB

MySQL 高可用 复制 主从同步 故障分析

JVM源码分析之Object.wait/notify实现

猿灯塔

JVM

数列找规律的问题

oldj

数学

“四个维度” 讲明白什么是微服务!

攀岩飞鱼

微服务 单体系统 架构设计 团队组织 康威定律

Azure App 部署Django 和 PostgrSQL

yann [扬] :曹同学

Python azure

战略懒惰有多可怕

Neco.W

创业 重新理解创业 初创公司

浅析 - CocoaLumberjack 3.6 之 DatabaseLogger

Edmond

ios sqlite log4j CocoaLumberjack DDLog

Web3极客日报#140

谢锐 | Frozen

区块链 独立开发者 技术社区 Rebase Web3 Daily

谈谈控制感(4):损失的后果很严重

史方远

职场 心理 成长

零基础如何学架构

兆熊

架构

游戏夜读 | Scikit-learn的2018自述

game1night

Leetcode 556. Next Greater Element III

隔壁小王

算法

网站系统架构演进

Janenesome

读书笔记 程序员 架构 系统设计

elasticsearch源码解析(一)——restapi

罗琦

elasticsearch 源码分析 RESTful

奔腾吧,“后浪”李子柒!

无量靠谱

网红

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