Android系统版本适配,一直是影响App上架Google Play非常重要的因素。素。
本篇是适配指南系列第四篇,Android 15废弃API。
注意:Android 15应用适配指南系列文章,均以小米14手机搭建Android 15为基准适配。
一、Android 15废弃API
1、弃用WebView中的WebSQL
WebSQL从Chrome中被移除,并且在Android WebView中弃用。推荐使用localStorage、sessionStorage、IndexedDB或者SQLite Wasm作为WebView内数据库的解决方案。
2、使用Spatializer代替Virtualizer
1.1、特性背景
Spatializer 类在 Android 12(API 级别 32)中首次添加,可让应用查询设备上声音空间化的功能和行为。在 Android 15 中,Google废弃了 Virtualizer 类。如果支持空间化,请改用AudioAttributes.Builder.setSpatializationBehavior 来描述您希望的内容播放方式。
1.2、适用范围
Android 15上废弃的API。
1.3、特性内容
- Virtualizer,API level 9中新增,API level VanillaIceCream 中废弃。
- AudioAttributes.Builder,API level 21中新增。
- Spatializer,API level 32中新增。
Virtualizer提供了音频效果处理的能力,特别是用于创建虚拟环绕声效果。这个类是android.media.audiofx包的一部分,通常用于增强音乐或其他音频内容的立体声效果,使听众感觉声音来自不同的方向,即便是使用普通的立体声耳机。
Spatializer 是 Android 提供的一个音频效果类,它允许开发者在音频播放中添加三维空间效果,使得声音给人的感觉好像是在真实世界中的某个位置发出的。这种效果特别有用于游戏和虚拟现实应用,可以提高用户的沉浸感。Spatializer 效果通过模拟声音的传播和反射,改变音频的频率和延迟,从而在听者的耳朵中重建声音源的位置感。这可能包括处理如回声、混响和其他因素,这些都是在现实世界中确定声音位置的线索。
Virtualizer 此类在 API 级别 VanillaIceCream 中已弃用。 使用Spatializer该类来查询平台在空间化(音频通道虚拟化的另一个名称)方面的功能,以及AudioAttributes.Builder.setSpatializationBehavior(int)在支持空间化时描述您希望如何播放内容的功能。
1.4、应用适配
使用Virtualizer,需要遵循以下步骤:
1、实例化Virtualizer对象:首先,你需要根据需要播放音频的音轨(AudioTrack)或媒体播放器(MediaPlayer)的音频会话ID来创建一个Virtualizer对象。
2、配置Virtualizer:通过调用setStrength()方法,你可以设置虚拟环绕效果的强度。有些设备可能不支持所有强度设置,因此最好是检查设备支持的范围。
3、启用Virtualizer:通过调用setEnabled(true)方法来启用虚拟效果。
4、使用完成后释放资源:使用完毕后,调用release()方法释放Virtualizer对象占用的资源。
// 获取AudioManager实例
val audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager
// 生成一个新的音频会话ID
val audioSessionId = audioManager.generateAudioSessionId()
// 创建一个Virtualizer实例
val virtualizer = Virtualizer(0, audioSessionId)
// 检查是否支持强度调整,并设置强度
if (virtualizer.strengthSupported) {
virtualizer.strength = 1000.toShort()
}
// 启用Virtualizer
virtualizer.enabled = true
// ... 使用Virtualizer
// 请确保在不再使用时释放Virtualizer资源
// virtualizer.release()
在 Android 设备上,Spatializer
效果是通过 android.media.audiofx.Spatializer
类提供的,该类是 AudioEffect
的子类。以下是该类的基本要素:
- 音频会话 ID:
Spatializer
需要与一个特定的音频会话关联,这个会话代表了一个音频流。音频会话 ID 通常来自MediaPlayer
、AudioTrack
或其他音频源。 - 空间化行为:可以设置空间化的行为。例如,可以设置为自动(
SPATIALIZER_BEHAVIOR_AUTO
),在这种模式下,空间化效果会根据内容和用户的听觉偏好自动应用。 - 可用性检查:在尝试设置之前,需要检查
Spatializer
是否在当前设备上可用。这可以通过调用isAvailable
方法来完成。 - 启用/禁用:调用
setEnabled(true)
或者直接设置enabled
属性来启用Spatializer
。如果需要关闭空间化效果,可以设置为false
。
注意事项:
- 性能影响:空间化处理可能会增加 CPU 负载,所以在性能受限的设备上使用时需要谨慎。
- 兼容性:并非所有 Android 设备都支持空间化,有些设备可能缺少必要的硬件或软件支持。
- 资源管理:确保及时释放
Spatializer
实例以避免资源泄漏。 - 用户体验:调整空间化效果以提供最佳用户体验,过度的或不恰当的空间化处理可能会导致用户感到不适。
二、结语
以上就是Android 15废弃API,这也是Android 15应用适配指南系列最终篇。
当然在App提交Google Play前,需要尽可能在多种不同 Android 版本的设备上进行充分测试,覆盖低版本到高版本,尽可能模拟用户的真实使用场景,检查应用在不同系统版本上的功能完整性、稳定性和兼容性等。
最后,希望Android 15应用适配指南对各位出海大佬们有所帮助,上架Google Play都能顺顺利利!