デバイスの開発者向けオプションを設定する

Android デバイスの設定アプリにある [開発者向けオプション] 画面では、アプリ パフォーマンスのプロファイリングやデバッグに役立つシステム動作の設定を行うことができます。たとえば、USB デバッグの有効化、バグレポートの取得、タップの視覚表示、画面更新時のスクリーン点滅、2D グラフィック レンダリング時の GPU の使用など、さまざまな設定を行うことができます。

開発者向けオプションを有効にする

Android 4.1 以前の場合、[開発者向けオプション] 画面はデフォルトで表示可能です。 Android 4.2 以降では、この画面を表示可能にする必要があります。

注: デバイスによって [開発者向けオプション] の表示位置や名前が異なる場合があります。

  1. デバイスで [ビルド番号] オプションを探します。次の表に、さまざまなデバイスのビルド番号の設定場所を示します。

    表 1. [ビルド番号] オプションのデバイス設定の場所

    デバイス 設定

    Google Pixel

    [設定] > [デバイス情報] > [ビルド番号]

    Samsung Galaxy S8 以降

    [設定] > [端末情報] > [ソフトウェア情報] > [ビルド番号]

    LG G6 以降

    [設定] > [デバイス情報] > [ソフトウェア情報] > [ビルド番号]

    HTC U11 以降

    [設定] > [バージョン情報] > [ソフトウェア情報] > [その他] > [ビルド番号] または [設定 > [システム] > [デバイス情報] > [ソフトウェア情報] > [その他] > [ビルド番号]

    OnePlus 5T 以降

    [設定] > [デバイス情報] > [ビルド番号]

  2. [ビルド番号] オプションを 7 回タップすると、「You are now a developer!」というメッセージが表示されます。これで、お使いのデバイスで開発者向けオプションが有効になりました。

  3. 前の画面に戻ると、下部に [開発者向けオプション] が表示されます。

図 1. デバイスの開発者向けオプション。

図 1 に示すように、[開発者向けオプション] 画面の上部でオプションのオンとオフを切り��えられます。オンのままにしておきます。無効にすると、デバイスと開発コンピュータ間の通信を必要としない設定を除いて、大半のオプションが無効になります。

デバイスで USB デバッグを有効にする

デバッガなどのツールを使用するには、あらかじめ USB デバッグを有効にしておく必要があります。これにより、USB 経由で接続したデバイスを、Android Studio や他の SDK ツールで認識できるようになります。

デバイスのシステム設定で、[開発者向けオプション] の [USB デバッグ] を有効にします。このオプションは、Android のバージョンに応じて次のいずれかの場所にあります。

  • Android 9(API レベル 28)以上: [設定] > [システム] > [詳細設定] > [開発者向けオプション] > [USB デバッグ]
  • Android 8.0.0(API レベル 26)および Android 8.1.0(API レベル 27): [設定] > [システム] > [開発者向けオプション] > [USB デバッグ]
  • Android 7.1(API レベル 25)以下: [設定] > [開発者向けオプション] > [USB デバッグ]

全般オプション

[クイック設定開発者用タイル] をタップして、選択した開発者向けオプションをクイック設定パネルに追加します。

図 2 に示すように、利用可能なタイルを 1 つまたは複数選択して、クイック設定パネルを開き、鉛筆アイコンをタップして、編集モードに移行します。次に、開発者用タイルをタイルパネルからクイック設定パネルにドラッグし、再び鉛筆アイコンをタップして、編集モードを終了します。

図 2. クイック設定パネルにオプションを追加します。

他の全般オプションは以下のとおりです。

  • メモリ: 平均的なメモリ使用状況や、メモリ パフォーマンス、使用可能な���モリ合計量、平均メモリ使用量、使用可能なメモリ残量、アプリによるメモリ使用量など、メモリに関する統計情報が表示されます。
  • バグレポートを取得: 現在のデバイスログ ファイルのコピーを取得して、共有できます。 バグレポートが準備できると通知が送信され、その通知をタップするとレポートを共有できます。
  • システム UI デモモード: 通知やバッテリー残量警告などを表示しない汎用のプリセット通知バーを表示することで、不要なものを含まないスクリーンショットを簡単に撮影できます。 [デモモードを有効にする] を有効にすると、adb デモモード コマンドを使用して、ステータスバーの外観を変更できます。あるいは、[デモモードを表示] を使用すると、通知を非表示にして、プリセットのステータスバーを表示できます。
  • PC バックアップ パスワード: バックアップ パスワードを設定しておくと、パスワードの保護下にあるデバイスアプリやデータを、adb コマンドを使用してバックアップしたり、復元したりすることができます。
  • 画面をロックしない: デバイスを電源に接続している間、画面をオンのままにします。
  • Bluetooth HCI スヌープログを有効にする: /sdcard/btsnoop_hci.log ファイルに保存されているすべての Bluetooth HCI パケットを取得します。取得したパケットを Wireshark などのプログラムで解析して、その情報をトラブルシューティングに役立てることができます。

デバッグ

図 3. デバッグ オプションを有効にします。

デバッグ オプションを使用すると、オンデバイス デバッグを設定したり、デバイスと開発コンピュータ間の通信を確立したりすることができます。

図 3 に示すように、USB デバッグを有効にして、Android デバイスが Android Debug Bridge(adb)を介して開発マシンと通信できるようにします。[デバッガを待機] オプションは、[デバッグアプリを選択] を使用してデバッグ対象アプリを選択するまでは無効になっています。[デバッガを待機] を有効にすると、選択したアプリはデバッガがアタッチされるのを待ってから起動するようになります。

他のデバッグ オプションは以下のとおりです。

  • ログデータをデバイス上に永続的に保存: デバイス上に永続的に保存するログメッセージ�����類を選択��きます。オプションには、オフ、すべて、無線情報以外すべて、カーネルのみ、があります。
  • 仮の現在地情報アプリを選択: このオプションを使用してデバイスの GPS 位置情報を仮のものに偽装することで、他の場所でもアプリが同じように機能するかどうかをテストできます。 このオプションを使用するには、GPS 位置情報を仮のものに偽装できるアプリをダウンロードしてインストールしておく必要があります。
  • 図 4. 表示属性。

  • 表示属性検査を有効にする: View インスタンスの mAttributes メンバー変数に表示属性情報を保存して、それをデバッグに利用できます。この属性情報は、図 4 のように、Layout Inspector ユーザー インターフェースからアクセスできます。有効にしていない場合、[属性] 項目は利用できません。
  • GPU デバッグレイヤの有効化: Android 9(API レベル 28)以降を搭載しているデバイスで利用可能です。このオプションを有効にすると、ローカル デバイス ストレージから Vulkan 検証レイヤを読み込むことができます。詳しくは、Android の Vulkan 検証レイヤをご覧ください。

ネットワーク

図 5. [USB 設定の選択] オプション。

ネットワーク オプションでは、Wi-Fi 設定や DHCP 設定を指定できます。

[USB 設定の選択] をタップすると、パソコンでデバイスを認識する方法を指定できます。 図 5 のように、充電のみ、ファイル転送(MTP)、画像転送(PTP)、パソコン上でのモバイル インターネットの使用(RNDIS)、オーディオ ファイルや MIDI ファイルの転送、というオプションの中から選択できます。

[Bluetooth AVRCP バージョン] をタップすると、デバイスがアクセス権限を持つ Bluetooth AV 機器を制御する際に使用するプロファイル バージョンを選択できます。

また、デバイス上のオーディオ再生に関して詳細な調整を行うには、以下のオプションをタップして設定を行います。

  • Bluetooth オーディオ コーデック: 次のいずれかのコーデックを選択して、デバイスの音質(コーデック)を調整します。
    • SBC: ヘッドフォンやスピーカーなど、Bluetooth オーディオ出力機器にデータを転送します。
    • AAC: 同じビットレートの MP3 に比べて有線接続デバイスからの音質が良くなります。
    • aptX: スマートフォンや、スピーカー、サウンドバー、ヘッドフォン、タブレットにおいて、高音質なワイヤレス サウンドを実現します。
    • aptX HD: Bluetooth デバイスに向けて高音質ストリーミングを行います。
    • LDAC: ワイヤレス接続で高音質の音楽を聴くことができます。
  • オプションのコーデックの有効化 / オプションのコーデックの無効化: 追加のコーデック実装をインストールしている場合は、そのオプションの有効 / 無効を切り替えることができます。
  • Bluetooth オーディオ サンプルレート: オーディオ コーデックのサンプルレートを選択して、1 秒あたりのオーディオ サンプル数を調整できます。サンプルレートが高いほど必要なリソースが増えます。
  • サンプルあたりの Bluetooth オーディオ ビット: 各オーディオ サンプルにおける情報のビット数を設定します。ビットレートが高いほど音質は良くなりますが、サンプル ファイルのサイズが大きくなります。
  • Bluetooth オーディオ チャンネル モード: モノラルかステレオを選択します。
  • Bluetooth オーディオ LDAC コーデック: サウンドを最適化することで、音質を改善し、音質と接続品質のバランスを調整し、接続品質を改善し、アダプティブ ビットレートを使用して音質と接続品質のバランスを調整できます。

他の Wi-Fi 設定と DHCP 設定は以下のとおりです。

  • ワイヤレス ディスプレイ認証: 高度な設定を有効にして、Wi-Fi Alliance Wi-Fi Display Specification で規定されている仕様に準拠したワイヤレス ディスプレイ認証に対応します。
  • Wi-Fi 詳細ログの有効化: 受信信号強度(RSSI)に応じて、接続している各ワイヤレス ネットワーク(SSID)の Wi-Fi ログレベルを上げます。ログについて詳しくは、logcat を使用してログを書き込み、表示するをご覧ください。
  • Wi-Fi を強制的にモバイル接続に切り替える: 信号が弱い場合に、データ接続をモバイル ネットワークにハンドオーバーして、Wi-Fi を効率的に使用します。

入力

[タップを表示] を有効にすると、画面上のタップを視覚的に表示できます。指やタッチペンで画面に触れると円形記号が表示され、指やタッチペンを画面上で移動すると、円形記号の位置も一緒に移動します。デバイス上で動画を録画しているときは、タップがポインタのように機能します。

図 6. ポインタの位置バー。

[ポインタの位置] を有効にすると、十字線と��もにデバイス上にポインタ(タップ)の位置が表示されます。 図 6 に示すように、画面の上部に十字線の座標を追跡するためのバーが表示されます。ポインタを移動すると、バー内の座標が十字線の位置をトラッキングし、ポインタの軌道が画面上に描画されます。

図形描画

図 7. ユーザー インターフェース構成。

描画オプションを使用すると、アプリのユーザー インターフェースに関するビジュアル キューが表示され、その動作を確認できます。

[レイアウト境界を表示] を有効にすると、図 7 のように、アプリのクリップ境界線やマージンなど、デバイス上のユーザー インターフェース構成が表示されます。

他の描画オプションは以下のとおりです。

  • RTL レイアウト方向を使用: 画面レイアウト方向を強制的に右から左(RTL)または左から右(デフォルト)に指定します。
  • ウィンドウ アニメスケール: ウィンドウ アニメーションの再生速度を設定して、さまざまなスピードでのパフォーマンスをチェックできます。このスケールの値が小さいほど、スピードは速くなります。
  • トランジション アニメスケール: トランジション アニメーションの再生速度を設定して、さまざまなスピードでのパフォーマンスをチェックできます。このスケールの値が小さいほど、スピードは速くなります。
  • 2 次画面シミュレート: デバイス上にオーバーレイとして 2 次画面を作成します。 これは、Presentation API を使用して追加画面をサポートする場合に便利なオプションです。 詳細については、セカンダリ ディスプレイをご覧ください。

ハードウェア アクセラレーテッド レンダリング

図 8. 第二色弱の色空間。

ハードウェア アクセラレーテッド レンダリング オプションを使用すると、GPU や、ハードウェア レイヤ、マルチサンプル アンチエイリアス(MSAA)など、ハードウェア ベースのオプションを活用して、対象ハードウェア プラットフォーム向けにアプリを最適化することができます。

[色空間シミュレート] をタップすると、デバイス UI 全体のカラーパターンを変更できます。 このオプションは、各種の色覚異常に対応しています。 次の選択肢があります。

  • 無効(カラーパターンのシミュレーションなし)
  • 全色盲(カラーパターンを黒、白、グレーに制限)
  • 第二色弱(赤と緑の表示に影響)
  • 第一色弱(赤と緑の表示に影響)
  • 第三色弱(青と黄色の表示に影響)
第一色弱は赤色が見えづらい赤緑色盲で、第二色弱(図 8)は緑色が見えづらい赤緑色盲です。

色空間をシミュレーションしているときにスクリーンショットを撮影しても、カラーパターンを変更していない通常の色で表示されます。

他のハードウェア ベース オプションは以下のとおりです。

  • GPU レンダ��の設定: デフォルトの Open GL グラフィック エンジンを Open GL Skia グラフィック エンジンに変更します。
  • GPU レンダリングを使用: アプリがデフォルトでは GPU レンダリングを使用せずに 2D を描画��てい���場合����、2D 描画��常に GPU ���使用します。
  • GPU 表示の更新を表示: GPU を使用して描画された画面上の要素を表示します。
  • GPU オーバードローをデバッグ: 同一フレーム内で同じピクセルの描画が何度発生したかを、デバイス上で色分けして視覚化します。これにより、アプリが不要なレンダリングをしている箇所を特定できます。詳しくは、GPU オーバードローの視覚化についての説明をご覧ください。
  • 非矩形クリップ操作をデバッグ: キャンバス上のクリップ領域を無効にして、特殊な非長方形キャンバス領域を作成します。通常は、クリップ領域が有効の場合、円形のクリップ領域の境界外には描画できません。
  • 4x MSAA を適用: Open GL ES 2.0 アプリでマルチサンプル アンチエイリアス(MSAA)を有効にします。
  • HW オーバーレイを無効にする: ハードウェア オーバーレイを無効にします。ハードウェア オーバーレイを使用すると、画面上に何かを表示しているアプリの処理能力が低下します。オーバーレイを使用しない場合、アプリはビデオメモリを共有するようになり、適切な画像をレンダリングするために常に競合とクリッピングをチェックする必要があります。このチェックのために、使用する処理能力が増加します。

メディア

[USB オーディオ ルーティングを無効化] を設定すると、USB ポートを通じてパソコンに接続している外部オーディオ機器への自動ルーティングが無効化されます。自動ルーティングは、USB を認識するアプリの動作を妨げる場合があります。

Android 11 以降で、RECORD_AUDIO 権限のないアプリが UsbManager を使用して、音声キャプチャ機能を持つ USB オーディオ機器(USB ヘッドセットなど)へのアクセスをリクエストすると、その機器の使用許可を確認するよう求める警告メッセージがユーザーに表示されます。システムは「常に使用する」オプションを無視するので、アプリがアクセスをリクエストするたびに、ユーザーは警告を確認して権限を付与する必要があります。この動作を回避するため、アプリで RECORD_AUDIO 権限をリクエストしてください。

モニタリング

図 9. ��ー表示としての GPU レンダリング プロファイル。

モニタリング オプションを使用すると、時間のかかるスレッド処理や GPU 動作など、アプリのパフォーマンス情報を視覚化できます。

[GPU レンダリングのプロファイル作成] をタップして、[棒グラフとして画面に表示] をタップすると、図 9 のように、GPU レンダリングのプロファイルが棒グラフで表示されます。詳しくは、GPU レンダリング速度のプロファイリングをご覧ください。

アプリ

図 10. バックグラウンド プロセスの上限を設定します。

アプリ オプションを使用すると、ターゲット デバイス上のアプリの動作を把握できます。

[バックグラウンド プロセスの上限] をタップすると、一度にバックグラウンドで実行できるプロセスの数を設定できます。選択肢は、図 10 のとおりです。

テスト中に [ShortcutManager のレート制限をリセット] をタップすると、バックグラウンド アプリは、再びレート制限に達するまでショートカット API を呼び出し続けることができます。ショートカットやレート制限について詳しくは、ShortcutManager をご覧ください。

[アクティビティを保持しない] を有効にした場合、ユーザーがアクティビティのメインビューを離れると、すぐにそのアクティビティが破棄されるため、電池寿命が長くなります。

開始予定の画面共有セッションでアプリのデリケートなコンテンツに対するシステム保護を無効にするには、[画面共有の保護を無効にする] をタップします。この設定はデモやテスト専用であり、永続的な設定として使用しないでください。