2013-04-10 68 views
20

现在我只知道Scientiamobile的WURFL和其他一些。这些库或数据库告诉你很多有关设备的信息,但是他们都不能清楚地表明你不应该使用CSS转换或其他类型的动画,因为即使设备支持它,它也是一个完全不同的故事,将运行顺利,这是我建立移动网络应用程序时的主要关注点。如何有意义地检测低规格移动设备?

在技术上可以使用'WURF'数据库在这个方向对设备进行分类吗?我应该使用哪种设备功能来将设备按照图形功率“快速”分组?

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

好吧,任何想法都是值得欢迎的。事实证明,这是真正的聪明人,除了大量有关设备上限的数据之外,互联网上的研究没有提供任何有用的信息。

更新-1:我刚刚从ScientiaMobile的回应:“我们一直与某种形式的JavaScript性能指标(可能是基于现有基准之一)的想法打转转,可以给一些提示那个,但我们还没有,问题很复杂。“

更新-2:我们在移动Web应用

  1. 动画功率
  2. PNG透明度
  3. 文本发现的最大瓶颈和框阴影
  4. 图像缩放

对我们来说,确实需要禁用这些设备才是真正的理由功能,因为他们可以带来任何应用程序的膝盖。可能还有其他方法。

谢谢。

+2

这是非常有趣的,并没有真正被任何人强调,只要快速谷歌搜索显示。只是一个疯狂的想法:你可以挂钩到'animationend'事件,你可以尝试设置一个小基准:在一个固定的时间(比如500msecs)上执行一个css转换(在一个不可见的层上),并保持一个定时器时间。然后,绑定到'animationend'事件,检查初始css转换时间是否与测量的执行时间(计时器)大致相同......? – 2013-04-10 09:23:30

+0

我同意,隐藏的基准可以确定动画的力量,或多或少。另一大瓶颈是PNG透明度。我看到Android设备瘫痪并且没有透明度,它的表现要快得多。 – xamiro 2013-04-10 09:28:11

+0

你能告诉一些设备CSS转换工作顺利吗?有些CSS转换工作,但不能流畅运行?在这里举个例子会很高兴。此外,您是针对几个指定的设备,还是您想要一个解决方案,以便它适用于“所有”设备? – Uooo 2013-04-10 09:33:58

回答

9

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

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

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

的JavaScript像Modernizr特征检测库,可以回答一些诸如箱阴影和文字阴影是否由用户当前浏览器的支持,但没有提供有关如何如何迅速支持的功能将被渲染。

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

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

最后一点是,我没有解决的是,事实上,性能是主观。说它有可能评估/预测动画的速度。如果动画以15 fps运行,用户是否应该看到动画?什么5 fps?谁能成为最终的仲裁者,决定给定功能是否足够好地执行?

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

+0

嗨,看起来你做了你的功课:-)我倾向于给你赏金,但我需要首先检查事实。期待我在2天后回来。谢谢你! – xamiro 2013-04-16 08:10:02

0

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

但是,如果你真的想要一个基于web应用性能的基准。您可以使用stats.js来监控统计信息的变化,并且有一个基准,可以让您建议客户端在运行时激活或禁用任何类型的效果。这种方法甚至可以与大多数Javascript库一起工作,比如jquery。但是这需要一段时间才能获得足够的数据,然后才能应用更改,并且统计信息可能与设备状态(如内存使用情况,并发应用程序等)有所不同。

2

我无法添加远远多于'user113215 '已经说过了。此外它不是实际问题的答案,而是实际问题的答案,而是实际问题的答案:

我做了一些用户的实验,我们使用了一个简单的欢迎弹出菜单,要求用户关闭特殊效果,如阴影和动画。大多数测试用户确实很喜欢这种选择,并且清楚地理解了这种菜单的手段。我们确实整合了现在更为先进的功能,并与GFX效果的自动预选隐藏基准相结合。

谢谢。 g