24

WebView だけを使用して Phonegap 1.4 でラップするマルチプラットフォーム タブレット アプリを作成しています。次に、Sencha Touch 2 フレームワークで魔法をかけます。マルチプラットフォームとは、iOS 5.X+ と Android 3.0+ (今のところ) を意味します。

このアプリは今のところ問題なく動作しており、すべての機能が両方のシステムで動作しますが... Android タブレット (Samsung GalaxyTab) では非常に遅いです。何が起こっていますか?私はそれについて何かをすることができますか、それともアンドロイドの限界ですか?

ありがとう

リカルド・ペレ: http://edgecodetechology.blogspot.pt/


****編集**** (私は、この記事を煎茶コミュニティに役立つものにしようとしています)

Sencha Touch は、他の多くの Javascript フレームワークと同様に、javascript 自体が原因でパフォーマンスの最良の例ではありません。

それでは、なぜSencha Touchを使用するのでしょうか?

  • 私の場合:マルチプラットフォーム(iOS、Android、Windows Phone、Blackberry、Windows、Mac OSX、Linux。コードの 80 ~ 90% を共有)

Mitigating performance issues due to lack of visual pre-process in Android systems:

  1. CSS3 重いビジュアル プロセス:

    • 勾配を避ける
    • 影を避ける
    • 変換とアニメーションを避ける
  2. 優れた MVC プラクティス:

    • これ以上のビューを使用しないと、実際に表示されます
    • レンダリングとデータ処理を同時に回避するために、可能な場合はプリレンダリング / プリデータフェッチ
  3. スクロールビューの場合、Android ではオーバースクロールを無効にする必要があります。私は Android デバイス上で多くの Sencha Touch 2 アプリケーションをテストしましたが、オーバースクロールは遅延と遅延のために非常に不快な体験を引き起こします。(Galaxy Tab、Nexus S、およびいくつかの HTC でテスト済み) Thiem Nguyen (私はあなたの投稿をマイニングしてきました。申し訳ありません :P)

4

4 に答える 4

16

こっちも一緒。Sencha Touch 2 アプリケーションの多くを Samsung GalaxyTab でテストしましたが、パフォーマンスは本当にひどいものでした。iOS はレンダリングの前に多くの前処理と計算を行って、ユーザーのルック アンド フィールをより滑らかに見せる一方で、Android は外出先でレンダリングと処理を同時に行う傾向があるという事実があります (これはおそらく実際の理由の一部です)。

一般に、Sencha Touch のような Javascript で構築されたすべてのクロスプラットフォーム モバイル アプリにとって、iOS のパフォーマンスは Android よりも大幅に優れていると言えます。ただし、Sencha Touch 開発チームはこれを改善するために最善を尽くしており、次のリリースで改善されることを願っています。iOS と Android デバイスのパフォーマンス比較に関するこの記事を見ることができます。

http://www.sencha.com/blog/sencha-touch-2-developer-preview/

PS: これは OS の制限に大きく関係していますが、アプリを最適化して Android デバイスでのパフォーマンスを向上させることもできます。私の経験では、ベストプラクティスは次のとおりです。

  • CSS3 を使いすぎないでください。
  • DOM は最小限に抑えてください。

それが役に立てば幸い。

于 2012-04-10T08:56:50.410 に答える
4

私は phoneGap や Sencha の開発者ではありませんが、ブラウザーのパフォーマンスと進化に関する情報についていくようにしています。

アプリに非常に多くの抽象レイヤー (sencha touch、phonegap、android、webkit、fffuuu) があるため、パフォーマンスの問題がどこにあるかを理解するのが非常に難しい場合があります。

phonegap の設計を取得する限り、webkit の実装は埋め込まれていません。(android で) 行うことは、android.webkit.WebView を利用することです。多くの人が、Android Webkit ブラウザー自体よりも webview のパフォーマンスがひどいことに不満を持っていることがわかりました。phonegapを使用しているため、ここで改善するのは難しいかもしれません.Android SDKを台無しにすると、移植性が失われる可能性があります.

phonegap のパフォーマンスの問題として私が見ているのは、ハードウェアだけでなく、OS のブラウザー実装にも依存することです。

パフォーマンスを調整したい場合は、js/css コードを改善できます。これは、js で DOM ノードをキャッシュする (DOM クエリは遅い) という単純なものであり、DOM を最小限に保つか、より困難になる可能性があります。phonegap はさまざまなブラウザー エンジンの実装をターゲットにしているため、コードをそれらのブラウザーにターゲットにする必要がある場合があるからです。性能を上げる。

于 2012-05-03T00:00:55.597 に答える
2

アプリが Android や iOS などで実行されているかのように、問題が OS に直接関係しているかどうかはよくわかりません。

Sencha Touch 2 Kitchen Sink の例を、Samsumg Galaxy のような低から中程度の機能のハードウェア デバイスでテストすると、パフォーマンスが低下する問題が発生します。

ただし、HTC Desire 2 (iPhone 4S に近いもの) などのより優れたハードウェア デバイスに移行すると、パフォーマンスが大幅に向上することがわかります。

iOS と比較して、パフォーマンスに関して Android が Sencha Touch 2 に制限があるとは思いません。一部のデバイスは他のデバイスよりも優れていると思います (iOS は常に高レベルのパフォーマンス デバイス、iPhone/iPad で実行されます)。

そして残念なことに、人々は低価格でハードウェア対応のものを所有する傾向があります。

于 2012-04-26T19:46:03.680 に答える
0

SenchaTouch ベースのアプリのパフォーマンスについていくつか基本的な質問があります。DOM 操作を手作業でコーディングして HTML5 アプリのパフォーマンスを改善した方法については、LinkedLN チームによるこの記事を参照してください。

http://engineering.linkedin.com/linkedin-ipad-5-techniques-smooth-infinite-scrolling-html5

この記事のコンテキストでは、Sencha Touch には 2 つの問題があります:-

  1. Sencha Touch は、javascript オブジェクトを Dom ノードに変換し、それらを Dom ツリーに追加することで UI を構築します。Chrome ツールは、比較的多数の DIV やその他の DOM 要素を Dom ツリーに追加することになることを示します。これがパフォーマンスに悪影響を与えることはありません。

  2. Sencha UI の Dom ノードのほとんどは、マークアップからではなく、Sencha API コードによって生成されます。これらの Dom 要素を直接操作するコードを記述した場合、副作用が発生しないと確信できますか?

于 2012-08-03T10:57:29.557 に答える