您有什么建议可以改善Android上的性能,甚至放弃Phonegap寻找更好的解决方案。或者是否可以强制Phonegap作为Chrome浏览器来运行。
感谢您的时间和帮助。
您在这里遇到的问题是Android浏览器不使用图形硬件加速。这意味着Sencha(以及其他HTML5库,如jQueryMobile、iScroll等)用于提供良好滚动性能的标准技巧,如CSS 3D变换,将导致您的列表以单独的层呈现,然后可以在硬件上进行转换,这些技巧在Android上无法实现。相反,列表滚动将完全在软件中执行,这将会很慢!
Chrome浏览器提供GPU加速功能。Android设备完全能够提供良好的HTML5体验,只是标准浏览器尚未充分利用GPU硬件。
除非您能强制您的最终用户使用Chrome(我怀疑),否则唯一的选择是降低用户体验,并为Android用户提供稍微简单的用户界面。
有关更多详细信息,请参见 "IMPROVING THE PERFORMANCE OF YOUR HTML5 APP"。
尝试在您的AndroidManifest.xml文件中设置此标志: android:hardwareAccelerated="true"
更新:现在我已经长时间使用ST2了,Android上的性能挑战是你必须接受的。有许多事情可以做来避免性能问题,例如减少侦听器和事件、保持DOM轻量化(低于2000节点)以及通常避免任何CSS3转换和效果(这些尤其在Android上表现不佳)
另一件需要考虑的事情是,与其使用内置WebView,不如使用CrossWalk浏览器并将其嵌入APK。
它会增加一点APK的大小(15-20MB),但它比内置的WebView表现更好,并为一个非常碎片化的平台带来稳定性和一致性。考虑到每个Android设备上的WebView都可能因设备、供应商和操作系统版本的不同而有所差异。CrossWalk将允许您在所有Android 4.0+设备上拥有完全相同的版本,并消除任何与设备或供应商相关的问题。mWebView.setLayerType(WebView.LAYER_TYPE_HARDWARE, null);
然而根据我的经验,这样做会在CSS渲染中引入一些伪像,这取决于设备和平台的变化。我没有找到具体原因,也不指望Google会解决它,因为在Android 4.4中,webview组件将被替换为更新更好的版本。
https://developers.google.com/chrome/mobile/docs/webview/overview