不知不觉,2020 年也已到了接近尾声了,今年虽然困难重重,但是 Android 社区的更新热情却并未消减 ,Google I/O 大会取消的同时,官方也为我们提供了一系列优质的节目: Now In Android 、Kotlin Vocabulary、11 Weeks of Android。本篇文章就带大家看一看今年以来 Android 相关最新的动态,尝鲜我们今后可以使用的功能。
Android 11
Android 11 于今年 9 月 9 日发行正式发布,随之而来的是一系列全新的功能和特性,苹果看了直呼眼馋:
Android 11 后,带有相关快捷方式的通知可以从聊天的通知栏中直接启动气泡。
Android 11 可以为新的设备传感器提供了 TYPE_HINGE_ANGLE
和 SensorEvent
来监视屏幕角度的变化,帮助我们做适配工作。
开发者也可以使用 Jetpack 的 Window Manager,调用 DeviceStage.getPosture()
获取当前设备的折叠状态,详情请看 Building apps for foldables。
API 更新
Android 11 也带来了它的小老弟 Android SDK Version 30,也更新了Google Play 目标 API 要求。
从今年 8 月开始,Google Play 将只接受 Android 10(API 29)版本以上的应用,从 2020 年 11 月开始,所有应用必须针对 Android 10 进行应用更新。
API 级别要求 | 开始日期 |
---|---|
Android 8.0(API 级别 26) | 2018 年 8 月 1 日:新应用必须符合2018 年 11 月 1 日:应用更新必须符合 |
Android 9(API 级别 28) | 2019 年 8 月 1 日:新应用必须符合2019 年 11 月 1 日:应用更新必须符合 |
Android 10(API 级别 29)* | 2020 年 8 月 3 日:新应用必须符合2020 年 11 月 2 日:应用更新必须符合 |
如果你的应用还没有升级到 Android 10,现在是时候阅读 Android 10 迁移指南,确保应用可以正常更新了。
Android Studio 4.0
今年,Google 也在 Android Studio 上投入了很大精力,先后发布了两款 Android Studio 4.0 稳定版本: 4.1 和 4.2 。
4.0 版本包含了很多我们期待已久的功能,如下:
Android Jetpack
在国内,Android Jetpack 的发展趋势也已经势如破竹了,对于开发者而言,这是好消息也是坏消息,因为有了更好用的工具和开发库后,我们也已经学不动了,但相比逐步深入学习,了解他们各自的作用显然更重要。
Android Jetpack 的今年的更新主要包括:
- Jetpack Compose ,8 月低发布了 Compose 首个 Jetpack Compose alpha 版本,目标就是对 Android UI 的构建方式进行彻底改革,Android 开发者也会引来全新的面貌。作为用于构建用户界面的 Kotlin 首次声明式 api,Jetpack Compose 更是朝着现代应用开发迈出的令人振奋的一步。要了解有关 Jetpack Compose 的更多内容,可以访问 入门指南。需要注意的是,尽管 Jetpack Compose 在飞速发展中,但依然不稳定,当前状态也还不足以投入生产环境。
- ConstraintLayout 2.0.0 正式发布,并且 10 月份也发布了最新的 ConstraintLayout 2.0.2 版本。
- WorkManager 2.4.0 开始支持 RxJava3 以及许多其他特性。
- Navigation 2.3,增加了新的功能模块和测试组件。
Kotlin
Kotlin 及其生态在 2020 年也发生了翻天覆地的变化。今年,Kotlin 也迎来了最新里程碑式的版本 kotlin1.4,此版本包括许多新特性:
-
1
2
3
4
5
6
7fun reformat(
str: String,
uppercaseFirstLetter: Boolean = true,
wordSeparator: Character = ' ', // 尾部逗号
) {
// ...
} Kotlin interfaces SAM (Single Abstract Method)
1
2
3
4
5
6
7
8
9fun interface IntPredicate {
fun accept(i: Int): Boolean
}
val isEven = IntPredicate { it % 2 == 0 }
fun main() {
println("Is 7 even? - ${isEven.accept(7)}")
}
提到 Kotlin Multiplatform,官方也专门在 Kotlin Multiplatform Mobile 上做了很大的改动,提供了 Android 和 iOS 的 Kotlin Multiplatform,点击查看 Kotlin Multiplatform 文档,样例,以及其它特性,学习如何使用 kotlin 构建 Android、iOS 应用。
Ktor,Jetbrains 使用 Kotlin 构建异步客户端 / 服务器应用程序的框架,ktor 最新文档和示例 也在今年发布,这也将大大简化我们编写 Ktor 应用程序的方式。
关注公众号「Meandni」,及时阅读最新前沿技术动态,不至于落后时代。