Android エミュレータで電源接続/切断をテストするには


バッテリの状況を取得するアプリの開発では、エミュレータのバッテリステータスや、パラメータを変化させてのテストが必要となります。(Android エミュレータは、起動時には電源接続で充電中、容量 50% になっています。)

そのためには telnet を使います。ここでは、その手順についてまとめておきます。

  1. エミュレータ(AVD)を起動しておきます。
  2. コマンドプロンプトを起動します。
  3. adb devices” を実行します。すると、接続可能なデバイスの一覧が表示されます。デバイス名の後ろの 4桁の数字がポート番号です。adb_devices
  4. telnet localhost ポート番号” を実行します。telnet
    (※ここで「コマンドがありません」となる場合は、telnet がインストールされていません。Windows7 の場合は、Windows7 で Telnet クライアント を参考にインストールして下さい。その他の環境では、適切な方法でインストールしてください。)
  5. 「接続中」メッセージの後、しばらくすると「OK」となり Android コンソールに接続します。help でコマンド一覧が見れます。またコンソールを終了する時は、 exit です。telnet_help
  6. 電源に関するコマンドは power です。
    power  sub-command  パラメータ
    のように実行しますが、power のみで実行するとサブコマンドの一覧が見れます。ここでは、主なコマンドをあげておきます。 

    • power display                             電源パラメータ一覧の表示
    • power ac on                                電源接続
    • power ac off                                電源切断
    • power capacity 70                       電源容量を 70% にする
    • power status charging               充電中
    • power status discharging         放電中

注) power status は、状態としての充電/放電中等を変えますが、電源の物理的な接続/切断 は、power ac on/off でエミュレートします。両者は自動的に連動するわけではありません。(前者は、ACTION_POWER_CONNECTED, ACTION_POWER_DISCONNECTED インテントを投げません。)

Windows7 で Telnet クライアント


Android 開発で、エミュレータ上のパラメータを任意の値に設定して、アプリのテストをしたい場合があります。例えば、バッテリー残量を表示するアプリであれば、エミュレータ上のバッテリー残量を変化させて、アプリの表示が正しく追従するかどうか確かめたいという場合です。

そんな時は、Telnet を使ってエミュレータコンソールにアクセス(Using the Emulator Console)すれば良いです。

ただし、Windows 上でデフォルトで Telnet が使用できるわけではありません。ここでは、Windows7 で Telnet クライアントを使用できるようにする方法について説明します。

  1. 「コントロールパネル」 > 「プログラム」 > 「プログラムと機能」 にある、「Windows の機能の有効化または無効化」を選択。
  2. 「Telnet クライアント」をチェックする。
    Telnet

以上で Telnet クライアントが使用できるようになりました。