PhoneGap 1.4包装Sencha Touch 2.X – 性能呢?

我正在构build一个多平台的平板电脑应用程序,使用它的webview包装它与Phonegap 1.4,然后我用Sencha Touch 2框架工作我的魔法。 通过多平台,我的意思是iOS 5.X +和Android 3.0+(现在)。

这个应用程序工作到目前为止,其所有function都在两个系统上工作,但…在Android平板电脑(三星GalaxyTab),它真的很慢。 发生了什么? 我可以做些什么,或者它只是Android的限制吗?

谢谢

Ricardo Perre: http ://edgecodetechology.blogspot.pt/


****编辑****(我试图让这个post有用的sencha社区)

像许多其他的JavaScript框架,Sencha Touch并不是JavaScript本身的最好的例子。

那么为什么使用Sencha Touch

  • 在我的情况下: 多平台 (iOS,Android,Windows Phone,黑莓,Windows,Mac OSX,Linux。共享80-90%的代码)

Mitigating performance issues due to lack of visual pre-process in Android systems:

  1. CSS3沉重的视觉过程:

    • 避免渐变
    • 避免阴影
    • 避免转换和animation
  2. 良好的MVC做法:

    • 不要使用更多的意见,你真的显示
    • 预渲染/预先数据提取尽可能避免渲染和数据处理同时进行
  3. 对于任何滚动视图,应在Android上禁用超滚动。 我已经在Android设备上testing了许多Sencha Touch 2应用程序,由于延迟和滞后,过卷会导致严重不愉快的体验。 (在Galaxy Tab,Nexus S和一些HTCs上testing)Thiem Nguyen(我一直在挖掘你的post,抱歉老兄:P)

Solutions Collecting From Web of "PhoneGap 1.4包装Sencha Touch 2.X – 性能呢?"

同样在这里。 我在三星GalaxyTab上testing了很多Sencha Touch 2应用程序,性能非常糟糕。 有一个事实(这可能是实际原因的一部分),iOS在渲染之前做了很多预处理和计算,使用户的外观看起来更平滑,而Android往往在移动中同时呈现和处理。

一般来说,可以这样说,对于build立在JavaScript上的每个跨平台的移动应用程序,如Sencha Touch,iOS的性能明显优于Android。 然而,Sencha Touch开发团队正在尽力改善这一点,希望在下一个版本中会更好。 你可以看到这篇关于iOS和Android设备性能比较的文章。

http://www.sencha.com/blog/sencha-touch-2-developer-preview/

PS:虽然这与操作系统的限制有很大关系,但您也可以优化您的应用程序,使其在Android设备上performance更出色。 根据我的经验,最好的做法是:

  • 不要使用CSS3太多。
  • 保持尽可能最小的DOM。

希望能帮助到你。

我不是一个phoneGap或Sencha的开发者,但我试图跟上浏览器的性能和演进。

你的应用程序有很多抽象层(sencha touch,phonegap,android,webkit,fffuuu),可能很难理解性能问题。

至于我得到phonegapdevise,它并没有embedded任何webkit的实现,它(在android上)是利用android.webkit.WebView。 我发现很多人抱怨webview在android webkit浏览器本身上的performance如何糟糕。 在这里可能很难提高,因为你使用phonegap,搞乱android sdk可能会让你失去可移植性,如果这对你很重要。

我在手机上看到的性能问题不仅取决于硬件,还取决于操作系统的浏览器实现。

如果你想调整性能,那么你可以改善你的js / css代码。 这可能很简单,因为在js中cachingDOM节点(DOM查询很慢),保持DOM最小或者可能更困难,因为由于phonegap针对不同的浏览器引擎实现,所以您可能需要将代码定位到这些浏览器提高性能。

我不太确定问题是否与操作系统直接相关,就像该应用程序在Android,iOS等上运行一样

如果您在像Samsumg Galaxy这样的中低端硬件设备上testingSencha Touch 2 Kitchen Sink示例,您将遇到性能低下的问题。

不过,如果你转向更好的硬件设备,比如HTC Desire 2(更接近于iPhone 4S),你会发现性能变得更好。

我不认为安卓与Sencha Touch 2在性能上与iOS相比有限制。 我只是觉得有些设备比其他设备更好(iOS总是运行在高级性能设备,iPhone / iPad上)。

而对于我们的苦难,人们往往拥有更低的价格和硬件能力。

我有一些基于SenchaTouch的应用程序的性能的基本问题。 请参阅LinkedLN团队的这篇文章,了解他们如何通过手动编码DOM操作来改善HTML5应用程序的性能:

http://engineering.linkedin.com/linkedin-ipad-5-techniques-smooth-infinite-scrolling-html5

在这篇文章的背景下,我看到Sencha Touch的两个问题:

  1. Sencha Touch通过将JavaScript对象转换为Dom节点并将它们添加到Dom树来构build其UI。 Chrome工具将显示它最终将Dom树和其他DOM元素的数量相对较多。 这不会对性能产生不利影响。

  2. Sencha UI中的大多数Dom节点都是由Sencha API代码生成的,而不是从标记生成的。 如果我们编写代码来直接操纵这些Dom元素,我们可以确定它不会产生任何副作用吗?