Androidの隠し機能「開発者向けオプション」の表示方法と使い方
・Android 9の開発者向けオプション追加
Android端末には「開発者向けオプション」と言う隠し機能があります。
このモードは普通にスマホを使っているならば使用する機会はほとんどありません。その理由は、Android端末に始めから表示されていないからです。隠し機能と言ったのはその為です。※Androidのバージョンによっては最初から表示されていることもあります。
この機能は、その名の通りAndroid開発者向けの機能で、デベロッパーモードとも呼ばれています。開発者がAndorid実機での画面表示テストや、動作テスト、アプリのパフォーマンスチェックなどをする場合に使われます。
なので開発者や、Androidをバリバリ使いこなしている人以外は、知らない人の方が多いのではないでしょうか?
しかし、この「開発者向けオプション」は特定の項目を変更することで画面描写が速くなるケースもあります。知っていて損はない機能です。
※開発者向けオプションの項目はAndroidのバージョンによって異なります。
目次
- 開発者向けオプションの表示方法
- 開発者向けオプションを非表示にする方法
- 開発者向けオプションの使い方
- Android 9の設定項目
- Bluetooth HCIスヌーズログを有効にする
- OEMロック解除
- 実行中のサービス
- WebViewの実装
- USBデバッグ
- USBデバッグの許可の取り消し
- デバッグアプリを選択
- デバッガを待機
- USB経由のアプリを確認
- GPS偽装アプリを選択する
- 表示属性検査を有効にする
- ログバッファのサイズ
- システムトレース
- Wi-Fiディスプレイ認証
- Wi-Fi詳細ロギングを有効にする
- モバイルデータを常にオンにする
- USB構成の選択
- 絶対音量を有効にする
- Bluetooth AVRCPバージョン
- Bluetoothオーディオコーデック
- Bluetoothオーディオサンプルレート
- サンプルあたりのBluetoothオーディオビット
- Bluetoothオーディオチャンネルモード
- Bluetoothオーディオ LDAC コーデック
- デバッグGPUオーバードロー
- 非矩形クリップ操作をデバッグ
- 4x MSAAを強制的に有効
- 色空間シュミレート
- USBオーディオルーティングを無効化
- 厳格モードを有効にする
- GPUレンダリングのプロフィールを作成
- すべてのANRを表示
- 通知チャンネルの警告を表示
- 無効化されたアプリ
- 外部ストレージへのアプリの書き込みを許可
- アクティビティサイズを変更可能にする
- ShortcutManager通話制限カウンタリセット
- 何か不具合が発生した時の対処法
- まとめ
開発者向けオプションの表示方法
開発者向けオプションを表示するには、
「設定」
「端末情報」
と進み、ビルド番号の箇所を連続で7回タップします。
「これでデペロッパーになりました!」と表示されます。
再び、設定画面に戻ると今まで表示されていなかった開発者向けオプションが表示されています。
開発者向けオプションを非表示にする方法
一度表示した開発者向けオプションを非表示にするには、
「設定」
「アプリ」
と進みます。
ダウンロード済みの画面から左にスワイプして「すべて」の項目にします。すべてのアプリのリストの中から「設定」をタップします。
「データを消去」をタップします。
「OK」をタップします。
これで開発者向けオプションは非表示になります。
開発者向けオプションの使い方
まずは、開発者向けオプションをOnにします。
OKをタップします。
Android4.4.4の場合、開発者向けオプションの項目は以下のようになっています。
スリープモードにしない
Bluetooth HCIスヌーズログを有効にする
プロセスの統計情報
デバック
USBデバッグ
USBデバッグの許可の取り消し
電源メニューのバグレポート
擬似ロケーションを許可
デバッグアプリを選択
デバッガを待機
USB経由のアプリを確認
ワイヤレスディスプレイ認証
入力
タップを表示
ポインタの表示
描画
表示面の更新を表示
レイアウトの境界を表示
RTLレイアウト方向を使用
ウィンドウアニメスケール
トランジスションアニメスケール
Animator再生時間スケール
2次画面シュミレート
ハードウェアアクセラレーテッドレンダリング
GPUレンダリングを使用
ハードウェア層情報を表示
GPUオーバードローをデバッグ
非短形クリップ操作をデバッグ
4x MSAAを適用
HWオーバーレイを無効
監視
厳格モードを有効にする
CPU使用状況を表示
GPUレンダリングのプロフィール
OpenGLトレースを有効化
アプリ
アクティビティを保持しない
バックグラウンドプロセスの上限
すべてのANRを表示
普段、そんなに触ることのない項目ばかりですが、いくつか確認しておきたい項目を書いておきます。上記の紫文字の項目です。
プロセスの統計情報
まず、プロセスの統計情報では、どのアプリがどの程度メモリを使用しているか確認できます。スマホの操作感が鈍くなった時や画面表示が固まる時などに確認して、メモリ使用率の多いアプリを終了させてみるのもいいかも知れません。
※Google Play開発者アプリは終了させてしまうと不具合が起きますので、触らないようにしましょう。
ウィンドウアニメスケール
この項目を変更すると、ウィンドウアニメーションの再生速度が変わります。ブラウザの設定画面や、設定変更の確認画面を表示させる時などの再生速度です。値が小さいほど速くなりますので、x0.5もしくはアニメーションオフに設定すれば、速く表示できます。下画像の画面を表示させる時もウィンドウアニメーションです。
トランジスションアニメーションスケール
この項目を変更すると、トランジスションアニメーションの速度が変わります。アプリを起動する時や戻るをタップした時などの画面遷移アニメーションの再生速度です。値が小さいほど速くなりますので、x0.5もしくはアニメーションオフに設定すれば、速く表示できます。
Animator再生時間スケール
この項目を変更すると、Animator再生時間の速度が変わります。アニメーションを表示する際の再生速度を設定できます。分かりやすい確認方法としては、ブラウザの設定画面を表示した時に、文字が現れるアニメーションを見るとよく分かります。x0.5もしくはアニメーションオフに設定すれば、速く表示できます。
GPUレンダリングを使用
2D描画にGPUを使用する設定です。画像処理はGPUに任せた方がいいですが、CPUに比べてGPUはバッテリーを多く消耗します。しかし、スペックの低いCPUを搭載している機種ならば、GPUに画像処理を任せることで、それ以外の処理にリソースを割り当てできることになります。その結果、総合的に快適になるケースがあるかも知れません。
HWオーバーレイを無効
ハードウェアオーバーレイ有効の方が低い処理能力で画面表示できます。ハードウェアオーバーレイによってレンダリングは最適化されるようになっています。この項目について海外サイトで調べましたが、「無効にするとスクロールが明らかに速くなった」などの意見がある一方で、「システム統合やHWビデオデコードのデバッグにのみ役立つので触らない方が良い」と言う意見もあります。基本的にこのような項目は、技術的な仕組みや詳細が分かる人でない限り、デフォルトの設定が無難です。
アクティビティを保持しない
ユーザーが離れたアクティビティがすぐに破棄されるように設定できます。フリーズ、強制終了、再起動が発生する可能性がありますので設定する必要はないです。
開発者が、OSのメモリ不足など何らかの理由でアプリが強制終了したと言う動作を確認テストする場合に役立つようです。
バックグラウンドプロセスの上限
バックグラウンドプロセスの上限を設定できます。プロセスの上限は4まで設定可能。バックグラウンドプロセスを使用しないにすると、特定のアプリではバグが発生する可能性もあります。どうしても制限したい場合は4から試した方がいいです。この項目もデフォルトの設定である標準にしておいた方が無難です。
開発者向けオプションの項目はAndroidバージョンによって異なりますので、Developerユーザーガイドを参考にしてください。
Android 9の設定項目
上記の開発者向けオプションはAndroid 4.4で説明しましたが、Android 9の開発者向けオプションの説明も追記しておきます。
Android 9では項目が多くなっています。しかし、そのほとんどは基本的に開発者でない限り触る必要はありません。触るとしたらBluetoothのサウンド関連くらいでしょう。
Android 9の開発者向けオプションの設定項目は機種にもよりますが、ざっと以下のような項目があります。※上記で説明した項目は省いています。
ロック画面を使用しない
充電中、画面をオンのままにする
Bluetooth HCIスヌーズログを有効にする
OEMロック解除
実行中のサービス
画像の色モード
WebViewの実装
自動システムアップデート
クイック設定デベロッパタイル
デバック
USBデバッグ
USBデバッグの許可の取り消し
GPS偽装アプリを選択する
表示属性検査を有効にする
デバッグアプリを選択
デバッガを待機
USB経由のアプリを確認
ログバッファのサイズ
システムトレース
ネットワーク
Wi-Fiディスプレイ認証
Wi-Fi詳細ロギングを有効にする
モバイルデータを常にオンにする
USB構成の選択
絶対音量を有効にする
Bluetooth AVRCPバージョン
Bluetoothオーディオコーデック
Bluetoothオーディオサンプルレート
サンプルあたりのBluetoothオーディオビット
Bluetoothオーディオチャンネルモード
Bluetoothオーディオ LDAC コーデック
入力
タップを表示
ポインタの位置
描画
表示画面の更新を表示
レイアウトの境界を表示
右から左のレイアウト方向を強制使用
ウィンドウアニメスケール
トランジスションアニメスケール
アニメ再生時間スケール
セカンド画面をシュミレート
最小幅
ハードウェアアクセラレーテッドレンダリング
2D描画用にGPUを使用する
GPU表示の更新を表示
ディスプレイ層の更新を表示する
デバッグGPUオーバードロー
非矩形クリップ操作をデバッグ
4x MSAAを強制的に有効
HWオーバーレイを無効
色空間シュミレート
メディア
USBオーディオルーティングを無効化
監視
厳格モードを有効にする
GPUレンダリングのプロフィールを作成
アプリ
アクティビティを保持しない
バックグラウンドプロセスの上限
すべてのANRを表示
通知チャンネルの警告を表示
無効化されたアプリ
外部ストレージへのアプリの書き込みを許可
アクティビティサイズを変更可能にする
ShortcutManager通話制限カウンタリセット
認可の監視を無効化する
Bluetooth HCIスヌーズログを有効にする
Bluetooth HCIスヌーズログとはBluetoothで通信した内容をログファイルとして出力することです。
Bluetooth接続の通信エラーなどを解析する時に使用します。
詳細な分析をするにはAndroid Debug Bridge(adb)とAndroid SDKをPCにインストールする必要があります。
ログファイルはスマホの開発者向けオプションの「USBデバッグ」と「Bluetooth HCIスヌーズログを有効にする」をオンにしてPCに接続すると確認することができます。
機種にもよりますが、以下の場所に「btsnoop_hci.log」と言うファイルがあります。
OEMロック解除
OEMロック解除とは、デバイスのブートローダーの不正なロック解除に対するセキュリティ機能として使用されます。通常は無効になっているオプションです。
OEMロック解除が無効になっている状態で誰かがブートローダーのロック解除をしようとするとエラーメッセージを返すようになっています。
実行中のサービス
デバイスで実行中のサービスを表示します。また、ここで実行中のサービスは強制停止することができます。
WebViewの実装
AndroidアプリケーションがWebブラウザを開かなくてもWebページを表示できるようにします。
WebViewの実装では、デバイス標準のWebViewもしくはChrome APKを使用してのWebViewかを選択できます。Chromeを使っている場合はデバイス標準のWebViewは選択できません。
Chrome APKを使用してのWebViewでは、デバイス自体のメモリ使用量が向上し、WebViewを最新の状態に保つために必要な帯域幅も削減されます。
USBデバッグ
Android Debug Bridge(ADB)の使用を前提に、PCのUSBポートを介してスマホと通信できます。
USBデバッグの許可の取り消し
PCを使用して初めてUSBをデバッグするときは、キーペアを認証して設定する必要があります。この設定により、すべてが取り消されます。
デバッグアプリを選択
アプリ開発者がアプリを個別にデバッグするためのメニュー。開発者でなければ設定する必要はありません。
デバッガを待機
「デバッグアプリを選択」していない限りこの設定は触れません。
デバッガーが検出されたときにすぐにデバッグ済みのアプリケーションをアタッチします。
USB経由のアプリを確認
「デバッグアプリを選択」していない限りこの設定は触れません。
アプリを手動またはUSB経由でインストールすると、デバイスに潜在的に有害なウイルスが感染する可能性があります。それらのアプリをAndroid Debug Bridge(ADB)でスキャンします。
GPS偽装アプリを選択する
天気アプリや地図アプリで使用されるGPS位置情報は、ある程度正確な位置が分かるので便利な反面、セキュリティ的にはリスクもあります。
「うっかりSNSなどにスマホで撮った写真やキャプチャ画像をアップロードしたら位置情報が写っていた」と言ったケースです。
この機能を使用するにはGPS偽装アプリをインストールする必要があります。
表示属性検査を有効にする
ViewインスタンスのmAttributesメンバー変数にビュー属性情報を保存して、それをデバッグに利用できます。この属性情報は、Layout Inspectorユーザーインターフェースを通じてアクセスできます。Android Studioを使用しての開発者向けオプションなので通常は設定する必要はありません。
ログバッファのサイズ
ログバッファサイズとは着信音やスマホの録音機能に関する処理時間のことです。
ログバッファサイズが小さすぎると、オーディオまたは録音の処理が短時間となりプロセッサに負荷がかかる場合があります。
また、ログバッファサイズが大きすぎると、サウンドカード間のマイクの処理速度が遅くなり、パフォーマンスに影響します。
Andoroid 9では64KBから16MBまでのサイズを選択して設定できます。デフォルトでは256KBが選択されています。
特に理由がない限り256KBで問題ありません。
システムトレース
パフォーマンスを改善する為、システムアクティビティを記録して後で分析する機能です。
Wi-Fiディスプレイ認証
Wi-Fi Alliance Wi-Fi Display Specificationオプションで説明されている仕様に合わせて、ワイヤレスディスプレイ認証の構成コントロールをアクティブにします。
Wi-Fi詳細ロギングを有効にする
WiFi詳細ログは、接続している各ワイヤレスネットワーク(SSID)のWi-Fiログレベルを上げる高度なログメカニズムです。相対受信信号強度(RSSI)に従ってログを記録します。
モバイルデータを常にオンにする
Wi-Fiがオンになっていても、常にモバイルデータをアクティブに保ちます。
USB構成の選択
PCに接続されているデバイスのUSB構成のタイプを選択できます。
選択できるUSB構成のタイプは以下の通りです。
- 充電専用
- MTP
- PTP
- RNDIS
- MIDI
絶対音量を有効にする
音量が大きすぎるなどリモートデバイスに音量の問題がある場合、Bluetoothの絶対音量機能を無効にするオプションです。
Bluetooth AVRCPバージョン
デバイスが接続されているすべてのBluetooth機器を制御するために使用するプロファイルバージョンを選択することができます。デフォルトではAVRCP 1.4が選択されています。
Bluetoothオーディオコーデック
適切なコーデックを選択することで、デバイスの音質を調整できます。
利用可能なオプションは、以下の通りです。
- SBC
- AAC
- aptX
- aptX HD
- LDAC
Bluetoothオーディオサンプルレート
オーディオコーデックのサンプルレートを選択することにより、1秒あたりのオーディオサンプル数を調整できます。サンプルレートが高いほど、より多くのリソースが必要になります。
選択できるサンプルレートは以下の通りです。
- 44.1 KHz
- 48.0 KHz
- 88.2 KHz
- 96.0 KHz
サンプルあたりのBluetoothオーディオビット
各オーディオサンプルのビット数を設定できます。ビットレートが高いほど音質は良くなりますが、その分容量は大きくなります。
Bluetoothオーディオチャンネルモード
モノラルかステレオを選択できます。
Bluetoothオーディオ LDAC コーデック
音質を向上させる為にサウンドの最適化を行えます。
音質重視、音質と接続品質のバランス確保、接続の品質重視、ベストエフォートが選択できます。
デバッグGPUオーバードロー
オーバードローとは、描画要素の上に描画することです。オンにすると、発生したオーバードローが強調表示されて表示されます。
非矩形クリップ操作をデバッグ
キャンバス上のクリッピング領域を無効にして、異常な(非正方形)キャンバス領域を作成します。通常、クリッピング領域は、円形のクリッピング領域を超える描画を防ぎます。
4x MSAAを強制的に有効
マルチサンプルアンチエイリアス(MSAA)を強制します。アンチエイリアスを増やすと見栄えは良くなりますが、パフォーマンスは低下します。
色空間シュミレート
デバイスのUI全体の配色を変更できます。
無効、モノクロ(黒、白、グレー)、第二色弱(赤緑)、第一色弱(赤緑)、第三色弱(青黄)が選択できます。
USBオーディオルーティングを無効化
USBポート経由でPCに接続された外部オーディオデバイスへの自動ルーティングを無効にします。自動ルーティングは、USB対応アプリに干渉する可能性があります。
厳格モードを有効にする
これを有効にすると、バックグラウンドまたはメイン画面での操作が通常より長くかかるなどした場合に、画面のスナップショットが取得され、ユーザーに通知されるようになります。
GPUレンダリングのプロフィールを作成
これを有効にするとGPUレンダリングを視覚的に確認できます。
すべてのANRを表示
Android Not Responding(ANR)は、プロセスまたはサービスが何らかのエラーのために予期せず終了したときにユーザーに表示されるダイアログです。これらのANRダイアログのほとんどは、既知のサービスまたはアプリ用に表示され、ほとんどのサービスやアプリは非表示になっています。この設定を有効にすると、各操作プロセスのダイアログが表示されます。
通知チャンネルの警告を表示
アプリから有効なチャネルのない通知が発信された時に画面上に警告を表示します。
無効化されたアプリ
無効化されたアプリを一覧で確認できます。
外部ストレージへのアプリの書き込みを許可
これを有効にするとすべてのアプリを外部ストレージに書き込めるようになります。
アクティビティサイズを変更可能にする
マルチウィンドウですべてのアクティビティサイズを変更できるように設定できます。
ShortcutManager通話制限カウンタリセット
このオプションは、開発テスト中に使用されます。バックグラウンドアプリがレート制限に再び達するまでショートカットAPIを呼び出し続けることができることを確認する為のものです。
何か不具合が発生した時の対処法
開発者オプション自体をオフにして、端末を再起動しましょう。各種設定変更がメモリに記憶されていると、開発者オプション自体をオフにしても治らないケースがあります。そんな時は再起動することでメモリキャッシュがクリアされますので、基本的にPCもスマホも、何か不具合があった場合にはまず再起動です。
まとめ
上記で挙げた項目以外でも、
レイアウトの境界を表示
タップを表示
ポインタの表示
CPU使用状況を表示
などスマホの画面上で視覚的に確認できるようになります。
私はアニメーション関連だけを全てオフにしています。パッと表示される方が好みなので。
その辺りはご自身の好みで設定してみてください。