Android Q Labs| Android Q 有哪些更新

2,581 阅读7分钟

两个月前,我们刚推出了 Android Q 的 Beta 版本,在过去的两个月我们一直在聆听大家的反馈和意见,今年 Google I/O 上我们刚推出了 Beta 3。在此强烈建议大家加入 Beta 项目并在上面测试自己的应用,欢迎大家反馈对于 Android Q 的意见、建议和需求。

Android Q 的主题

以上是今年 Android Q 更新的三个主题。今天主要跟大家聊聊隐私上的行为变更、性能提高、以及借助 Project Mainline 更容易地更新用户的系统。

系统UI

系统UI的变化对用户来说最为直观,在系统UI的修改上我们的原则是通过改进让开发人员在开发时更加得心应手。我们希望用户能够方便地调用他们最想使用的功能,即使是应用没有打开的情况下也能用到其中一些功能。在 Android Q 上,我们对分享通知多任务做了很多优化。

分享

我们在分享界面做了重大改版

一是引用新的 API 提升性能;

二是改进了界面的展示,明确可以向哪些地方分享内容。

现在分享页面被划分为三块区域。第一块是新加入的内容预览区,包含分享内容的链接、图标和标题,以及一个复制的按钮。开发者可以在此区域添加 metadata 实现富内容预览。

上图是富内容预览的代码实现。

第二块是分享捷径,这块让用户在应用中更快捷地分享出去。

该块最多可显示8个分享目标,可以是通讯工具里最常互动的联系人或群组,也可以是最常使用的工作目录等。因为应用内的分享会比打开应用再选择分享的方式更高效,所以分享捷径的区域会展示在分享应用的上方,同样 Sharing Cuts 的优先级会高于之前版本中所提供的Chooser Target Service;我们还通过 Android ACTS 提供了向下兼容:

创造捷径内分享的方式也很简单。

在 Sharing Shortcu 中添加一个完整字段的 Person 类信息会对分享的展示以及通知里的展示提高优先级。

第三块分享目标应用区域会展示所有可分享的应用。

通知

过去几个版本中,我们一直在努力帮助用户梳理他们的通知栏,在过去的版本中我们也推出了帮助用户关闭通知的快捷键。

秉着帮助用户减少打扰并关注重要通知,我们在 Android Q 上对优先级做了优化。

图中上半部分是高优先级的通知,下半部分为弱优先级。系统会尊重用户设立的优先级,但为了避免应用滥用高优先级的 API,系统也会进行预判断。系统会将有关“人”的通知、通话信息、事件等给予更高的优先级。优先级最终是由用户决定,用户在 Q 中可以更轻松地更改应用的优先级。

强烈建议大家给自己应用的通知加入图上的这种选择 Action。

在Android Q 中,系统为 Messaging 类的通知自动生成一些自动回复的提示,包括文本内容、URL 链接和应用中的 Deep Links(如上图所示)。出于隐私考虑以上操作均在设备上完成,而非云端。

如果你想要在系统提示的基础上进行一些自定义,比如说你想要让用户可以点击该回复并且进行编辑,或者是你想要加入一些机器学习的模型去推测用户会加入怎样的回复,那么如果是这种情况的话,我们就有一些自定义的建议,以下是一些代码实例。

首先是如何创建新通知,这可以帮助应用在系统免通知打扰模式开启时跟系统更好地配合。setAllowSysemGeneratedContenxtualActions 在 Android Q 上是默认开启并设成 True 的。

这里我们给出了一个如何加入机器学习模型来推测用户输入内容的例子。我们利用 FirebaseNaturalLanguage 里的 getSmartReply 来获得实例,再调用 suggest 方法。这里有一个异步的操作,Firebase 会在云端协助处理并返回可能的回复值,然后把这些回复值加入通知可能出现的 choices 里面。

要对系统进行自定义,需挟持系统给出的一些 Actions,在此基础上进行自定义深层链接。

多任务

在ndroid Q 中我们引入了 Bubbles,它是在 System Notification 基础上支持多任务的新功能,用来取代之前被滥用的 System Alert Window。System Alert Window 设计之初不是面向用户的功能,有些开发者用 System Alert Window 做了一些很酷的 Feature ,在 Q 中我们会对这个接口的使用做一些限制。 相较于之前用于视频播放场景的画中画功能,Bubbles 的出现用来处理多任务模式下需要更多用户交互的场景。 Bubbles 在 Q 的预览版中是默认开启,但在最终版本中它将变成 Developer Only 的选项,需要在开发者选项中手动打开。

在收起态中,Bubbles 将会是一个圆形图标,用一块圆形的区域展示新收到的消息;当用户点击时会展开,展开一个完整的界面。开发者构建 Bubbles 需要三步:首先构建一个用于展示 Bubbles 的 Activity,然后构建好 Bubbles 的 Metadata 并添加到 notification 中,最后再发送这个 Notification。

以下是创建 Bubbles 的代码。

首先需要在应用的 Mainfest 文件中设置 Activitity 的属性。allowEmbedded、documentLaunchMode 和 resizeableActivity 是三个必须要有的属性,否则不会按照 Bubbles 的形式将 Notification 展示出来。

首先要设置 Activity 的 Pending intent,然后是设置图标。

创建好 Bubble 的 Metadata 之后,只需要那行高亮的代码将其关联到 Notification 当中,使用 Notification Manager 的接口把 Bubble 展示出来。

若你的 Notification 不属于这三种场景,就不会被以 Bubbles 的形式展示出来。如果你的应用是实时通讯类的应用,你需要使用 Message Style 内嵌的回复方式,并关联到 Notification 中;语音通话类应用要使用 Category Call,标注 person 字段,并要有前台的服务。

Kotlin

过去的两年中有越来越多的 Android 开发者使用了 Kotlin 语言。

Camera360团队将他们使用 Kotlin 的新的与我们进行了分享。

Google 现在推行 Kotlin-First,不仅第一方应用优先使用 Kotlin,Jetpack 库现已支持 Coroutine。此外我们仍会支持 Java 和 C 语言在 Android 上的开发

为了帮助开发者更快上手 Kotlin,我们和 JetBrains 联合推进全球性社区自发的 Kotlin 学习活动。对 Kotlin 学习感兴趣的可联系当地 GDG。

隐私

Jetpack

TLS 1.3 默认开启

相较于 TLS 1.2,1.3最大的优化在于速度上的提升,更快建立安全链接。

设备ID访问设置

注意,UUID 不会随着应用的重新安装或用户的清除空间而保存。

设置&开关

聆听其他应用音频输出

使用该 API,允许其他应用聆听该应用的音频输出。

只有用户允许时才可使用。

BiometricPrompt

包括用户指纹、人脸识别、虹膜识别等生物特征。Q 在 API 的基础上进行了一些优化。

在调用前,先使用BiometricManager.canAuthenticate来判断是否可以进行生物识别登录操作。

建议大家在添加生物识别的同时,加入备选机制(如密码、图案、PIN码等)

Android Studio 3.5 (Beta)

列出来的一些目前已有的改进。

提供了折叠屏手机的屏幕模拟器,目前可创建7.3英寸和8英寸的模拟器。

改变了开发者抱怨已久的 Instant Run 功能,将其重写并改为 Apply Changes。

允许在 Android Studio 设置 heap size,从而在开发过程中达到更好的性能。

以上就是关于 Android 更新的所有内容,谢谢大家!

Android Q Labs 直播专题页面

Android Q Labs 开场演讲

Android Q 现代化您的应用

后台 Activity 启动的限制

Android Q 分区存储

Android Q 手势导航

Jetpack 更新

Android Q 在折叠屏设备的适配

通用系统映像介绍

Google Play 商店政策

Android Q 地理位置权限变更

Android Q 深色主题

Android Q Labs 总结演讲