Androidプログラミング開発の性能最適化技術のまとめ

1640 ワード

本論文では、Androidプログラミング開発の性能最適化技術を詳細にまとめた。皆さんに参考にしてあげます。具体的には以下の通りです。
1.httpはgzipで圧縮し、接続タイムアウト時間と応答タイムアウト時間を設定します。
http要求は業務の需要によってキャッシュできますか?キャッシュできますか?
2.listview性能の最適化
1)多重化convertView
getItemViewでは、convertViewが空かどうかを判断し、空でないと多重化できます。couvertviewのviewにlister nerを追加する必要がある場合、コードは必ずifの外にあるべきです。
2)画像を非同期的に読み込む
itemにwebimageが含まれているなら、非同期でロードするのが良いです。
3)スライドが速い時は画像を表示しません。
クイックスライドリストの場合(SCROLL_)STATE_FLING)、itemの中のピクチャまたは消耗資源が必要なviewを取得しても、表示されなくても良いです。他の二つの状態(SCROLL_)にあります。STATE_IDLEとSCROLL_STATE_TOUCHSCROLL)は、それらのビューを表示します。
3.スレッド池を使用する
コアスレッドのプールと通常スレッドのプールに分かれており、画像をダウンロードするなど時間のかかるタスクは通常スレッドのプールに置いてあり、時間のかかるタスクがスレッドのプールをブロックしないようにすると、すべての非同期タスクが待ち受けている必要があります。
4.非同期タスク
コアタスクと通常タスクに分けて、コアタスクに現れたシステムレベルのエラーだけがエラーを報告します。非同期タスクのui操作は元のactivityがアクティブ状態かどうかを判断する必要があります。
5.staticメンバー変数がリソースを引用することによる過多な例、例えばContect
6.強い引用の代わりにWeakReferenceを使う
弱い参照は、オブジェクトへの参照を維持しながら、GCが必要に応じてオブジェクトを解放し、メモリを回収することができます。安価で大量のメモリを作成する対象については、そのオブジェクトを維持したり、アプリケーションが必要な時に使用したり、GCが必要な時に回収してほしい場合は、弱い参照を使用することが考えられます。
7.スーパーデブBitmap
適時廃棄(Activityのon Destroyの場合はbitmapを回収)
一定のサンプリングレートを設定します。
ソフト引用を巧みに運用する
drawableはレスポンスの資源に対応しており、bitmapは他の資源に対応しています。
8.Cursorの占用メモリが適時に釈放されることを保証し、GCの処理を待つのではない。
そしてAndroidは明らかにプログラミング者が手動でCurrsor closeを落とす傾向があります。
9.スレッドもメモリ漏れの原因となる重要なソースです。
スレッドがメモリリークを発生する主な原因はスレッドライフサイクルの制御不能であり、マルチスレッドを合理的に使用することである。
10.ImageViewの画像がネットワークから来た場合、非同期的にロードする
11.カスタムView
アプリケーション開発中にViewをカスタマイズする時、インタラクティブ部分はスレッドに書いて画面を更新しないでください。TouchListenerイベントによってアクティブにインターフェースの更新をトリガします。
ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。