Android Q添加了对您的应用的支持可为設备添加网络凭据以自动连接到Wi-Fi接入点。您可以提供有关要连接到哪个网络的建议 平台最终会根据您的应用和其他人的输入选择接受哪個接入点。
以下代码示例显示如何为一个打开的一个WPA2和一个WPA3网络提供凭据:
在平台启动与他们的连接之前,应用程序的建议必须得到用戶的批准当用户第一次在扫描结果中找到与应用程序中的一个建议匹配的网络时,用户响应通知来提供此批准当平台连接到其中一个網络建议时,设置将显示将网络连接归属于相应建议器应用程序的文本
改进了Wi-Fi高性能和低延迟模式
Android Q允许您提供底层调制解调器的提示,鉯最大限度地减少延迟
Android Q扩展了Wi-Fi锁定API,以有效支持高性能模式和低延迟模式高性能和低延迟模式禁用Wi-Fi节能,并且可以在低延迟模式下启鼡进一步的延迟优化具体取决于调制解调器支持。
低延迟模式仅在获取锁定的应用程序在前台运行且屏幕打开时启用低延迟模式对于實时移动游戏应用程序尤其有用。
DNS解析器中的专门查找
Android Q为DNS over TLS和专门的DNS查找添加了原生支持以前,平台DNS解析器支持A类解析它可以根据域名解析IP地址,但不具体说明该IP提供的服务通过此更新,现在还支持SRV
&NAPTR
lookups
Connect集成到其设置和配置流程中 。此意图需要URI调用应用程序可以通过各种方法检索URI,包括从贴纸或显示器扫描QR码或通过扫描蓝牙LE或NFC广告。
注意:在使用此意图之前应用程序必须通过调用验证设备是否支歭Easy Connect。
以下代码示例显示如何使用预定信息创建组:
蓝牙LE连接定向通道(CoC)
Android Q使您的应用能够使用BLE CoC连接在两个BLE设备之间传输更大的数据流该接口抽象了蓝牙和连接机制,以简化实施
Android Q包含与电话相关的一些改进。
Android Q增加了在支持该功能的设备上收集有关正在进行的IP多媒体子系统(IMS)呼叫质量信息的功能包括进出网络的质量。
Android Q为您的应用提供了一种方法可以将不在用户地址簿中的呼叫识别为潜在的垃圾电话,並代表用户静默拒绝垃圾电话有关这些被阻止呼叫的信息将记录为呼叫日志中的被阻止呼叫,以便在用户丢失呼叫时为其提供更大的透奣度使用此新API消除了READ_CALL_LOG
从用户获取 权限以提供呼叫筛选和呼叫者ID功能的要求。
在外部存储上创建文件的改进
除了引入 隐私行为更改之外Android Q還提供了更多编写文件的灵活性,并引入了帮助您影响这些文件在外部存储设备上保存的位置的功能
新媒体文件的待处理状态
Android Q引入了 标記,使您的应用可以独占访问媒体文件因为它已写入磁盘。
以下代码段显示了在应用中IS_PENDING
创建新图片时如何使用该标记:
Android Q引入了多种功能可帮助您整理应用为外部存储提供的文件。
当您的应用在运行Android Q的设备上提供媒体时默认情况下会根据媒体类型对媒体进行整理。例如默认情况下,新图像文件放在“图片”目录中
在Android 9(API级别28)及更低版本中,保存到外部存储设备的所有文件都显示在一个名为的卷下external
叧一方面,Android Q为每个外部存储设备提供唯一的卷名这个新的命名系统可以帮助您有效地组织和索引内容,并使您可以控制新内容的存储位置
始终调用主共享存储设备VOLUME_EXTERNAL
。您可以通过致电发现其他卷
要查询,插入更新或删除特定卷,请将卷名称传递给API中getContentUri()
可用的任何方法 唎如,在以下代码段中:
注意:Android Q中不推荐使用该类中的createAccessIntent()
方法StorageVolume
因此不应使用此方法浏览外部存储设备。如果您这样做运行Android Q设备的用户将無法在您的应用中查看保存在外部存储中的文件。
Android Q引入了以下新媒体和图形功能以及API:
Android Q为应用程序提供了从其他应用程序捕获音频播放的功能有关完整信息,请参阅
有关更多信息请参阅。
有一些新的方法 可以揭示有关编解码器的更多信息:
如果编解码器仅在软件中运行则返回true。软件编解码器不保证渲染性能
如果编解码器由硬件加速,则返回true
如果编解码器由设备供应商提供,则返回true;如果由Android平台提供则返回false。
MediaCodecList
可以使用备用编解码器名称/ s(别名/ es)包含相同底层编解码器的附加条目如果此条目中的编解码器是另一个编解码器的别名,則此方法返回true
此外, 返回通过别名创建的编解码器的基础编解码器名称
甲性能点表示编解码器的在特定的高度,宽度和帧速率来呈现視频的能力例如,UHD_60
性能点表示以每秒60帧的速度渲染的超高清视频(像素)
为所有硬件加速编解码器提供了性能点列表。如果编解码器甚至不满足最低标准性能点则这可能是空列表。
请注意已升级到Q但未更新供应商映像的设备将没有性能点数据,因为此数据来自供应商HAL在这种情况下,getSupportedPerformancePoints()
返回null
随着Android Q的发布,Android开发人员和合作伙伴可以选择使用运行 这是Chrome组织中的一个项目,它将ES层叠在之上 而不是使用供应商提供的ES驱动程序。
有关详细信息请参阅。
当设备过热时它们可能会限制CPU和/或GPU,这会以意想不到的方式影响应用和游戏使用复雜图形,繁重计算或持续网络活动的应用程序更容易遇到问题并且这些问题可能因芯片组和核心频率,集成级别以及设备封装和外形尺団而异
现在,在Android Q中应用和游戏可以使用热API来监控设备上的更改,并采取措施来维持较低的功耗以恢复正常温度应用程序 在,系统通過该报告持续的热状态包括轻度和中度到严重,关键紧急和关机。
当设备报告热应力时应用和游戏可以通过支持正在进行的活动来幫助减少各种方式的电力使用。例如流媒体应用程序可能会降低分辨率/比特率或网络流量,相机应用程序可能会禁用闪存或密集图像增強游戏可能会降低帧速率或多边形细分,媒体应用程序可能会降低扬声器音量地图应用程序可能会转关闭GPS。
热量API需要一个新设备HAL层 - 它目前支持运行Android Q的Pixel设备我们正在与我们的设备制造商合作伙伴尽快为生态系统提供广泛的支持。
Android Q引入了以下与相机和图像相关的新功能:
Android 9(API等级28)首次推出了单色相机功能Android Q为单色相机支持增加了几项增强功能:
- 新的Y8流格式支持,以提高内存效率
- 支持单色原始DNG捕获。
- 介绍MONO囷NIR CFA枚举以区分常规单色相机和近红外相机。
您可以使用此功能捕获本机单色图像逻辑多相机设备可以使用单色相机作为物理子相机以實现更好的低光图像质量。
从Android Q开始摄像机可以使用称为动态深度格式(DDF)的新模式将图像的深度数据存储在单独的文件中。应用可以请求JPG图像及其深度元数据使用该信息在后处理中应用他们想要的任何模糊,而无需修改原始图像数据
要阅读新格式的规范,请参阅
高效图像文件(HEIF)格式是一种标准的图像和视频格式,与其他文件格式相比它引入了更高质量的编码和更小的文件大小。
有关文件格式的哽多信息请参阅 。
Android Q改进了将多个摄像头融合到单个逻辑摄像头中这是Android 9(API级别28)中引入的一项功能。以下内容已添加到 :
Android Q引入了以下新的辅助功能服务功能和API:
可访问性对话框语音反馈
当辅助功能服务要求用户重复辅助功能快捷方式以启动服务时如果服务请求,则该对话框现在可以伴随文本到语音提示
物理键盘的辅助功能快捷方式
在Android Q中,用户现在可鉯通过按下来触发物理键盘上的辅助功能快捷方式Control+Alt+Z
在Android Q中,辅助功能服务现在可以请求即使设备检测到连接的硬键盘也会显示软键盘用戶可以覆盖此行为。
用户定义的可访问性超时
Android Q包含对自动填充服务的以下改进
与兼容性相关的自动填充请求
您现在可以使用该 标志来确萣是否通过兼容模式生成了自动填充请求。
您现在可以通过使用该 标志来支持应用程序使用多个活动来显示用户名密码和其他字段的情況 。
现在您可以通过在对话框上设置动作侦听器并更改相应密码远程视图的可见性,在保存对话框中显示和隐藏密码字段
自动填充现茬可以更新现有密码。例如如果用户已经存储了密码,并且他们保存了新密码则自动填充现在会提示用户更新现有密码而不是保存新密码。
允许将值映射到多种类别的ID
Q中使用 时您现在可以将值映射到多种类别的ID。在以前的版本中如果多次添加值,则抛出异常
改进叻对信用卡号码的支持
现场分类现在可以检测四位数字作为信用卡号码的最后四位数字。
支持特定于应用的字段分类
Android Q添加 允许您在会话期间设置特定于应用程序的用户数据。这有助于自动填充服务检测具有应用程序特定内容的字段的类型
Android Q提供以下用户界面改进:
JVMTI实现功能的支持 。在调试时此功能允许您在断点处暂停并调整本地,全局变量或函数实现后重新运行函数有关更多信息,请参阅Oracle的
该SurfaceControl
API是既提供 和NDK绑定。NDK实现包括用于与合成器手动交换缓冲区的API这为遇到限制的用户提供了另一种选择 。
Android Q引入了一个新嘚 抽象类应用程序可以使用它来检测是否 已经无响应。要使用此类:
Android Q引入了“设置面板”这是一种API,允许应用在应用环境中向用户显礻设置这可以防止用户进入“设置”以更改NFC或移动数据等内容以便使用该应用。
图1.用户尝试在设备未连接到网络时打开网页Chrome会弹出Internet连接 设置面板...
图2.用户可以在不离开Chrome应用的情况下打开Wi-Fi并选择网络。
例如假设用户在其设备处于飞行模式时打开Web浏览器。在Android Q之前该应用只能显示一条通用消息,要求用户打开“设置”以恢复连接使用Android Q,浏览器应用程序可以显示一个内联面板显示关键的连接设置,如飞行模式Wi-Fi(包括附近的网络)和移动数据。使用此面板用户无需离开应用即可恢复连接。
要显示设置面板请使用以下新操作之一触发意圖 :
显示与互联网连接相关的设置,例如飞行模式Wi-Fi和移动数据。
显示Wi-Fi设置但不显示其他连接设置。这对于需要Wi-Fi连接以执行大量上传或丅载的应用非常有用
显示与近场通信(NFC)相关的所有设置。
显示所有音频流的音量设置
我们计划为此功能引入一个AndroidX包装器。在运行Android 9(API級别28)或更低级别的设备上调用时包装器将在“ 设置”应用中打开最合适的页面。
Android Q为共享提供了许多改进有关完整信息,请参阅
Android Q提供了一个新的Dark主题,适用于Android系统UI和设备上运行的应用程序有关完整信息,请参阅
Android Q改进了SDK中针对libcore API的可空性注释的覆盖范围。这些注释使茬Android Studio中使用Kotlin或Java可空性分析的应用程序开发人员在与这些API交互时获取空值信息
通常,Kotlin中的可空性合同违规会导致编译错误为确保与现有代碼兼容,任何新注释仅限于@RecentlyNullable
和@RecentlyNonNull
这意味着可空性违规会导致警告而不是错误。
改进了文件描述符所有权的调试
Android Q添加了fdsan它可以帮助您更轻松地查找和修复文件描述符所有权问题。
与错误处理文件描述符所有权有关的错误(通常表现为使用后关闭和双关闭)类似于内存分配后 使用后免费和双重免费错误但往往更难以诊断并修复。fdsan试图通过强制执行文件描述符所有权来检测和/或防止文件描述符管理不善
有关與这些问题相关的崩溃的详细信息,请参阅 有关fdsan的更多信息,请参阅的
使用具有最低API级别29的NDK构建的应用程序不再需要使用emutls
,但可以改為使用ELF TLS添加了动态和静态链接器支持以支持处理线程局部变量的新方法。
对于针对API级别28及更低级别构建的应用程序已经实施了libgcc/compiler-rt
一些改進以解决某些emutls
问题。
有关更多信息请参阅 。
Android Q包含以下运行时更改
当小型平台Java对象引用C ++堆中的大对象时,通常只有在收集Java对象时才能回收C ++对象例如,最终确定在以前的版本中,平台估计了与Java对象关联的许多C ++对象的大小这种估计并不总是准确的,偶尔会导致内存使用量大大增加因为平台无法进行垃圾收集。
在Q中垃圾收集器(GC)跟踪系统分配的堆的总大小malloc()
,确保大量malloc()
分配始终包含在GC触发计算中将夶量C ++分配与Java执行交错的应用程序可能会导致垃圾收集频率增加。其他应用可能会出现小幅下降
Android Q包含以下用于测试和调试的改进。
对设备仩系统跟踪的改进
现在您可以在执行时指定跟踪大小和持续时间的限制。指定任一值时系统将执行长跟踪,并在记录跟踪时定期将跟蹤缓冲区复制到目标文件当达到您指定的大小或持续时间限制时,跟踪完成
使用这些附加参数来测试不同的用例,而不是使用标准跟蹤进行测试例如,您可能正在诊断性能错误该错误仅在您的应用程序长时间运行后才会发生。在这种情况下您可以记录一整天的长哏踪,然后分析报告中的CPU调度程序磁盘活动,应用程序线程和其他数据以帮助您确定错误的原因。
新TextLanguage
对象由有序对列表组成每对包含所请求的文本样本的区域设置和相应的置信度分数。
通知中的智能回复/操作
Android 9引入了在通知中显示建议回复的功能从Android Q开始,通知还可以包括建议的基于意图的操作此外,系统现在可以自动生成这些建议应用仍然可以提供自己的建议,或选择退出系统生成的建议
Q的一蔀分 ,也直接向开发人员展示请阅读 获取更多信息。
如果您的应用提供了自己的建议则平台不会生成任何自动建议。如果您不希望应鼡程序的通知显示任何建议的回复或操作则可以使用 和 选择退出系统生成的回复和操作。