我正在开发一个仅适用于高端设备的应用程序。它已经只支持 API 17+,但我注意到一些运行 API 17 的旧设备,我想排除这些设备。我的问题是:
过滤掉仍然运行相对较新 Android 版本的旧设备的最佳方法是什么?
我想避免在 Google Play 中手动排除特定设备。
根据屏幕密度进行过滤
我当然想做的一件事是根据屏幕密度进行过滤(我只想支持 hdpi 和更高版本)。我已经阅读了compatible-screens文章,但我不太喜欢那里提供的解决方案,因为:
- 根据文章:“你应该只在万不得已的情况下使用它,当应用程序绝对不能使用特定的屏幕配置时。”
- 我将在我的清单中获得大量组合列表(如果我支持 hdpi、xhdpi、xxhdpi 和 xxxhdpi 以及中等、大和 xlarge 的屏幕尺寸,我已经有 12 种组合)。
- 如果添加了新的屏幕密度(例如 xxxhdpi)或新的屏幕尺寸(例如 xxlarge)会怎样?为了支持这些,我必须在每次添加新存储桶时更新我的清单。
对我来说似乎很奇怪,我不能只在清单中的一行中指定我想支持 hdpi 和更高版本。
基于设备功能的过滤
我也考虑过过滤一些只有高端设备才有的功能,所以我阅读了使用功能文章。但是,似乎我只能过滤蓝牙、相机和 wi-fi 之类的东西,而不能过滤任何更能代表硬件加速等高端设备的东西。