アプリ パフォーマンスのプロファイリング

アプリの応答が遅い場合や、アニメーションの再生品質が悪い場合は、アプリのパフォーマンスが低下します。 フリーズしたり電力を過剰に消費したりしますパフォーマンスの問題を解決するには プロファイリングする、またはアプリの効率を損なう領域を特定する CPU、メモリ、グラフィック、ネットワーク、デバイスなどのリソースの使用 できます。このトピックでは、Android Studio のツールと手法について説明します。 一般的なパフォーマンスの問題を解決します

Android 全体を実行せずにスタンドアロン プロファイラを実行する方法を学習する Studio IDE(Windows または Linux のみ)については、以下をご覧ください。 スタンドアロン プロファイラを実行します

要件

アプリをプロファイリングするには、次のことをおすすめします。

  • profileable マニフェストを含むリリースビルド バリアントを持つアプリ プロファイル可能なアプリとも呼ばれます。デフォルトでは、アプリには true に設定されます。この設定を確認または変更するには、 アプリのマニフェストまたは AndroidManifest.xml ファイルを開いて、 次に関する <application> セクション: profileable マニフェスト 構成:

    <profileable android:shell="true" />
    
  • API レベル 29 以降を搭載し、次の要件を満たす仮想テストデバイスまたは物理テストデバイス Google Play。

  • Android Gradle プラグイン 7.3 以降。

プロファイル可能なアプリとデバッグ可能なアプリ

プロファイリング可能なアプリでは、一般的なプロファイリング タスクのほとんどを実行できますが、Java / Kotlin の割り当てを記録したり、ヒープダンプをキャプチャしたりする必要がある場合は、代わりにデバッグ可能なアプリを使用する必要があります。デバッグ可能なアプリプロセスと API レベル 26 以降を搭載したデバイスでは、ユーザー インタラクション イベントとアプリ ライフサイクル イベントを示すインタラクション タイムラインを、タイムラインを提供するタスクビューで確認することもできます。

デバッグ可能なアプリは、アプリの debug ビルド バリアントをベースとしており、デバッガなどの開発ツールを使用できますが、パフォーマンス コストが若干発生します。プロファイリング可能なアプリは、アプリの release ビルド バリアントをベースとしており、デバッグビルドのパフォーマンス オーバーヘッドなしで一般的なプロファイリング タスクのサブセットを有効にします。

プロファイル可能なアプリをビルドして実行する

Android Studio でプロファイル可能なアプリをビルドして実行する手順は次のとおりです。

  1. 実行 / デバッグ構成を作成します(まだ作成していない場合)。
  2. リリースビルド バリアントを選択します([Build] > [Select Build Variant])。
  3. [その他の操作] をクリックします。 &gt;プロファイル「app」オーバーヘッドが少ない またはプロファイル「app」完全なデータを使用 (「app」は実行構成の名前であるため、 ユーザー)。この 2 つのオプションのいずれかを選択するには、要件をご覧ください。 テストデバイスでアプリが開き、Android Studio で [プロファイラ] ペインが開きます。

これらの手順が機能しない場合は、プロファイリング可能なアプリを手動でビルドして実行するをご覧ください。

プロファイリングを開始

プロファイリング タスクを開始する手順は次のとおりです。

  1. Profiler 内の [Home] タブのリストからプロセスを選択します。 クリックします。ほとんどの場合、データを表すトップ プロセスを選択することに 説明します。

    Profiler のホームタブ
  2. [Tasks] セクションでプロファイリング タスクを選択します。タスクの詳細については、このセクションの他のページをご覧ください。すべてのプロファイリング タスクが すべてのプロセスで利用可能です。どこから始めればよいかわからない場合は、アプリをライブで検査して、パフォーマンス アクティビティの全体像を把握します。

  3. [Start profiler task from] プルダウンを使用して、 実行中のプロセスにアタッチすることもできます。アプリの起動時間を短縮しようとしている場合や、アプリの起動中に発生するプロセスをキャプチャする場合は、起動を含める必要があります。それ以外の場合は、アプリの現在の状態でプロファイリングを開始できます。

  4. [プロファイラ タスクを開始] をクリックします。タスクは専用のタブで開始されます。

  5. アプリを操作してアクティビティがトリガーされるようにする。

  6. 記録を停止し(該当する場合)、解析が完了するまで待ってから 表示されます。

トレースの比較、エクスポート、インポート

プロファイリング タスクを停止すると、自動的に [過去の Profiler ペインの [Recordings] タブ。これらの保存済みの 記録を使用して、さまざまなシナリオでのリソース使用状況を比較できます。録音内容は次のとおりです。 現在の Android Studio セッションの間保存された内容必要に応じて 長期間保持したい場合は、[録画をエクスポート] をクリックしてエクスポートします 。 エクスポートできないトレース タイプもあります。

前回 Android Studio を実行したときなど、トレースをインポートするには、[過去の録画] タブで [録画をインポート] をクリックし、トレース ファイルを選択します。また、 Android Studio のエディタ ウィンドウにドラッグします。

記録構成を編集する

プロファイラ タスクの記録構成を編集するには、プロファイラ設定をクリックします 。 切り替え可能な主な設定は 2 つあります。

  • サンプリングを伴うタスクの場合、[サンプル間隔] は、 必要があります。指定する間隔が短ければ短いほど、記録データのファイルサイズ制限により早く到達します。
  • ファイルサイズの上限は、書き込み可能なデータの量を表します。 表示されます。記録を停止すると、Android Studio はこのデータを解析します。 Profiler ウィンドウに表示します上限を引き上げて、 場合、Android Studio ではファイルの解析にかなりの時間がかかり、 反応しなくなる可能性があります。