9

jquery mobile と phonegap を使用して Android 用のアプリケーションを開発しました。USB経由でアプリをデバイスにデプロイしました。特に長いリストをスクロールしている間は、アプリのパフォーマンスが非常に悪いです。

奇妙なことに、電話でブラウザを開いて index.html に直接アクセスするだけで、アプリ全体がスムーズに動作します。同じ技術、同じ内容。phonegap ネイティブ API などは使用しません。

Android 4.0.2 で phonegap 1.5.0 および 1.7.0rc1、jquery mobile 1.1.0 でテスト済み。

何か案は?

4

5 に答える 5

11

ハニカム (3.0)、アイスクリーム (4.0)、および後部デバイスでは、 < Application ... > タグに次を追加することでパフォーマンスを向上させることができます。

android:hardwareAccelerated="true"

互換性のために minSdk を 8 (Android 2.2) に設定し、targetSdk を 15 (Android 4.0) に設定すると、デバイスでのみ使用可能な場合にハードウェア アクセラレーションが機能します。

このフラグを使用すると、アプリのパフォーマンスはブラウザーで実行するのと同等であると信じているため、ブラウザーがハードウェアアクセラレーションでコーディングされているためだと思います:)

于 2012-08-10T09:26:21.133 に答える
2

私は同様の問題を抱えていました.「中程度の複雑さ」をテーマにしたdivのリストが長いページです。HTC phoneのブラウザは表示に問題はありませんでした。しかし、phonegap アプリ内でのレンダリングは完全に失敗しました。ディスプレイに触れただけで消える一種の WSOD を見ました。タッチ後、ページが正しく表示されました。

div-list を 1 つまたは 2 つの div-element に短縮したとき、または div 内のサブ要素を減らして css の複雑さに起因するレンダリング作業を減らしたとき、問題は発生しませんでした。

ドキュメントの背景色のみが表示されているため、白い画面は全身が見えない場合のように見えます (これには薄いピンクを追加しました)。だから、このスレッドを読んだ後、レンダリングが問題だったと思います

このスレッドで見つけたさまざまな提案を試して、「WSOD」なしでアプリを機能させました。しかし、何も機能しませんでした。それらのいくつかは、アプリの表示を非常に悪化させました。

とうとう、丸一日探してやっとたどり着きました。AndroidManifest のタグ (タグではなく) 内に設定しました

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

これで、アプリは私の Web ブラウザーと同じように高速に動作します。ハードウェアアクセラレーションが常に最適な機能であるとは限らない場合...

私のバージョン: phonegap 3.5.0、Android 4.0.3、jQuery v2.1.0、HTC Sense 3.6

于 2014-06-28T14:42:51.983 に答える
1

ここで答えが見つかりました:http: //groups.google.com/group/phonegap/browse_thread/thread/94da1cf881abe995/6d4f7aea7aeba523? lnk = gst&q = performance

javascriptのパフォーマンスに関しては、ネイティブブラウザとWebビューの間におそらく違いがあります。

于 2012-04-29T17:08:57.960 に答える
0

jquery mobileで同じ量のリストアイテムをスクロールしているときに、パフォーマンスの問題が発生しました。パフォーマンスが非常に悪かったため(PhoneGap環境では試していませんでした)、iScrollライブラリを使用してアプリを書き直しました...アプリは非常にスムーズにスクロールします。

開発を始めたばかりの場合は、UIライブラリを変更してみてください。

この状況の後、パフォーマンスの問題を時間内に管理するために、デバイスをテストするためにアプリを頻繁にデプロイします...これは「ポリシー」になりました:)

于 2012-04-30T20:01:09.483 に答える
0

ブラウザのパフォーマンスが向上していることが確認できた場合 (コード内で最適化されていないもので、一方をイライラさせているわけではなく、他方をイライラさせているわけではない)、実際にブラウザで実行できるように、html5 オフライン アプリケーションとしてデプロイすることを検討できます。

于 2012-04-29T17:16:51.403 に答える