作者 | Diogo Carleto
译者 | 平川
策划 | Tina
Android 15 引入对 CTA-2075 音量标准的支持。该标准旨在确保不同类型的内容之间或设备之间音频响度级别一致,减少用户调整音量的次数,改善用户体验。它可以根据输出设备上的信息以及 ACC 音频内容中可用的元数据自动调整音频响度和动态范围压缩级别。
有一点需要注意的是,只有在 AAC 内容中提供了响度元数据时才能启用此功能。LoudnessCodecController.create (mSessionId);负责音频的自动更新:
// 包含 MPEG_4 或 MPEG_D 类型元数据的媒体文件val mediaCodec = ...val audioTrack = AudioTrack.Builder() .setSessionId(sessionId) .build()...// 创建新的响度控制器,将参数应用于 MediaCodetry {val lcController = LoudnessCodecController.create(mSessionId)// 开始将音频更新应用到每一个新增的 MediaCodec
屏幕录制检测允许应用检测它们是否正在被录制。该功能可以通过回调来执行。当应用执行敏感操作时,这项功能非常有用,它使开发人员可以通知用户他们的行为正在被记录。回调的注册方法如下:
val mCallback = Consumer { state ->if (state == SCREEN_RECORDING_STATE_VISIBLE) {// 我们正在被录制 } else {// 我们现在没有被录制 }}overridefunonStart() {super.onStart()val initialState = windowManager.addScreenRecordingCallback(mainExecutor, mCallback) mCallback.accept(initialState)}overridefunonStop() {super.onStop() windowManager.removeScreenRecordingCallback(mCallback)}
该版本扩展了卫星连接支持,其中包括增加 UI 元素,为用户提供一致的体验,并且支持 SMS、MMS 应用以及预装 RCS 应用使用卫星连接发送和接收消息。如果开发人员想要检测设备何时连接到了卫星,则可以使用ServiceState.isUsingNonTerrestrialNetwork()。在 Android 15+ 中,如果以 SDK 35 作为目标平台,那么应用将默认进入无边模式。开发人员无需调用Window.setDecorFitsSystemWindows(false)enableEdgeToEdge()来显示系统栏后面的内容。但是,谷歌建议在早期的 Android 版本上调用enableEdgeToEdge()。有一些 Material 3 可组合组件可以帮助开发人员处理 inset 并实现无边框应用。
(图片来自 Anroid 开发博客
为了使 Android 与 OpenJDK 17 LTS 保持一致,这个最新版本的操作系统对许多 Android 核心库做了更新。其中包括改进 NIO 缓冲区)、Streams 以及新增的 Math 和 StrictMath 方法。包java.util的更新涉及 SequencedCollection, SequencedMap 和 SequencedSet。此外,该版本还实现了一些安全方面的更新,如 X500PrivateCredential 和安全密钥更新。根据谷歌的说法,超过 10 亿运行 Android 12(API level 31)及更高版本的设备通过 Google Play 系统更新更新了这些 API。
Android 15 还引入了新的 SQLite API,使开发人员可以使用 SQLite 引擎的高级功能,解决应用中的性能问题。建议开发人员遵循 SQLite 性能最佳实践,特别是在处理大型数据库或运行对延迟敏感的查询时。以下是针对具体问题的一些建议:
  • 只读延迟事务:对于只读事务,使用 beginTransactionReadOnly() 和 beginTransactionWithListenerReadOnly(SQLiteTransactionListener) 发出只读 DEFERRED。
  • 行计数和 ID:要返回最新 SQL 语句插入 / 更新 / 删除的行数,使用 getLastChangedRowCount(),而 getTotalChangedRowCount() 返回当前连接上变化的行数,getLastInsertRowId() 返回当前连接上插入的最后一行的 rowid。
  • 原始语句:使用原始 SQlite 语句,绕过便捷包装器和它们可能造成的额外处理开销。在 Android 15 Developer Preview 2 中,PdfRenderer API 现在允许应用引入一些高级功能,如渲染受密码保护的文件、注解、表单编辑、通过复制进行搜索和选择等。此外,PdfRenderer移到了一个可以通过 Google Play 系统更新进行更新的模块,可以独立于平台发布更新。
用户可以通过任何受支持的 Pixel 设备或 Android Studio 中的 Android Emulator 系统镜像使用 Android 15 Beta。
要查看新特性和 API 的完整列表,请查看 Android 15 Beta 特性概述。
原文链接:
https://www.infoq.com/news/2024/04/android-15-beta/
声明:本文为 InfoQ 翻译,未经许可禁止转载。
今日好文推荐
继续阅读
阅读原文