2012-04-28 82 views
7

我使用jquery mobile和phonegap爲android開發了一個應用程序。 我通過USB將應用程序部署到我的設備上。該應用程序的性能非常糟糕,特別是在滾動更長的列表時。PhoneGap - 與Android上的瀏覽器相比性能不佳

奇怪的是:如果我只是打開手機上的瀏覽器並直接訪問index.html,整個應用運行平穩。相同的技術,相同的內容。我不使用phonegap native api或類似的東西。

在android 4.0.2上測試了phonegap 1.5.0和1.7.0rc1,jquery mobile 1.1.0。

任何想法?

+0

假設兩個正在使用的系統webkit庫,它似乎是在一個環境或另一個環境中的不同配置設置或額外的附加組件,否則在您的代碼中有一些奇怪的挑戰一個而不是另一個。在javascript基準站點 – 2012-04-28 16:39:45

+0

指向兩個可能會很有趣我只是好奇我們在這裏討論的列表有多大? – codaniel 2012-04-28 21:15:37

+0

@codaniel:大約50個元素,帶縮略圖 – rbk 2012-04-29 16:59:49

回答

0

如果您可以確認瀏覽器的性能更好(在代碼中不是最佳代碼而不是其他代碼),您可以考慮將其部署爲html5脫機應用程序,以便實際在瀏覽器中運行。

0

我們碰到了性能問題,同時使用jquery mobile滾動了相同數量的列表項。性能非常差(我們甚至沒有嘗試過PhoneGap環境),我們使用iScroll庫重寫了應用程序......現在應用程序可以非常順利地滾動。

如果您處於開發的初期,您可以嘗試更改UI庫。

後,這種情況下,我們部署我們的應用程序來測試設備往往在時間管理性能問題......這成了一個「政策」 :)

11

的Honeycomb(3.0),冰淇淋(4.0)和後部設備,您可以通過添加提高性能的<應用...>標籤下面:

android:hardwareAccelerated="true" 

您可以設置minSdk 8(Android 2.2的)的兼容性和targetSdk 15(Android 4.0版本)和只有在設備上可用時纔會使硬件加速工作。

我相信,這個標誌我的應用程序的性能等於在瀏覽器中運行它們,所以我想它,因爲瀏覽器是用硬件加速:)

+0

非常感謝你..它運作良好..:D – justmyfreak 2013-01-31 16:20:39

+0

這也適用於我。 當我使用Phonegap + FastClick + Android 4.1.1+時,我遇到的具體問題是鍵盤/打字性能 - 打字性能極差(在瀏覽器或Android 2.3中沒有問題)。使這個標誌解決了問題:-) – Maurice 2013-04-28 05:25:12

+0

哇!在我可怕的三星2.3中,它確實表現更好 – 2013-11-13 19:10:30

2

我有一個類似的問題編碼:頁有更長的「中等複雜」主題div列表。 HTC手機的瀏覽器在顯示方面沒有問題。但在phonegap應用程序渲染完全失敗。我看到一種WSOD,只有在觸摸顯示屏後纔會消失。觸摸後,頁面顯示正確。

問題不到位,當我縮短了DIV-列表中一個或兩個DIV元素,或者當我減少的div內的子元素,並降低所造成的複雜的CSS渲染工作。

白色的屏幕看起來像,如果整個身體是不可見的,因爲只顯示文檔背景顏色(我爲此添加了淺粉紅色)。所以我想,渲染是問題閱讀this thread

後,我試過,我發現in this thread,讓應用工作沒有「WSOD」的各種建議。但沒有任何工作。其中一些使得應用程序顯示更糟糕。

最後,經過一整天的搜索,我做到了。我在AndroidManifest的標籤(不是標籤)內設置了

<application android:hardwareAccelerated="false" ... 

現在,該應用的行爲與我的瀏覽器一樣快。好像,如果硬件加速並不總是最好的功能...

我的版本: 的PhoneGap 3.5.0,4.0.3的Android和jQuery v2.1.0中,HTC Sense的3.6