9

私はAndroid3.2でアプリを開発してテストしました。アプリは、SQLiteデータベースと相互作用し、画面に結果を表示します。アニメーションなどはありません。私が持っているのは、ユーザーにデータを表示するための多数のListViewです。

アプリのデータベースは非常に大きく、一部のテーブルには30万行を超えています。データベースとのすべての対話でAsyncTaskを使用しようとしましたが、パフォーマンスを最適化する必要がある点がいくつかあります。

問題は、会社が一部のタブレットをIce Cream Sandwichに更新し、アプリがHoneycombよりもはるかに遅いことです。同じコードを同じデータベースで2つのデバイスにロードしました。1つはICSを実行し、もう1つはHoneycombを実行しています。このアプリは、3.2デバイスではるかに優れたパフォーマンスを発揮しました。私も使ってみ<uses-sdk android:minSdkVersion="14" />ましたが、うまくいきませんでした。

4.0のパフォーマンスを最適化するためにできることはありますか?また、なぜこれが発生したのか、それを引き起こした可能性のあるものがあるかどうか(4.0ではうまく機能しないコンポーネントまたはクラス)を知りたいと思います。

ありがとう!

更新:アプリのメイン画面の解決策を見つけました。水平方向のリストとして機能するフラグメントを提示していました。それは、膨大なデータのリストをロードし、ScrollView内に提示されるHorizontalScrollView多くのデータを作成したものでした。私はHorizoLinearLayout ​​ntalListViewのウィジェットを見つけ、それを使用してリストをロードしました。それだけでアプリが高速になりました。しかし、ICSでそれが遅い理由に対する答えは見つかりませんでした。

アプリのプロファイリングも試しましたが、非常に難しいことで、たくさんの情報があります。アプリケーションを高速化するために、おそらく今後数週間はそれを行うでしょう。すべての回答とコメントをありがとう!

4

1 に答える 1

2

私の推測では、アイス クリーム サンドイッチでデフォルトで有効になっているハードウェア アクセラレーションに関連していると思われます。ハードウェア アクセラレーションは優れていますが、パフォーマンスが低下することがあります。

google+ の Dianne Hackborn による Android ハードウェア アクセラレーションに関する興味深い記事がもう 1 つあります。

于 2012-12-01T12:49:59.907 に答える