繁体   English   中英

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

[英]How to detect low-spec mobile devices meaningfully?

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

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

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

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

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

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

  1. 动画力量
  2. PNG透明度
  3. 文字和框阴影
  4. 图像大小调整

对我们来说,它确实足以弄清楚我们需要禁用这些功能,因为它们可以让任何应用程序瘫痪。 可能还有其他方法。

谢谢。

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

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

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

Modernizr这样的JavaScript功能检测库可以回答用户当前浏览器是否支持 box-shadow和text-shadow等内容,但不提供有关支持的功能的呈现效果速度的信息。

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

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

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

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

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

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

谢谢。 G

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM