Android アプリケーションのパフォーマンス チューニング - 「スキーム」を改善します

アプリ使用中にANRが発生し、アプリがフリーズしたり、黒い画面が表示されたりするつらい現象です。

1. 最適化の方向性

ここに画像の説明を挿入

  • 方向性は目標であり、高速、安定、経済的、小型です。
  • 解決すべき主な問題: スタック、不当なメモリ使用量、低品質のコード、乱雑なコード ロジック、および大きすぎるインストール パッケージ。これらは、開発プロセス中に遭遇する最も一般的な問題です。
  • アイデアの分析
     1、
    

2. 最適化の実装

1. カトンに行く

ここに画像の説明を挿入

- UIのフリーズ

- 理由

```
-----主要以下两点-----
 - 1、绘制任务太重,绘制一帧内容耗时太长
 - 2、主线程太忙, 主线程做了太多的事情,或有耗时动作。
 ```
  • メインスレッドの役割: インターフェースのライフサイクル制御、システムイベント処理、メッセージ処理、インターフェースのレイアウト、インターフェースの描画、インターフェースの更新。

  • 人間の目と脳の連携では、60fps を超える画像更新を認識することはできません。

  • アプリのパフォーマンス標準は 60fps の値を保証することです。これは、各フレームにかかる時間は 1000/60 = 16 ミリ秒だけであることを意味します。

  • このインターフェイスの現在の UI 処理が 16 ミリ秒を超え、次の 16 ミリ秒がかかるため、インターフェイスはスタックしてスムーズではなくなります。そのため、16 ミリ秒 * 2 がすべて同じフレームに表示されます。これが「スタック」であると考えられます。

- 道具

Hierarchy Viewer工具  \

- ソリューション

  • am start -W com.nwd.can.setting/com.nwd.can.setting.ui.MainActivity
    ここに画像の説明を挿入

- スタートラグ


- ジャンプがスタックする


- 応答遅れ


2. 安定を保つ

ここに画像の説明を挿入

問題のあるアイテム 参考URL
メモリリーク、メモリオーバーフロー 参考となる知識ポイント

- メモリ不足

メモリ オーバーフロー: (メモリ不足) 一般的な理解は、メモリが十分ではないということです。通常、大規模なソフトウェアやゲームを実行する場合、ソフトウェアやゲームに必要なメモリがホストにインストールされているメモリの容量をはるかに超えます。これはメモリ オーバーフローと呼ばれます


- メモリーリーク

  • メモリ リーク: (メモリ リーク) は、プログラム内で動的に割り当てられたヒープ メモリが解放されないか、何らかの理由で解放できず、その結果システム メモリが浪費され、プログラムの実行速度の低下やシステム クラッシュなどの重大な結果を引き起こすことを指します。

  • メモリ リークの蓄積による影響は非常に深刻で、メモリの量に関係なく、遅かれ早かれメモリが消費されてしまいます。

  • ケース1


- クラッシュ

3. 電力と流量を節約する

ここに画像の説明を挿入

4. インストールパッケージのサイズ

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/oZiJing/article/details/118577184