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.

  1. 手持 Pixel 2、3、4 的用户可以在 Android 11 官方获取系统镜像,通过线刷的方式刷入 Android 11。
  2. 通过 Android Studio 下载最新的 Android 11 镜像,通过 AS 自带的模拟器尝鲜。

需要注意的是,Android 11 目前才到开发者预览版,所以有很多未知的 bug,主力机谨慎升级。

Android 11 镜像下载地址:

https://developer.android.com/preview/download

新变化

作为开发者,每一次的 Android 大版本发布其实我们只需要关注两点就可以:变更和新特性。变更指的是:某些功能及 API 相较之前发生了变化。新特性指的是:在新版中新加入的功能及 API。

变更会影响到我们 App 中现有的功能在 Android 11 系统是否能正常工作,相比新特性我们更需要重点关注变更这个点。而新特性则标志着 Android 11 带给我们可能的新的需求场景,所以变更的内容是需要我们必须掌握的,而新特性可以先了解为主,当有实际需求出现的时候,再去细化研究也不迟。

由于篇幅的问题,这里为大家简单介绍几个新变化:

  1. Support for 5G:增加动态计费状态 API 和带宽估测 API,可检查未计量状态和带宽功能
  2. Bubbles 聊天气泡:聊天对话支持以气泡的形式悬浮在系统桌面上,其实这个功能早在 Android 10 就存在了,只不过隐藏在开发者选项中,需要手动开启,现在 Android 11 中全面开发供开发者自由适配。
  3. 一次性权限:在 Android 10 中申请权限时有三种选项:始终允许、仅在使用此应用时允许、拒绝。而在 Android 11 中增加了一次性权限,即仅允许这一次行为使用此权限,更加安全的控制了风险。
  4. 存储机制:在 Android 10 中就已经存在的全新的存储机制,只是 Android 10 中为强制开启,允许开发者过渡到 Android 11 适配,如果你还了解新的存储机制,那么这里有篇文章推荐给你。
  5. 生物验证 API:在 Android 11 中提供三种不同级别的验证类型:BIOMETRIC_STRONG、BIOMETRIC_WEAK、DEVICE_CREDENTIAL,分别代表强、弱和设备凭据,以支持不同的场景。
  6. BlobStoreManager:用于在应用之间安全的共享大型二进制文件。

关于更多 Android 11 开发者预览版 1 和 2 的详细内容,可以查看以下来自谷歌开发者的两片文章:

更上一层楼: Android 11 首个开发者预览版到来
Android 11 开发者预览版 2 现已发布

如何适配


这里根据官网的内容,总结提供给你几点建议:

  1. 优先查看 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

  2. 你需要确保你的 App 与 Android 11 兼容,即在没有修改 targetSdkVersion 和 compileSdkVersion 的情况下,在 Android 11 的设备上确保用户可以正常使用 App 中的任何功能。因为上一点说了有些内容是自动生效的,所以这一步是你最先要处理的东西。

  3. 修改 targetSdkVersion 和 compileSdkVersion 到 Android 11 的对应版本,完成被动生效的适配内容。

  4. 查看 Androd 11 中的新特性,为之后的新需求做到心里有数。

    新特性文档地址:

    https://developer.android.com/preview/features

  5. 查看 Android 11 的版本说明,这其中会为开发者提供现有 Android 11 存在的已知 bug 方便我们遇到问题时更好的排查。

Android 11 发布时间线


上图是有关 Android 11 的发布时间线,其实不只是 Android 11,每一年的 Android 都是按照这个时间线发布的。

  • 2月-4月开发者预览版本的公布,通常会迭代 3 个版本
  • 5月-6月通常会在 Google I/O 上面发布首个 Beta 版本,虽然现在 Google I/O 线下会议已经取消了,但是应该还是会转移到线上进行。
  • 在 Q3 也就是第三季度,会发布最后一个 Beta 3 版本,这个版本通常就是正式版,这时 Google 会将代码发布到 AOSP,供各手机厂商适配,当然当 release 版本的发布才意味这 Google 正式开发完成,但 AOSP 上的代码是一直在 Push 的,所以各手机厂商通常都会提前拿到代码进行适配。

最后在科普一下,AOSP 上的 Android 代码才真正称的上是【原生 Android】,而 Pixel 上运行的 Android 系统和我们常用的 miui、flyme 一样都属于手机厂商二次开发的闭源系统。

Android Studio

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

Dynamic Feature Module Testing

上一期 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

Material Motion


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


在上期中为大家推荐了 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

Use view binding to replace findViewById


之前的文章中介绍了 Android Studio 3.6 中新增加的 View binding,用来替代繁琐的 findViewById(),今天这里再分享一个来自 Sean McQuillan 的文章,在这篇文章中为大家介绍了 View binding 内部是如何实现的。

https://medium.com/androiddevelopers/use-view-binding-to-replace-findviewbyid-c83942471fc

Using Biometric Prompt with CryptoObject

分享一篇 Isai Damier 的文章,展示了加密技术和生物识别技术如何协同工作来保护数据,尤其是政府、金融、医疗保健和企业应用。

https://medium.com/androiddevelopers/using-biometricprompt-with-cryptoobject-how-and-why-aace500ccdb7

代码分享:Biometric Login

根据上面的文章,Isai Damier 还创建了 GitHub 仓库,用于向大家介绍如何使用 AndroidX biometric library 将加密技术和生物识别技术集成到项目中。

https://github.com/android/security-samples/tree/biometriclogin/BiometricLoginKotlin

视频分享

Vector Assets


第一个视频来自 Nick Butcher 分享的有关在 Android 中使用 Vector Assets 的种种好处,例如如何使用 Vector Assets 来提供清晰的、可调整大小的和可动画化的图像。

https://www.youtube.com/watch?v=fgbl34me3kk&feature=emb_logo

Sealed Classes


Florina Muntenescu 为大家介绍了如何使用 Kotlin 中的 Sealed Classes 来替代枚举,并展示了 Sealed Classes 区别去枚举的强大指出。

https://www.youtube.com/watch?v=OyIRuxjBORY&feature=emb_logo

AndroidX Releases

最后是一些有关 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 ,就可以看到这一系列文章的全部内容。

感谢你的阅读。

Now in Android:13 万众瞩目的 Android 11!相关推荐

  1. Flutter Android 13系统bug android.media.EncoderProfiles$VideoProfile.getWidth()

    在Android 13 版本 中的 Flutter 相机遇到以下这个问题 步骤重现: 将 compileSdkVersion & targetSdkVersion 设置为 33 在Androi ...

  2. 最新版发布,快扶我起来,Android 13 现已正式发布至 AOSP

    作者 / Seang Chau, VP of Engineering 今天,Android 13 的源代码推送至 Android 开源项目 (AOSP),并正式发布最新版本的 Android.对于开发 ...

  3. Android 13 功能和变更列表

    类别 类型 名称 核心功能 新功能和 API OpenJDK 11 更新 Android 13 包含许多更新,以与 OpenJDK 11 LTS 版本保持一致. 图形 新功能和 API 可编程的着色器 ...

  4. Android 13 开发者预览版

    1.行为变更 1.1隐私权 1.1.1针对附近 Wi-Fi 设备的新运行时权限 Android 13 引入了 NEARBY_WIFI_DEVICES 运行时权限,该权限属于 NEARBY_DEVICE ...

  5. Android 13 更新内容(开发需知)

    功能和 API 概览 Android 13 面向开发者引入了一些出色的新功能和 API.以下几部分内容可帮助您了解适用于您的应用的功能并开始使用相关 API. 有关新增.修改和移除的 API 的详细列 ...

  6. Android 13 首个开发者预览版到来

    作者 / Dave Burke, VP of Engineering 每天,全世界都有数十亿人使用 Android 设备来完成各种事项.这些用户在使用 Android 时的优良体验离不开大家,也就是开 ...

  7. 谷歌 Android 13 曝光

    以下内容来自公众号code小生,关注每日干货及时送达 你可能还未将手机升级到 Android 12,谷歌已经在努力开发 Android 13--提拉米苏(Tiramisu),并且已经有不少功能被披露出 ...

  8. Android 13:一文看懂两大重磅升级

    以下内容来自公众号code小生,关注每日干货及时送达 来源 | 快科技 近日,谷歌2022年I/O开发者大会召开,作为重头戏,Android 13 Beta 2版本公开,面向"亲儿子&quo ...

  9. Android 13 VTS HIDL interface 解析

    Android 13 VTS Introduction Android 13已经发布,VTS testcase发生很多变化,在此博客中对其每个测试项目进行流程介绍. 这里先对VTS 做一个介绍: VT ...

最新文章

  1. python解除windows锁屏_实战 | Python批量提取Win10锁屏壁纸
  2. 计算机音乐作曲排名2019,2019金曲排行榜_2019《全球华人歌曲排行榜》年度五强名单公布...
  3. Spring Security实现登录权限控制,记住我等功能
  4. 续上篇随笔:陈勇提示做分批载入需要用到的数据
  5. 关于表格动态添加行并处理相关表单元素的一些修改
  6. 抓包写代码模拟怎么减少重复劳动
  7. 谈一谈自己对依赖、关联、聚合和组合之间区别的理解
  8. BZOJ2689 : 堡垒
  9. 计算机网络实验(router_sim)工具
  10. 双十一终极预告:免单+半价+100% 中奖,没有套路,直降直减!
  11. 程序员!别再盲目刷视频了!坚持做这件事儿,AI 也难不倒你!
  12. 鸿蒙官网什么样,鸿蒙系统推广,结果会怎么样?
  13. 树链剖分边权模板spoj375
  14. C++全局函数与成员函数的区别
  15. 微信小程序,对个人开发者开放之亲体验
  16. c++中的MFC可视化编程
  17. 【天锐绿盾】之常见问题处理:控制台登录提示采集服务器空间不足,修改数据保存时间
  18. Spring学习(二)IOC
  19. 本地计算机出现多个网络连接,电脑网络连接出现感叹号?教你一招解决
  20. NOIP2014、2015普及组初赛难点整理

热门文章

  1. 软件配置(potplayer、迅雷、pdfElement)、快捷键、mindmanage使用
  2. 关于pta上要求的格式错误等问题
  3. 谈谈个人对 TDD (测试驱动开发) 的理解
  4. 计算机在医学未来的应用,计算机在医疗卫生领域中的应用现状及前景
  5. python如何写app服务器端_app 服务端编写(2),python
  6. 乾元通多链路通信设备保障高铁网络稳定
  7. Redis+SpringBoot实现置顶帖缓存
  8. 帆软单选按钮实例_HTML单选按钮示例教程
  9. 【打印PPT】如何打印PPT?如何打印PPT到1张纸上?PPT大于A4纸张如何打印?
  10. 如何学习SCL语言?SCL语言编程入门