Android PhoneGap 1.4包装Sencha Touch 2.X-性能如何?
我正在用Phonegap 1.4构建一个多平台的平板电脑应用程序,只使用它的webview,然后我用Sencha Touch 2框架发挥我的魔力。说到多平台,我指的是iOS5.X+和安卓3.0+(目前) 到目前为止,这个应用程序运行得很好,它的所有功能都可以在两个系统上运行,但是。。。在安卓平板电脑(三星GalaxyTab)上,速度真的很慢。 发生了什么事?我能做点什么吗,或者这只是android的限制 谢谢 里卡多·佩雷:Android PhoneGap 1.4包装Sencha Touch 2.X-性能如何?,android,ios,performance,cordova,sencha-touch-2,Android,Ios,Performance,Cordova,Sencha Touch 2,我正在用Phonegap 1.4构建一个多平台的平板电脑应用程序,只使用它的webview,然后我用Sencha Touch 2框架发挥我的魔力。说到多平台,我指的是iOS5.X+和安卓3.0+(目前) 到目前为止,这个应用程序运行得很好,它的所有功能都可以在两个系统上运行,但是。。。在安卓平板电脑(三星GalaxyTab)上,速度真的很慢。 发生了什么事?我能做点什么吗,或者这只是android的限制 谢谢 里卡多·佩雷: ****编辑****(我想让这篇文章对sencha社区有所帮助) 与
****编辑****(我想让这篇文章对sencha社区有所帮助) 与许多其他Javascript框架一样,由于Javascript本身的原因,Sencha Touch并不是性能的最佳示例 那么为什么要使用Sencha Touch
- 在我的例子中:多平台(iOS、Android、Windows Phone、黑莓、Windows、Mac OSX、Linux。共享80-90%的代码)
缓解由于Android系统中缺少可视预处理而导致的性能问题:
- 避免梯度
- 避开阴影
- 避免变换和动画
- 不要使用更多的视图,而是实际显示
- 预渲染/预数据提取(如果可能),以避免同时进行渲染和数据处理
这里也一样。我已经在三星GalaxyTab上测试了很多Sencha Touch 2应用程序,性能非常糟糕。有一个事实(这可能是实际原因的一部分)是,iOS在渲染之前会进行许多预处理和计算,以使其看起来更平滑,而Android则倾向于在移动中同时渲染和处理 总的来说,可以说,对于每一个基于Javascript构建的跨平台移动应用程序,比如Sencha Touch,iOS的性能都明显优于Android。然而,SenchaTouch开发团队正在尽最大努力改进这一点,希望在下一版本中会更好。您可以看到这篇关于iOS和Android设备性能比较的文章 PS:虽然这与操作系统的限制有很大关系,但你也可以优化你的应用程序,使其在Android设备上运行得更好。根据我的经验,最佳做法是:
- 不要过度使用CSS3
- 尽可能减少DOM
希望能有所帮助。我不太确定这个问题是否与操作系统直接相关,就好像这个应用程序运行在Android、iOS等系统上一样 如果您在低到中等性能的硬件设备(如SamsumgGalaxy)上测试Sencha Touch 2厨房水槽示例,您将遇到低性能问题 然而,如果你转向更好的硬件设备,比如HTC Desire 2(更接近iPhone4S的产品),你会发现性能会更好 与iOS相比,我认为Android在Sencha Touch 2的性能方面没有限制。我只是觉得有些设备比其他设备好(iOS总是在高性能设备上运行,比如iPhone/iPad)
让我们感到痛苦的是,人们倾向于拥有价格较低且具有硬件能力的浏览器。我不是phoneGap或Sencha的开发者,但我努力跟上浏览器性能和发展的步伐 你的应用有太多的抽象层(sencha touch、phonegap、android、webkit、fffuuu),可能很难理解性能问题在哪里 就我得到的phonegap设计而言,它没有嵌入任何webkit实现,它(在android上)所做的就是使用android.webkit.WebView。我发现很多人抱怨webview的性能比android webkit浏览器差。 这里可能很难改进,因为您使用的是phonegap,如果这对您很重要,那么搞乱android sdk可能会使您失去可移植性 我认为phonegap的性能问题不仅取决于硬件,还取决于操作系统的浏览器实现
如果您想优化性能,那么您可以改进js/css代码。这可能很简单,比如在js中缓存DOM节点(DOM查询很慢),保持DOM最小,或者可能更难,因为phonegap针对不同的浏览器引擎实现,为了提高性能,您可能需要针对这些浏览器编写代码。关于基于SenchaTouch的应用程序的性能,我有几个基本问题。请参阅LinkedLN团队的这篇文章,了解他们如何通过手工编码DOM操作来提高HTML5应用程序的性能:- 在本文中,我看到了Sencha Touch的两个问题:-
谢谢你的回复。目前,我没有定制任何CSS,但最终我必须这样做。将DOM保持在最小值是什么意思?使用最少数量的组件?要减少HTML元素?是的,有点像删除不必要或不活跃的视图。例如,当您单击一个项目时,当前面板上有3个列表