• 作者:老汪软件技巧
  • 发表时间:2024-12-27 17:06
  • 浏览量:

Android 16增加了震感API,能让应用定义震感效果的振幅和频率的曲线,同时屏蔽设备的差异。

性能和电池

Android 16提供了新的API以帮助收集应用的洞察。

系统触发的分析

添加的ProfilingManager能让应用请求分析数据集。然而,这个分析必须由应用来发起,一些像启动过程以及ANR就很抓取得到(因为应用必须要先正常启动起来后,才能调用ProfilingManager去获取分析数据)。

为了解决这个问题,Android 16在ProfilingManager中增加了系统触发的分析数据。应用可以注册感兴趣的特定场景的trace,诸如冷起动或者ANR,系统会替应用开启和停止trace。trace收集完毕后,结果会传到应用的data目录。

ApplicationStartInfo中增加Start component

ApplicationStateInfo是在Android 15增加的,让应用能够看到进程启动原因,启动类型,启动时间等一系列诊断数据。Android 16增加了方法getStartComponent以辨识哪种组件类型触发的启动,这对于优化应用启动过程将会非常有帮助。

更好的(后台)任务反查

API 能返回任何处于待处理的原因。当然,一个任务可能由于很多种原因待处理。

在Android 16中,增加了一个新的API ,用以返回任务处于待处理的多个原因,比如缘于开发者设置了显性的限制或者系统设置的隐性限制。

还增加了一个API ,用以返回最近的限制变更列表。

推荐使用这些API来调试为何后台任务没被执行,尤其是当看到特定任务的成功率降低时,或者特定任务完成有延迟时。例如,在后台更新桌面小部件时失败或者预先拉取任务在应用启动前失败等等。

这也能够更好的帮助你明白因为系统定义的限制还是因为显性的限制而导致特定的任务未执行完成。

自适应刷新频率

Android 15引入的自适应刷新频率(Adaptive refresh rate ARR)通过离散化的VSync步长能够让屏幕刷新频率适配内容频率。这会降低功耗同时消除潜在的掉帧。

Android 16增加了方法和方法以及,让应用容易利用ARR。Jetpack中的很多组件在内部实现上已经利用ARR以增强平滑的滑动,详细的可参见了此文章。

连接

Android 16增加了对WiFi位置安全性的支持,通过这个特性。

媒体照片选择增强

照片选择器(photo picker)提供了一个安全且内置的方式让应用在用户授权的情况下从存储中选择媒体文件。

Android 16带来的增强点有:

隐私健康连接更新

开发者Preview版本中的健康连接增加了ACTIVITY_INTENSITY(活动强度),依据世界健康组织(WHO)给出的指南中定义的一个新的数据类型。每一条记录将必须包括开始时间,结束时间以及活动强度。

隐私沙盒

想知道对方的位置在哪怎么查询__想知道的英文

Android 16集成了Android隐私沙盒的最新版本,这是一项为保护用户隐私而持续进行的工作。可以查看网站内容以了解更多。

行为变更

比起新的API,Android 16带来的行为变更更值得我们关注,因为这会直接影响所有应用,无论targetSdkVersion是否是Baklava。

核心功能JobScheduler配额优化

从Android 16开始,以基于以下因素来调整常规任务和加急任务的运行时配额:

这些变动将会影响由WorkManager,JobScheduler和DownloadManager调度的任务。如果要调试为何一个任务被终止了,建议通过调用来打印日志。

也可以通过Android 16新增加的API 来了解为何任务未执行。

另外,在Android 16上还可以通过adb命令强制调整运行时任务配额,以方便测试:

# 取消头部状态配额限制
adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_TOP_STARTED_JOBS 
# 设置等待区
adb shell am set-standby-bucket APP_PACKAGE_NAME active|working_set|frequent|rare|restricted
# 获取所处的等待区状态
adb shell am get-standby-bucket APP_PACKAGE_NAME

用户体验和系统UI

Android 16废弃了无障碍公告(announcement),一种使用或者派发引起的无障碍事件。这些公告会造成Talkback和屏幕发声的混乱,容易被滥用,一些可行的替换方案有:

可以以了解废弃announceForAccessibility的细节以及推荐的替代方案。

适配建议

到目前为止,我们能了解到的Android 16的变化就这么多,总的来看增量变化并不多,新的API 都是一些小的细节上的增强;行为的变更也很少很少,只涉及后台任务和无障碍。新的API不会影响现有的应用,行为变更也不多,可以说对于绝大多数应用来说影响甚微。

现在仍是开发者Preview阶段,只有亲儿子Pixel系列会收到OTA版本,我们了解一下就可以了。即使是应用可能会受到行为变更的影响,也不用着急,建议再等2~3个月,等到有更多的厂商发出Beta版本了,并且API也稳定了时再做适配也不迟。

References


上一条查看详情 +C# 实现多线程启动停止暂停继续
下一条 查看详情 +没有了