作者DaveBurke,VPofEngineering 上个月,我们发布了〔1〕Android13的首个开发者预览版。Android13围绕我们的核心主题打造,即隐私和安全、开发者生产力,以及支持平板电脑和大屏幕设备。今天,我们为大家带来了Android13开发者预览版2,提供了更多的新功能和变更,供您在应用中尝试。您的意见会帮助我们将Android打造成更适合开发者和用户的平台,欢迎大家和我们分享测试反馈! 在今天的发布之前,Android12L功能更新已经于上周发布至Android开源项目(AOSP)中,这些功能更新会帮助大家充分利用超过2。5亿台的大屏幕Android设备。为了帮助大家深入了解Android13、平板电脑,以及我们在JetpackCompose中提供的开发者生产力功能,我们准备了新一期的TheAndroidShow节目,欢迎大家点击这里观看。Android12L功能更新,现已加入AOSP 在开始介绍本次的开发者预览版之前,让我们先回顾一下上周的新闻:我们已经正式将Android12L功能更新发布至AOSP,并会在未来几周内推送至所有支持的Pixel设备。Android12L优化了Android12在平板电脑上的体验,其中包括一些更新,比如用户可以在新的任务栏中通过拖放让应用进入分屏模式,通知栏和锁屏中新的大屏幕布局,以及改进的应用兼容模式。您可以阅读发布博文〔2〕了解更多信息。 从今年晚些时候开始,Android12L将在三星、联想和微软的平板电脑和可折叠设备上按计划更新,现在是时候让您的应用做好准备了。我们强烈建议大家在分屏模式下用不同大小的窗口测试应用,以及针对不同的屏幕方向进行测试,并检查新的兼容模式的变化(如果适用的话)。请访问官方文档〔3〕了解更多关于Android12L的开发信息。 最重要的是:Android12L的大屏幕功能也是Android13的基础之一,所以您可以在Android13上进行开发和测试,因为Android13覆盖了运行Android12L的平板电脑受众。我们将大屏幕视为Android未来的关键方向之一,我们将继续投入资源,为您提供更多相关工具,帮助您为平板电脑、Chromebook和可折叠设备构建良好体验。您可以通过官方文档了解更多关于如何开始为大屏幕进行优化〔4〕的信息,并查阅我们的大屏幕开发者资源〔5〕。 下面让我们深入了解今天的Android13开发者预览版2中的新内容。隐私和用户信任 人们希望使用值得信赖的操作系统和应用,来处理他们最私密、最敏感的信息以及设备上的资源。隐私和用户信任是Android产品原则的核心。在Android13中,我们将继续专注于在设备上提供更安全的环境,以及为用户提供更多的控制权,从而为所有人打造一个负责任、高质量的平台。以下是开发者预览版2中的新增内容。 通知权限为了帮助用户专注于对他们最重要的通知,Android13为从应用发送通知引入了一个新的运行时权限〔6〕:POSTNOTIFICATIONS〔7〕。以Android13为目标平台的应用现在需要在发送通知前向用户申请通知权限。以Android12或更低版本为目标平台的应用,系统将代您处理升级流程。我们也会持续优化这个流程。为了给您的用户提供更多的背景信息和控制权限,我们鼓励您尽早将目标平台设为Android13,并在您的应用中申请通知权限。请访问官方文档〔8〕了解详细信息。 Android13中的通知权限对话框 开发者可降级权限一些应用可能不再需要某些之前由用户授予过的权限,这些权限曾用于开启某项特定功能或保留旧的Android版本中的敏感权限。在Android13中,我们提供了新的API〔9〕,让您的应用通过降级以前被授予的运行时权限来保护用户隐私。 更安全地导出上下文注册的接收器在Android12中,我们要求开发者针对应用清单中声明的Intent接收器来声明其可导出性。在Android13中,我们要求您也为上下文注册的接收器做同样的事情:在为非系统来源注册接收器时,为其添加RECEIVEREXPORTED〔10〕或RECEIVERNOTEXPORTED〔11〕标志。这将有助于确保接收者不会被其他应用发送广播,除非其有意为之。虽然在Android13中对此没有强制要求,但我们建议您声明可导出性,迈出保护您的应用的第一步。开发者生产力 在Android13中,我们正在努力为您提供更多的工具,帮助您为用户提供更精致的体验和更好的性能。以下是今天的开发者预览版中的一些更新。 日语文本折行改进TextView现在可以按词句(文節Bunsetsu,听起来觉得自然的最小语义单位)或短语来折行文本,而不是按字符折行。这会让日语应用有更佳的阅读体验。您可以通过在TextView中使用android:lineBreakWordStylephrase〔12〕来启用这种折行: 不启用(上)和启用(下)短语折行的日语文本对比 改进了非拉丁文字的行高Android13使用适合每种语言的行高,改进了非拉丁文字(如泰米尔语、缅甸语、泰卢固语和藏语)的显示效果。新的行高可以防止出现剪切,并改善字符的定位。您的应用只需将目标平台设为Android13,即可获得这些改进。请大家务必在使用新的行距时测试您的应用,因为变化可能会影响非拉丁语系的用户界面。 以Android13为目标平台的应用中的非拉丁文字行高改进效果(下) 文本转换API日语和汉语等语言的用户会使用拼音输入法,这往往会拖慢搜索和自动补全等功能。在Android13中,应用可以调用新的文本转换API〔13〕,让用户可以更快更容易地找到需要的内容。例如,以前的搜索需要日语用户(1)输入平假名来表示搜索词的发音,可能是一个地名或一个应用名(2)使用键盘将平假名字符转换为汉字(3)使用汉字字符重新搜索(4)获得搜索结果。在新的文本转换API的帮助下,日语用户只需输入平假名,就可以立即看到日文汉字的搜索结果,相当于跳过了第2和第3步。 彩色矢量字体Android13增加了对COLR版本1(请参考详细规格〔14〕和介绍视频〔15〕)字体的渲染支持,并将系统表情符号更新为COLRv1格式。COLRv1是一种新的、高度紧凑的字体格式,在任何尺寸下都能快速清晰地渲染。对于大多数应用,这项修改完全无法被感知到,系统会自动处理好一切。从开发者预览版2开始,您可以选择在应用中使用COLRv1。如果您的应用是自己实现文本渲染,并使用系统字体,我们建议您使用COLRv1并测试表情符号的渲染效果。您可以在Chrome发布公告〔16〕中了解更多关于COLRv1的信息。 COLRv1矢量表情符号(左)和位图表情符号 蓝牙低功耗(LE)音频低功耗(LowEnergy,LE)音频是下一代的无线音频,用于取代经典蓝牙,并实现新的用例和连接拓扑结构。用户可以通过它与朋友和家人分享和广播自己的音频,或订阅公共广播以获得信息、娱乐或无障碍辅助信息。它旨在确保用户能够在不牺牲电池寿命的情况下接收高保真音频,并在不同用例之间无缝切换,这是经典蓝牙无法做到的。Android13增加了对低功耗音频的内置支持,因此开发者们无需做任何操作即可在兼容的设备上获得这个新功能。 MIDI2。0Android13增加了对新的MIDI2。0标准的支持,包括通过USB连接MIDI2。0硬件的能力。这个更新的标准提供了一些新功能,如更高的控制器分辨率,更好地支持非西方音调,以及通过单一音符控制器提供更佳的表现力。应用兼容性 在发布新的平台版本时,我们优先考虑应用的兼容性,让系统更新的体验更快、更顺畅。在Android13中,面向应用的变更都是可选的,以便您有更多的时间进行调整和适配,我们还更新了工具和流程,帮助您更快地做好准备。 随着开发者预览版2的到来,我们得以在Android13的发布历程中更进一步,并继续改善整体的稳定性,现在是时候尝试新功能和变更,并向我们提交反馈了。我们特别希望得到关于API的反馈意见,以及平台变更〔17〕对您的应用造成影响的详细信息。欢迎大家前往反馈页面〔18〕,与我们分享您的想法或报告问题。 现在您也可以开始进行兼容性测试〔19〕,并确定接下来需要完成的工作。我们建议大家尽早安排这些工作,以便在Android13Beta1推出时发布与之兼容的更新。目前暂时不需要更改应用的targetSdkVersion,但我们建议使用开发者选项中的行为变更开关〔20〕来初步了解Android13中的可选变更对应用造成的影响。 我们将在2022年6月抵达平台稳定性里程碑〔21〕,届时所有面向应用的系统行为、SDKNDKAPI和非SDK清单都将最终确定。到那时,您可以完成最终兼容性测试,并发布完全兼容的应用、SDK或开发库。详见发布时间表〔22〕。 开发者选项中的应用兼容性开关即刻开始体验Android13 不论您是想体验Android13的功能、测试应用还是提交反馈〔23〕,都可以从这次的开发者预览版开始。只需将系统映像下载并刷入〔24〕Pixel6Pro65a5G54a(5G)4a4XL4设备,即可立即开始使用。如果您没有Pixel设备,则可以在AndroidStudioDolphin中使用带有64位系统映像的Android模拟器。如果想进行更广泛的测试,我们也提供了GSI映像。如果您已经在Pixel设备上安装了上一个预览版,则会通过OTA方式自动获得更新,包括之后的预览版和Beta版。请访问官方文档〔25〕了解详细信息。 了解本次发布的完整信息,请访问Android13开发者网站〔26〕。 欢迎您点击这里〔27〕向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!参考资料 〔1〕发布了:https:zhuanlan。zhihu。comp466155592 〔2〕发布博文:https:blog。googleproductsandroid12llargerscreens 〔3〕官方文档:https:developer。android。google。cnaboutversions1212L 〔4〕开始为大屏幕进行优化:https:developer。android。google。cnguidetopicslargescreensgetstartedwithlargescreens 〔5〕大屏幕开发者资源:https:developer。android。google。cnlargescreens 〔6〕运行时权限:https:developer。android。google。cnguidetopicspermissionsoverviewruntime 〔7〕POSTNOTIFICATIONS:https:developer。android。google。cnreferenceandroidManifest。permissionPOSTNOTIFICATIONS 〔8〕官方文档:https:developer。android。google。cnaboutversions13changesnotificationpermission 〔9〕新的API:https:developer。android。google。cnreferenceandroidcontentContext。htmlrevokeOwnPermissionsOnKill(java。util。Collection3Cjava。lang。String3E) 〔10〕RECEIVEREXPORTED:https:developer。android。google。cnreferenceandroidcontentContext。htmlRECEIVEREXPORTED 〔11〕RECEIVERNOTEXPORTED:https:developer。android。google。cnreferenceandroidcontentContext。htmlRECEIVERNOTEXPORTED 〔12〕android:lineBreakWordStylephrase:https:developer。android。google。cnreferenceandroidR。attr。htmllineBreakWordStyle 〔13〕文本转换API:https:developer。android。google。cnreferenceandroidviewinputmethodTextAttribute 〔14〕规格:https:docs。microsoft。comenustypographyopentypespeccolr 〔15〕介绍视频:https:www。youtube。comwatch?vBmqYm5Wwz8M 〔16〕发布公告:https:developer。chrome。comblogcolrv1fonts 〔17〕平台变更:https:developer。android。google。cnaboutversions13behaviorchangesall 〔18〕反馈页面:https:developer。android。google。cnaboutversions13feedback 〔19〕兼容性测试:https:developer。android。google。cnaboutversions13migration 〔20〕行为变更开关:https:developer。android。google。cnaboutversions13referencecompatframeworkchanges 〔21〕平台稳定性里程碑:https:developer。android。google。cnaboutversions13overviewplatformstability 〔22〕发布时间表:https:developer。android。google。cnaboutversions13overview 〔23〕提交反馈:https:developer。android。google。cnaboutversions13feedback 〔24〕下载并刷入:https:developer。android。google。cnaboutversions13download 〔25〕官方文档:https:developer。android。google。cnaboutversions13get 〔26〕Android13开发者网站:https:developer。android。google。cnaboutversions13 〔27〕点击这里:https:go2。gdsub。comandroiddevfb