安卓设备上的JavaScript/HTML/CSS应用程序-速度非常慢

JavaScript/HTML/CSS applications on Android devices - extremely slow

本文关键字:应用程序 CSS 速度 非常 HTML JavaScript      更新时间:2023-09-26

我们正在制作一些JavaScript游戏。它们可以在iPhone、iPad和台式机上完美运行。最大的问题是安卓设备。我们拥有的所有带有Honeycomb OS 3.x的平板电脑(Samsung Tab 10.1、Motorola Xoom、Acer Iconia等)在执行JavaScript和渲染内容时速度都非常慢。它在2.x手机上更好,但仍远远落后于苹果设备…

我们尝试使用div元素以及HTML5画布的传统方法,但即使是简单的弹球示例也非常缓慢(如果您想测试它,请访问http://sie.mautilus.com/canvas)。

如果我们在Android的调试菜单中禁用启用OpenGL渲染,它会稍微好一点,但仍然不适用于广泛的受众,不说事实,普通用户不会这样做…

这使得基于JavaScript的用户界面,这是一个非常复杂的事件,在Android上完全不可用…

为什么在我的英特尔386机器上以MS-DOS运行的简单弹球在双核1 GHz Cortex-A9 CPU的高端平板电脑上无法使用?

另请参阅:
http://code.google.com/p/android/issues/detail?id=17353
http://groups.google.com/group/phonegap/browse_thread/thread/fc13b40165db8a00?pli=1a

谨致问候,STeN

你是对的,它在android设备上非常慢,我遇到了同样的问题,在互联网上搜索我只找到了同意我们的人。

我做了一些事情来加快速度(尽管质量较低)。我也只查看了HTC Sensation和三星galaxy标签10.1。我确实认为你需要为不同的手机使用不同的设置。

  1. 设置屏幕大小,这样我的手机就不会创建更大的画布,然后再次缩小
  2. 按因子2放大场景。这将把使用的像素减半,所以你实际上在全屏上有一个更小的画布
  3. 不要使用clearRect来清除整个画布,然后重新绘制所有内容。实际上,在你的弹跳球例子中去掉clearRect会显示出很大的改进。清除实际变化的区域(击球和球),然后重新绘制就足够了

从另一方面来说,我没有注意到安卓2和4的性能比3更快,但这是基于仅使用3台设备的测试,所以不是硬性统计数据。

我还读到在画布上使用translate3d会触发硬件渲染(如果可用),但我还没有检查/确认这一点。

一些可能对您有所帮助的代码:

<meta name="viewport" content="width=device-width, initial-scale=0.5, user-scalable=no"/>

$(gameEl).css('-webkit-transform', 'scale3d(2, 2, 0) translate3d(0, 0, 0)');
$(gameEl).css('-webkit-transform-origin', '0 0');
相关文章: