Android 12 的发布宛如昨日,万万没想到,四个月后的今天,Android 13 首个预览版已悄然而至。
2 月 10 日,Google 宣布 Android 13 首个预览版面向开发者开放,此版本重点聚焦隐私和安全、提供开发者生产力、应用兼容性,并保持与 OpenJDK 11 更新一致、提供主题图标、带来新的照片选择器等功能。
接下来,让我们一起来看看最新版本的 Android 13 到底有什么样的改变吧!
以隐私和安全为核心
网络大数据时代,隐私与安全对于各大公司及用户而言至关重要,上到芯片、系统,下到应用程序,每一角落的安全及隐私保护都不容忽视。在带来 Android 13 首个预览版之际,Google 在官方博客中如是说道,“隐私是 Android 产品原则的核心,Android 13 专注于通过在设备上提供更安全的环境并为用户提供更多的控制权,为所有人构建一个负责任的高质量平台。”
全新的照片选择器和 API
Android 13 预览版引入全新的系统照片选择器功能,取代了用于选择照片的弹出文件管理器,这样方便用户在使用应用程序时能够更安全地共享本地或者云端照片和视频。其中应用程序可以调用系统照片选择器 API 后无需查看设备上所有媒体文件的权限,即可访问共享的照片和视频。
启动照片选择器示例(Kotlin 语言):
// Launches photo picker in single-select mode.
// This means that the user can select one photo or video.
val intent = Intent(MediaStore.ACTION_PICK_IMAGES)
startActivityForResult(intent, PHOTO_PICKER_REQUEST_CODE)
启动照片选择器示例(Java 语言):
// Launches photo picker in single-select mode.
// This means that the user can select one photo or video.
Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
startActivityForResult(intent, PHOTO_PICKER_REQUEST_CODE);
对于这一功能,Google 后续计划通过 Google Play 系统更新将照片选择器 API 作为运行在 Android 11 及更高版本的设备(Go 设备除外)中的 MediaProvider 模块的一部分,向更多 Android 用户推送。
在不使用位置权限的情况下,连接到 Wi-Fi
过往,应用程序偶尔需要使用附近 Wi-Fi 的列表,但使用这一功能的前提附带了一个更为敏感的权限:位置。
为此,Android 13 还引入了一个名为“NEARBY_WIFI_DEVICES 运行时权限(NEARBY_DEVICES 权限组的一部分)”,用于管理设备通过 Wi-Fi 与附近接入点的连接,而不会泄露用户的位置或需要位置权限。
这一功能非常适合为某些 Wi-Fi 硬件(智能扬声器等)设置应用程序。
调用方法如下:
public static final String NEARBY_WIFI_DEVICES
主题图标在 Android 13 测试版中正式可用!
还记得在去年发布的 Android 12 中,Google 为其带来了一个名为“主题图标”的新功能,不过一直处于测试版阶段。“主题图标”是指 Google 将墙纸中的强调色应用到主屏幕上的应用程序图标的方式,也就是将 Google 的一些图标单色化,并为图标提供与 Material You 主题相匹配的圆形背景。
简单来看,就是在启用这一功能后,应用程序图标将会呈现双色调外观,这些图标将会具有更亮的背景和更暗的元素。如下图所示,最左边的图片是未启用“主题图标”原有的界面显示,中间的是启用了“主题图标”显示的界面,右边是启用暗黑主题图标的界面。
不过,过去在 Android 12 中,主题图标是硬编码的,导致很多开发者即使想要开发制作主题图标,也不知从何入手。
现在在 Android 13 中,开发者只需要提供一个单色的应用图标,并对自适应图标 XML 进行一些调整,就能使用这一功能了。
针对这一点具体可以带来什么样的作用,目前尚未可知,也许仅是 Google 在图标颜色上的一种新尝试。
对此,国外科技媒体 Arstechnica 评价道,“Google 从修改社区的图标包中得到了关于‘主题图标’的想法。但在图标包中,一个设计师制作了一堆图标,一个用户应用它们,其实并没有什么用。除非世界上所有的开发者都制作一个主题图标,否则谷歌推出的主题图标不会带来什么效果。与此同时,修改图标如果也不关心一个公司的品牌优先级,只希望一切都能匹配的话,我无法想象 Facebook 会批准一个不是蓝色的 Facebook 图标出现。”
其实,Google 对于”主题图标“上或也存在很大的不确定性,在 Android 13 首个预览版正式发布的博文中,其指出,”我们鼓励所有开发者提供兼容的图标,从而为选择使用这一功能的用户提供一致的体验。主题应用图标最初会在 Pixel 设备上得到支持,我们正与设备制造商合作伙伴们一起将这个功能引入更多设备。"
当前,我们也不妨期待一下“主题图标”在实际设备应用上的效果吧。
提升开发者效率的工具
Android 13 还为提高开发人员的工作效率带来了新功能和工具。
快速设置放置 API
在 Android 13 预览版中,用户可以在不离开应用情况下,基于通知栏中的快捷设置直接进行更改设置或快速操作。
为此,Google 也为开发者提供了自定义磁贴,通过新的磁贴放置 API,应用程序可以提示用户,直接将能够自定义的磁贴添加到快捷设置磁贴组中。
单个应用的语言偏好
这一点也是很多系统以及工具在不断完善的功能点。即用户可以在不同的应用程序中设置与系统不同的语言,非常适用于多语言用户的需求。
时下,开发者只需要在开发自己应用程序的时候调用一个系统 API,就能设置或获取用户的首选语言,从而在设置应用的运行时语言时减少样板代码并提高兼容性。
Google 官方也表示,为了更广泛的兼容性,其将在即将推出的 Jetpack 开发库中增加一个类似的 API。
更快的连字符
在 Android 13 预览版中,有一个看似不起眼的功能却引起了不少开发者的注意,即“更快的连字符”。显示文本是 Android 上最常见的任务之一,也是系统上最为复杂的任务之一,在 2018 年 Google 博客发布的一篇描述 Android 9 的流程文章中曾写道:
显示文本可能很复杂,包括多种字体、行间距、字母间距、文本方向、换行、断字等功能。TextView 必须做很多工作来测量和布置给定的文本:读取字体文件、查找字形、确定形状、测量边界框以及将单词缓存在内部单词缓存中。更重要的是,所有这些工作都发生在 UI 线程上,这可能会导致您的应用程序丢帧。
在 UI 线程上执行所有这些操作对应用程序性能不利,因为任何挂断都会使用户的应用程序卡顿。此外,断字是最繁琐的文本布局操作之一,因为需要计算每个单词的每个音节断点来进行布局。
在 Android 13 预览版中,Google 将连字符的性能提升了多达 200%。开发者现在可以在 TextView 中启用连字符,它对渲染性能几乎没有影响。如果大家想要启用更快的连字符,可以在 setHyphenationFrequency() 中使用新的 fullFast 或 normalFast 频率。
可编程着色器
Android 13 是添加了对可编程 RuntimeShader 对象的支持,其行为使用 Android 图形着色语言 (Android Graphics Shading Language, AGSL) 定义。
OpenJDK 11 更新
在 Android 13 中,Google 开始将 Android 核心库与 OpenJDK 11 版本的更新保持一致,为应用和平台开发者提供代码库更新和 Java 11 编程语言支持。
Android 13 稳定版将比过往版本来得更早?
使用非 Pixel 手机的用户,可以在 Android Studio 中将 64 位系统映像与 Android Emulator 一起使用。对于更广泛的测试,可以使用 GSI 图像。
更多使用指南详见:https://android-developers.googleblog.com/2022/02/first-preview-android-13.html
参考:https://arstechnica.com/gadgets/2022/02/google-releases-android-13-developer-preview-1/
《新程序员003》正式上市,50余位技术专家共同创作,云原生和数字化的开发者们的一本技术精选图书。内容既有发展趋势及方法论结构,华为、阿里、字节跳动、网易、快手、微软、亚马逊、英特尔、西门子、施耐德等30多家知名公司云原生和数字化一手实战经验!
☞realityOS会是苹果的新操作系统吗?