簡體   English   中英

Sencha Touch 2 - Android性能

[英]Sencha Touch 2 - Android Performance

我們正在開發Sencha Touch 2應用程序,該應用程序利用Phonegap將其作為應用程序安裝並訪問設備的存儲。 這在iPad 2和iPad 3上運行得非常好。但是當我們嘗試在Android設備上運行應用程序時,性能非常慢。 減慢系統速度的主要因素是列表和輪播。 當我們嘗試通過Chrome瀏覽器測試相同的應用程序時,性能與iPad的性能相當。

你有什么建議我們可以做些什么來提高android的性能,甚至可能放棄Phonegap以獲得更好的效果。 或者,如果我們可以強制phonegap作為Chrome瀏覽器運行。

感謝您的時間和幫助。

你在這里遇到的問題是Android瀏覽器不使用圖形硬件加速。 這意味着Sencha(以及其他HTML5庫,如jQueryMobile,iScroll等......)用來提供良好的滾動性能的標准技巧,例如CSS 3D轉換,使您的列表在單獨的層中呈現,這可以然后在硬件上翻譯,將無法在Android上運行。 相反,列表滾動將完全在軟件中執行,這將是緩慢的!

然而,Chrome瀏覽器確實提供了GPU加速功能。 Android設備能夠提供良好的HTML5體驗,只是標准瀏覽器還沒有利用GPU硬件。

除非您可以強制最終用戶使用Chrome(我懷疑),否則唯一的選擇就是降低用戶體驗,並為Android用戶提供稍微簡單的用戶界面。

有關詳細信息,請參閱“提高HTML5應用程序的性能”

嘗試在AndroidManifest.xml中設置此標志:android:hardwareAccelerated =“true”

更新:現在與ST2合作的時間越來越長,Android上的性能挑戰只是你必須接受的。 您可以采取許多措施來避免性能問題,例如減少偵聽器和事件,保持DOM輕量級(低於2000個節點)並且通常避免任何CSS3轉換和效果(特別是在Android上表現不佳)

另一件需要考慮的事情是,您可以使用CrossWalk瀏覽器並將其嵌入到APK中,而不是使用內置的WebView。

https://crosswalk-project.org

它為你的APK增加了一點大小(15-20MB),但它比內置的WebView表現更好,並為一個非常分散的平台帶來穩定性和一致性。 考慮到現實,Android上的每個WebView取決於設備,供應商和操作系統版本可能在很小的方面有所不同。 CrossWalk將允許您在所有Android 4.0+設備上擁有完全相同的版本,並刪除任何設備或供應商特定問題。

在Android上沒有靈丹妙葯的表現。 圖形加速不會改善純javascript執行或DOM操作的執行。 如果你想了解原因,那么從這里開始:

回流和重繪之間有什么區別?

較舊的答案(可能仍然有效):

對於ICS及更高版本,webview上的以下設置將顯着提高Android上Sencha Touch的渲染性能:

mWebView.setLayerType(WebView.LAYER_TYPE_HARDWARE, null);

但是根據我的經驗,這將根據設備和平台變化將工件引入CSS渲染。 我沒有特別找到理由,我不希望谷歌解決它,因為webview組件將被Android 4.4中更新更好的版本取代。

https://developers.google.com/chrome/mobile/docs/webview/overview

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM