如何有意义地检测低规格移动设备?

2022-09-02 01:56:14

现在我只知道Scientiamobile的WURFL和其他一些。这些库或数据库告诉你很多关于设备的事情,但它们都不能清楚地表明你不应该使用CSS过渡或其他类型的动画,因为即使设备支持它,这些功能也会顺利运行,这是我在构建移动Web应用程序时主要关心的问题。

使用“WURF”数据库在技术上是否可以沿这个方向对设备进行“分类”?我应该使用哪些设备功能来“分组”设备,使其在图形处理能力方面“快速”?

最后,我只需要从1-5对设备的评级来决定我可以使用哪些gfx操作。

好吧,任何想法都是受欢迎的。事实证明,这是真正的头脑,互联网上的研究除了大量关于设备盖的数据外,没有带来任何有用的东西。

Update-1 :我刚刚收到了ScientiaMobile的回应:“我们一直在考虑某种形式的Javascript性能指数(可能基于现有的基准测试之一),这可能会给出一些迹象,但我们还没有达到这一点。问题很复杂。

更新2:我们在移动Web应用程序中发现的最大瓶颈

  1. 动画功率
  2. PNG 透明度
  3. 文本和方框阴影
  4. 图像大小调整

对我们来说,它真的足以弄清楚我们需要禁用这些功能,因为它们可以使任何应用程序屈服。可能还有其他方法。

谢谢。


答案 1

不幸的是,我不认为今天一般情况下这是不可能的。

如果您只对有限数量的设备感兴趣,当然可以测试每个设备,并通过用户代理或基于JavaScript的检测专门针对这些设备。

在厚应用程序的上下文中(例如,您使用像Apache Cordova这样的东西“包装”您的网站),可以提供对某些设备内部的JavaScript访问(例如,总内存量,可用内存量,处理器速度),但除此之外,此信息无法从浏览器中获得。正如你所暗示的那样,访问这种类型的设备信息可能仍然是不够的(例如,看似“高规格”的设备表现不佳)。

Modernizr这样的JavaScript功能检测库可以回答用户当前的浏览器是否支持诸如box-shadow和text-shadow之类的东西,但不提供有关支持的功能的渲染效果速度的信息。

同样,来自Browserscope和相关项目ringmark的数据集(有点像WURFL的JavaScript类似物)通过众包基准测试(例如,iPhone是否支持CSS3转换?)在每个浏览器版本的基础上回答了这些浏览器支持问题,对于一般情况,这是必要的。您需要对所讨论的各种功能运行基准测试并评估实时性能。但是,即使这样也有其局限性:

  • 由于速度的必要条件(可用内存,处理器,电池,网络连接等)随着移动用户四处移动,接听电话,更改硬件设置,启动后台应用程序等而不断变化,因此基准测试的结果可能是不可靠/不可重复的。
  • 基准测试需要时间,并且总是会增加(希望不会注意到)延迟。
  • 根据功能的不同,基准测试可能不切实际。
  • 与基准测试中的单独功能相比,功能在组合(例如,用阴影对透明 PNG 进行动画处理)或比例(例如,页面上的每个图像都在制作动画)方面的行为可能不同。
  • 如果您依赖基准测试数据集而不是执行自己的实时基准测试,则数据集的样本大小、范围和年龄会极大地限制其实用性。

最后一点是,我甚至没有谈到的是,性能是相当主观的。假设以某种方式可以评估/预测动画的速度。如果动画将以 15 fps 的速度运行,用户是否应看到该动画?那么 5 帧/秒呢?谁能成为最终的仲裁者,决定给定功能是否表现良好的阈值?

我今天能提供的最好的建议是暂时减少(或消除)您对麻烦功能的依赖。建议回到使用具有预合成阴影的图像或在没有CSS3的情况下制作背景渐变的“旧方法”似乎很糟糕,但归根结底,用户体验应该优先于使用闪亮的新技术。许多移动设备根本不存在,检测方法也没有。如果您必须使用这些功能,也许可以考虑一种简单但不显眼的方式让用户选择加入/选择退出,例如Gmail的“标准”与“基本HTML”视图选项,或者考虑自动选择加入已知良好的浏览器。


答案 2

我不能添加比'user113215'已经说过的更多。它也不是对实际问题的答案,而是对实际问题的答案:

我确实对一些用户进行了实验,我们使用一个简单的欢迎弹出菜单,要求用户关闭阴影和动画等特殊效果。大多数测试用户确实欣赏这种选择,并清楚地了解这种菜单的手段。我们确实集成了这个更高级的功能,并结合了用于自动预选GFX效果的隐藏基准。

谢谢。g