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

时间:2013-04-10 09:04:21

标签: java javascript html mobile

现在我只知道Scientiamobile的WURFL和其他一些人。这些库或数据库告诉你很多关于设备的事情,但没有一个能清楚地表明你不应该使用CSS过渡或其他类型的动画,因为即使设备支持它,它的完全不同的故事,那些功能这将是我在构建移动网络应用程序时的主要关注点。

技术上是否可以使用'WURF'数据库在这个方向“分类”设备?在图形功率方面,我应该使用哪些设备功能将设备“分组”为“快速”?

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

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

Update-1 :我刚收到ScientiaMobile的回复:“我们一直在尝试某种形式的Javascript性能指标(可能基于现有的基准测试)之一给出一些指示,但我们还没有。问题很复杂。“

更新-2 :我们在移动网络应用中发现的最大瓶颈

  1. 动力
  2. PNG透明度
  3. 文字和方框阴影
  4. 图片大小调整
  5. 对于我们来说,它确实足以弄清楚我们需要禁用这些功能,因为它们可以让任何应用程序瘫痪。可能还有其他方法。

    谢谢。

3 个答案:

答案 0 :(得分:10)

不幸的是,我认为今天的情况并非如此。

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

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

Modernizr这样的JavaScript功能检测库可以回答用户当前浏览器是否支持支持支持,但不提供有关的信息将如何快速支持的功能呈现。

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

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

最后一点是,我甚至没有解决的问题是表现相当主观。假设以某种方式可以评估/预测动画的速度。如果动画将以15 fps运行,用户是否应该看到该动画? 5 fps怎么样?谁成为决定某个特定功能是否足够的阈值的最终仲裁者?

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

答案 1 :(得分:2)

我不能添加比'user113215'更多的内容。它也不是实际问题的答案,而是实际问题:

我尝试了一些用户,我们使用了一个简单的欢迎弹出菜单,要求用户关闭特殊效果,如阴影和动画。大多数测试用户都很欣赏这种选择,并清楚地理解了这种菜单的方法。我们现在将此更高级整合,并与用于自动预选GFX效果的隐藏基准相结合。

谢谢。 克

答案 2 :(得分:0)

简而言之,没有。我们如何定义动画和图形的平滑度完全取决于FPS(每秒帧数)。在这个问题中,我们讨论的是“web-app”,它们在客户端使用HTML和JS。由于客户端都没有为程序提供通过HTML或JS获取FPS的接口,因此无法判断客户端是否平滑。

但是,如果你真的想要一个关于web-app性能的基准测试。您可以使用stats.js来监控统计信息的更改,并为您建议客户端激活或禁用对运行时的任何影响。这种方法甚至可以与大多数Javascript库的FX一起使用,例如jquery。但是,在应用更改之前,您需要一段时间才能获得足够的数据,并且统计信息可能与设备状态不同,例如内存使用情况,并发应用程序等。