Android 17 已达到 Beta 版 4,这是此发布周期的最后一个预定 Beta 版,也是应用兼容性和平台稳定性的重要里程碑。无论您是想微调应用的用户体验、确保实现流畅的全面屏渲染,还是想利用最新的 API,Beta 4 都能提供您所需的近乎最终的测试环境。
准备好您的应用、库、工具和游戏引擎!
如果您开发 Android SDK、库、工具或游戏引擎,请务必立即准备好所有必要的更新,以免下游应用和游戏开发者因兼容性问题而受阻,并允许他们以最新的 SDK 功能为目标。如果需要更新才能完全支持 Android 17,请告知您的下游开发者。
测试包括使用 Google Play 或其他方式将您的正式版应用或使用您的库或引擎的测试应用安装到运行 Android 17 Beta 4 的设备或模拟器上。完成应用的所有流程,并查找功能或界面问题。每个 Android 版本都包含一些平台变更,旨在提升隐私保护、安全性和整体用户体验;请查看对在和以 Android 17 为目标平台的应用产生影响的行为变更,以便确定测试重点,包括以下变更:
- 大屏幕上的尺寸调整:以 Android 17 为目标平台后,您将无法再选择不保持大屏幕上的屏幕方向、尺寸调整和宽高比限制 。
- 动态代码加载:如果您的应用以 Android 17 或更高版本为目标平台,则 Android 14 中引入的更安全的动态代码加载 (DCL) 保护机制现在也适用于原生库。使用 System.load() 加载的所有原生文件都必须标记为只读。否则,系统会抛出 UnsatisfiedLinkError。
- 默认启用 CT:证书透明度 (CT) 默认处于启用状态。(在 Android 16 上,CT 可用,但应用必须 选择启用。)
- 本地网络保护:以 Android 17 或更高版本为目标平台的应用默认情况下会被阻止访问本地网络。尽可能改用可保护隐私的选择器,并使用新的 ACCESS_LOCAL_NETWORK 权限进行广泛的持续访问。
- 后台音频安全加固:从 Android 17 开始,音频框架会强制执行后台音频交互限制,包括音频播放、音频焦点请求和音量更改 API。根据您的反馈,自 Beta 版 2 以来,我们进行了一些更改,包括在强制执行使用时 FGS 时添加了 targetSDK 门控,以及免除了闹钟音频。如需了解详情,请参阅更新后的指南。
应用内存限制
Android 将根据设备的总 RAM 引入应用内存限制,以便为应用和 Android 用户打造更稳定、更确定的环境。在 Android 17 中,设置的限制较为保守,旨在建立系统基准,以便在出现极端内存泄漏和其他异常情况之前,针对这些情况进行处理,避免它们导致系统范围的不稳定性,从而导致界面卡顿、耗电过快和应用被终止。虽然我们预计此变化对绝大多数应用会话的影响微乎其微,但我们建议您遵循以下内存最佳实践,包括建立内存基准。
在当前实现中,如果您的应用受到影响,ApplicationExitInfo 中的 getDescription 将包含字符串“MemoryLimiter”。您还可以将基于触发器的性能剖析与 TRIGGER_TYPE_ANOMALY 结合使用,以获取在达到内存限制时收集的堆转储。
为了帮助您查找内存泄漏,Android Studio Panda 直接在 Android Studio 分析器中添加了 LeakCanary 集成,作为 IDE 中的专用任务,并与您的源代码完全集成。
更小的内存占用可直接转化为更流畅的性能、更长的电池续航时间,以及在所有设备规格上都能实现的优质体验。让我们携手共创 Android 生态系统更快、更可靠的未来!
应用异常的分析触发器
Android 引入了一项设备端异常检测服务,用于监控资源密集型行为和潜在的兼容性回归。此服务与 ProfilingManager 集成,可让您的应用接收由特定系统检测到的事件触发的分析工件。
使用 TRIGGER_TYPE_ANOMALY 触发器可检测系统性能问题,例如过多的 binder 调用和过多的内存用量。当应用超出操作系统定义的内存限制时,异常触发器可让开发者接收特定于应用的堆转储,以帮助识别和修复内存问题。此外,对于过多的 Binder 垃圾信息,异常触发器会提供有关 Binder 事务的堆栈抽样分析报告。
此 API 回调发生在任何系统强制执行之前。例如,它可以帮助开发者在应用因超出内存限制而被系统终止之前收集调试数据。如需了解如何使用触发器,请参阅有关基于触发器的性能剖析的文档。
val profilingManager = applicationContext.getSystemService(ProfilingManager::class.java) val triggers = ArrayList<ProfilingTrigger>() triggers.add(ProfilingTrigger.Builder( ProfilingTrigger.TRIGGER_TYPE_ANOMALY)) val mainExecutor: Executor = Executors.newSingleThreadExecutor() val resultCallback = Consumer<ProfilingResult> { profilingResult -> if (profilingResult.errorCode != ProfilingResult.ERROR_NONE) { // upload profile result to server for further analysis setupProfileUploadWorker(profilingResult.resultFilePath) } profilingManager.registerForAllProfilingResults(mainExecutor, resultCallback) profilingManager.addProfilingTriggers(triggers) }
Android 密钥库中的后量子加密 (PQC)
Android Keystore 添加了对 NIST 标准化 ML-DSA(基于模块网格的数字签名算法)的支持。在支持的设备上,您可以生成 ML-DSA 密钥,并使用这些密钥在设备的安全硬件中完全生成量子安全签名。Android Keystore 通过标准 Java 加密架构 API(即 KeyPairGenerator、KeyFactory 和 Signature)公开 ML-DSA-65 和 ML-DSA-87 算法变体。如需了解详情,请参阅我们的开发者文档。
KeyPairGenerator generator = KeyPairGenerator.getInstance( “ML-DSA-65”, "AndroidKeyStore"); generator.initialize( new KeyGenParameterSpec.Builder( “my-key-alias”, KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY) .build()); KeyPair keyPair = generator.generateKeyPair();
开始使用 Android 17
您可以注册任何受支持的 Pixel 设备,以通过无线下载方式获取此 Android Beta 版更新以及未来的更新。如果您没有 Pixel 设备,可以在 Android Studio 中使用 Android 模拟器搭配 64 位系统映像。
如果您目前加入了 Android Beta 版计划,系统会提供无线下载 (OTA) 更新,将您更新到 Beta 4。
您可以继续在反馈页面上报告问题和提交功能请求。我们越早收到您的反馈,在最终版本中采纳的意见就越多。
为了获得 Android 17 的最佳开发体验,我们建议您使用最新预览版的 Android Studio (Panda)。设置完成后,您应执行以下操作:
- 使用新版 SDK 进行编译,在 CI 环境中进行测试,并通过反馈页面在我们的跟踪器中报告任何问题。
- 测试当前应用的兼容性,了解应用是否会受到 Android 17 中变更的影响,并将应用安装到搭载 Android 17 的设备或模拟器上,然后进行广泛测试。
在整个 Android 17 发布周期内,我们会定期更新预览版/Beta 版系统映像和 SDK。安装 Beta 版 build 后,您将自动通过无线下载方式获得所有后续预览版和 Beta 版的未来更新。
如需了解完整信息,请访问 Android 17 开发者网站。
加入对话
您的反馈仍然是我们最宝贵的财富。无论您是 Canary 渠道的抢先体验者,还是 Beta 4 的应用开发者,都可以考虑加入我们的社区并提交反馈。我们听到了您的心声。
继续阅读
-
产品资讯
Android Studio Panda 4 现已是稳定版,可在生产环境中使用。此版本带来了规划模式、后续编辑预测等功能,让您能够比以往更轻松地构建高质量的 Android 应用。
Matt Dyor • 阅读用时:5 分钟
-
产品资讯
如果您是 Android 开发者,并希望在应用中实现创新的 AI 功能,那么我们最近推出的强大新更新将能满足您的需求。
Thomas Ezan • 阅读用时:3 分钟
-
产品资讯
为 Google Play 用户带来最安全、最值得信赖的使用体验。今天,我们将宣布推出一系列新的政策更新和账号转移功能,以提升用户隐私保护水平并保护您的商家免遭欺诈。
Bennet Manuel • 阅读用时:3 分钟
随时了解最新动态
每周通过电子邮件接收最新的 Android 开发洞见。