Hello 各位同学好呀,我是 wanbo,今天我们继续更新 Now in Android 第十三期的内容。
Now in Android 是由 Chet Haase 在 Medium 上发布的一系列关于 Android 相关技术的文章,创办这个系列的目的是为了,帮助广大开发者可以更好的掌握 Android 的最新技术动态,最近 Android Team 重新设计了新系列的 **Now in Android 。**全新的 Now in Android 目前将会整合所有 Android 开发者需要掌握和学习的最新内容,以视频和文章的形式为大家统一介绍,并在文章中会附上相应技术的官方链接地址,帮助大家了解详细内容。
我也会结合自己的理解,在本公众号【Android|Kotlin】中为大家同步更新 Now in Android 的最新内容,同时这也是目前 Now in Android 这个系列的最新一期,终于赶上官方的进度了,感兴趣的同学记得关注订阅呀。
截止到我写文章的时候,Android 11 已经发布第二个开发者预览版了,所以这里我会为大家合并整理两个版本的更新内容。
如果你想尝鲜 Android 11 的话,这里有两种方式可以马上体验到 Android 11.
需要注意的是,Android 11 目前才到开发者预览版,所以有很多未知的 bug,主力机谨慎升级。
Android 11 镜像下载地址:
https://developer.android.com/preview/download
作为开发者,每一次的 Android 大版本发布其实我们只需要关注两点就可以:变更和新特性。变更指的是:某些功能及 API 相较之前发生了变化。新特性指的是:在新版中新加入的功能及 API。
变更会影响到我们 App 中现有的功能在 Android 11 系统是否能正常工作,相比新特性我们更需要重点关注变更这个点。而新特性则标志着 Android 11 带给我们可能的新的需求场景,所以变更的内容是需要我们必须掌握的,而新特性可以先了解为主,当有实际需求出现的时候,再去细化研究也不迟。
由于篇幅的问题,这里为大家简单介绍几个新变化:
关于更多 Android 11 开发者预览版 1 和 2 的详细内容,可以查看以下来自谷歌开发者的两片文章:
更上一层楼: Android 11 首个开发者预览版到来
Android 11 开发者预览版 2 现已发布
优先查看 Android 11 中的变更文档,这包括行为变更和隐私权变更,同时还需要了解哪些变更是自动生效,哪些是被动生效的。自动生效是指当你的 App 即使没有修改 targetSdkVersion 和 compileSdkVersion 适配 Android 11,它也会在 Android 11 的设备上自动处理为变更后的逻辑。被动生效是指只有你将 targetSdkVersion 和 compileSdkVersion 修改为 Android 11 之后,这些变更才会生效。
行为变更文档地址:
https://developer.android.com/preview/behavior-changes-all
隐私权变更文档地址:
https://developer.android.com/preview/privacy
你需要确保你的 App 与 Android 11 兼容,即在没有修改 targetSdkVersion 和 compileSdkVersion 的情况下,在 Android 11 的设备上确保用户可以正常使用 App 中的任何功能。因为上一点说了有些内容是自动生效的,所以这一步是你最先要处理的东西。
修改 targetSdkVersion 和 compileSdkVersion 到 Android 11 的对应版本,完成被动生效的适配内容。
查看 Androd 11 中的新特性,为之后的新需求做到心里有数。
新特性文档地址:
https://developer.android.com/preview/features
查看 Android 11 的版本说明,这其中会为开发者提供现有 Android 11 存在的已知 bug 方便我们遇到问题时更好的排查。
上图是有关 Android 11 的发布时间线,其实不只是 Android 11,每一年的 Android 都是按照这个时间线发布的。
最后在科普一下,AOSP 上的 Android 代码才真正称的上是【原生 Android】,而 Pixel 上运行的 Android 系统和我们常用的 miui、flyme 一样都属于手机厂商二次开发的闭源系统。
Android Studio 3.6 正式版已经发布了,想必你也已经早早用上了。需要注意的是,Android Studio 4.0 进入了 beta 测试阶段,之前 alpha 存在的 Jetpack Compose 已经被移除了,如果想体验 Jetpack Compose 的同学,需要下载最新的 4.1 版本。
位置隐私可以说是 Android 众多隐私权限中最重要的了,Android 团队希望 App 对位置的使用,对用户而言是公开、透明、可控的。所以这次全新上线了,有关如何在后台正确的使用位置的指南,并在指南中提供了最佳实践方案。
文档地址:
https://developer.android.com/training/location/background
上一期 Now in Android:12 你知道 Emoji 是怎么来的吗?中为大家简单介绍了一下 Dynamic Feature Module,其中还提到了新的 Navigation 支持自动下载和安装 Dynamic Feature Module,这期 Now in Android 中提到了一个新的问题
Dynamic Feature Module 的测试是非常麻烦的,需要通过 Play Store 才能完成测试。
所以这里为大家提供了新的本地 Dynamic Feature Module 测试指南,不过需要 Play Core 1.6.5 以上版本才支持本地测试。
老实说这个功能和我们其实关系不大,就算有在 Play Store 上架的 App ,但是支持 Dynamic Feature Module 的应该也没有几个吧?有的话欢迎评论区告诉我。
文档地址:
https://developer.android.com/guide/app-bundle/test/testing-fakesplitinstallmanager
Android 中有设计好看的 App 很少,有设计好看而且交互也很好的那就更少了,当然这也与 Android 本身的机制有一些关系。但是在最近的几个版本中,无论是 Andorid API 还是 Android Studio 都在为能作出更好的动画和交互而作出努力。
Material Design 团队推出了一个 UI 过渡指南,同时其 Material Design Components library 中的控件在 1.2.0-alpha05 支持了一些常见的过渡效果。
如果你感兴趣,欢迎查看一下
https://material.io/design/motion/the-motion-system.html#shared-axis
在上期中为大家推荐了 Android Styling 系列中的一期文章:Theme vs Style,不知道你们有没有去看呢?在上期发布完成之后,我花一上午的时间把 Android Styling 这个系列的文章全部看了一遍,收获特别多,让我重新对 Theme 和 Style 有了全新的认知。
其中有介绍 Theme 和 Style 的应用场景、Android 系统中内置的公共样式属性、如何使用 Theme 轻松的完成品牌升级等等,内容特别棒!
说到这,问你们一个小问题,用来自检一下你对 Android 中样式相关的内容是否系统性的了解过。
你知道 ?android:attr/XXX 和 ?attr/XXX 区别在哪里吗?
如果你不知道,欢迎去阅读 Android Styling 这一系列的文章,帮你全部了解 Android 中样式相关的知识。
https://medium.com/@crafty
之前的文章中介绍了 Android Studio 3.6 中新增加的 View binding,用来替代繁琐的 findViewById(),今天这里再分享一个来自 Sean McQuillan 的文章,在这篇文章中为大家介绍了 View binding 内部是如何实现的。
https://medium.com/androiddevelopers/use-view-binding-to-replace-findviewbyid-c83942471fc
分享一篇 Isai Damier 的文章,展示了加密技术和生物识别技术如何协同工作来保护数据,尤其是政府、金融、医疗保健和企业应用。
https://medium.com/androiddevelopers/using-biometricprompt-with-cryptoobject-how-and-why-aace500ccdb7
根据上面的文章,Isai Damier 还创建了 GitHub 仓库,用于向大家介绍如何使用 AndroidX biometric library 将加密技术和生物识别技术集成到项目中。
https://github.com/android/security-samples/tree/biometriclogin/BiometricLoginKotlin
第一个视频来自 Nick Butcher 分享的有关在 Android 中使用 Vector Assets 的种种好处,例如如何使用 Vector Assets 来提供清晰的、可调整大小的和可动画化的图像。
https://www.youtube.com/watch?v=fgbl34me3kk&feature=emb_logo
Florina Muntenescu 为大家介绍了如何使用 Kotlin 中的 Sealed Classes 来替代枚举,并展示了 Sealed Classes 区别去枚举的强大指出。
https://www.youtube.com/watch?v=OyIRuxjBORY&feature=emb_logo
最后是一些有关 AndroidX 的更新:Fragment 发布 1.2.2 版本,Media2 发布 1.0.3 版本、Room 发布 2.2.4 版本、Transition 发布 1.3.1 版本,看了更新日志,基本都是关于 bug 修复的。
完整更新日志在这里:
https://developer.android.com/jetpack/androidx/versions/stable-channel#february_5_2020
至此,就是全新的 Now in Android : 13 的内容,这一期为大家介绍了 Android 11 以及为如何适配 Android 11 提供了一些我个人的建议、分享了全新的后台位置指南和本地测试 Dynamic Feature Module 的指南,介绍了 Material Design Components 有关 UI 过渡效果的支持以及非常有用的几篇文章和视频供大家学习。
本公众号也会开启 Now in Android 的新系列更新,关注公众号【Android |Kotlin】,在首页点击 新鲜事儿 → Now in Android ,就可以看到这一系列文章的全部内容。
感谢你的阅读。