LoginSignup
1
1

More than 5 years have passed since last update.

Androidアプリケーション技術者認定試験ベーシックの試験範囲の知識をまとめた(12)

Posted at

デバッグ

エミュレータ

エミュレータで再現されるハードウェア

エミュレータで再現されるハードウェアをAndroid仮想デバイス(AVD:Android Virtual Device)という。

  • ARMバージョン5以降のCPU
  • 16ビットカラーの液晶ディスプレイ(1ピクセルあたり16ビットのカラー(6万5536色)を表現可能。
  • Qwertyキーボード, Dpad/Phoneボタン
  • サウンドチップ
  • フラッシュメモリ
  • SIMカードがシミュレートされたGSMシステム(Global System for Mobile Communications)
  • ビデオカメラ
  • 加速度計などのセンサー

Android仮想デバイスの作成

toolsフォルダのandroid create avdコマンドを発行する(GUIでもできる)

Android create avdコマンドの使い方

引数 役割
-n <avd_name> 作成するAVDの名前
-t <targetID> AVDのOSのバージョンを指定する。OSのバージョンはAndroid2.3.3 APIレベル10の場合は「18」などandroid list targetsコマンドで表示する
-c <size>[K M] エミュレータで使用するSDカードの容量を指定する

androidコマンドのまとめ

書式 役割
create avd -n <avd_name> -t <targetID> -c <size>[K M] AVDを新規作成
move avd -n <avd_name> -r <変更するavd_name> AVDの名前変更
delete avd -n <avd_name> AVDを削除
list avds 一覧を表示

エミュレータの起動

emulatorコマンドでAVDを起動できる。

emulator -avd `<avd_name>`
emulator @`<avd_name>`

エミュレータのコンソール機能

エミュレータにはコンソール機能がついている。エミュレータが起動している状態でtelnetコマンドを実行する
(telnet localhost <port_no>)ポート番号はウィンドウタイトルの位置に表示されている

バッテリーをエミュレート

接続したら、power status unknownなどでバッテリーの状態を変更できる

powerコマンドの使い方

引数 役割
display バッテリーや充電の状態を表示する
capacity <percent> バッテリーの充電%を変更する
present <true/false> 充電器につながってるどうかを設定する
status <unkown/charging/discangeing/not-charging/full> バッテリーの状態を指定した状態に設定する

ネットワーク速度をエミュレート

network speedコマンドにより様々な環境下でのテストが可能となる

network speedコマンドの使い方

引数 役割
gsm/hcsd/gprs/edge/umts/hsdpa 各通信のネットワークスピードになる
full 制限なし
<num> 上がりと下りのスピードが同じ
<up>:<down> 上がりと下りのスピードをそれぞれ指定する

DDMS

DDMS(Dalvik Debug Monitor Server)はバグの早期発見やテストに非常に役立つツール。

DDMSを起動する

エミュレータが起動している状態でddmsコマンドを実行する

電話とSMSの送信

Emulator ControlタブをクリックしIncoming number欄に電話番号を入れVoiceにチェックマークを付けて、Callボタンをクリックする
SMSを送信する場合は、Emulator ControlタブでSMSを選びMessageに送信したい文字を入力してCallボタンをクリックする

DDMSの画面

Deviceペイン

開発用のPCに接続しているAndroidデバイスと各プロセスの一覧を表示する。プロセスを強制停止したり、GCを発生させることが出来る(ゴミ箱のアイコン)

Infoタブ

選択されたプロセスのプロセスID、VMバージョン情報が表示される

Threadsタブ

選択したプロセスのスレッド一覧が表示される

VM Heapタブ

選択したプロセスでGCを行った場合に更新されたヒープの統計データが表示される。

 Allocation Trackerタブ

メモリアロケーションの追跡が表示される

Emulator Controlタブ

エミュレータに電話を掛けたり、SMSメッセージを送ることが出来る。疑似ロケーションを送ることでGPS情報をシミュレーションすることもできる。

Logcatペイン

端末のlogcat情報を表示できる

スクリーンショット

スクリーンショットを取るには、プルダウンメニューから[Device]->[Screen Capture]を選択する


adb

adb(Android Debug Bridge)コマンドラインで開発用PCとAndroid端末を接続し、操作するためのツール

adbの構成

adbは開発用PCで動作する「クライアント」「サーバ」とAndroid端末で動作する「デーモン」の3つから構成される。

adb client

adbコマンドのこと。adb logcatやadb devices等のコマンドがある。adb clientとadb serverのやり取りはTCPポート5037が使われる

adb server

adb clientでの操作をAndroid端末に送信するもの。adb clientが発行したコマンドをadb daemonに仲介する。

adb daemon

Android端末(実機、エミュレータ)で動くバックグラウンドプロセス。adb serverからのコマンドを実行し結果を返す。adb serverとのやり取りはTCPポートの5555-5585の奇数ポートを利用する

adbのコマンド

エミュレータがadb接続されるかどうかを確認するにはadb devicesコマンドを使用する

主なadbコマンドの一覧

コマンド 役割
adb start-server adb serverを起動する
adb kill-server adb serverを停止する
adb devices adb接続されている端末の一覧を表示する
adb push Android端末にファイルを書き込む adb push <開発用PCのファイル名>
adb pull Android端末からファイルを取り込む adb pull <開発用PCのファイルパス>
adb install apkファイルを指定して端末にインストールする
adb uninstall パッケージ名を指定して、アプリをアンインストールする

階層ビューワ(Hierarchy Viewer)

Androidのユーザインターフェース部分を階層表示するビューワ。レイアウトの最適化に役立つ。

階層ビューワを起動する

エミュレータを起動した状態で、hierarchyviewerコマンドを入力する
Load View Hierarchyボタンでレイアウトビューが表示される
Inspect Screenshotボタンでパーフェクトピクセルビューが表示される


Traceview

処理のボトルネックを調べるツール。

Traceviewを使う

Android SDKに含まれるツール。使うには準備が必要である。
android.os.Debugをimportしたうえで、計測したい場所をDebug.startMethodTracing(<ファイル名>);とDebug.stopethodTracing();で囲む。

計測結果は/sdcard/<ファイル名>.traceに書き出される。SDカードに出されるので、マニフェストファイルにandroid.permission.WRITE_EXTERNAL_STORAGEを指定する必要がある

プログラムを実行することで計測結果のファイルを取得できる。
adb pullコマンドもしくは、DDMSのエクスプローラ機能を利用してファイルを確認できる
traceview <ファイル名>コマンドで計測結果をグラフィカルに表示できる。


mksdcardコマンド、androidコマンド

仮想SDカードを作成する

mksdcardコマンドで、エミュレータで使用する仮想SDカードを作成できる。AVD作成時にも指定できるがmsdcardコマンドであとで変更もできる
fat32形式で作成でき容量は9MB以上。
作成した、仮想SDカードをエミュレータで使用するには、-sdcardオプションをつけてemulatorコマンドを実行する。

プロジェクトを作成する

androidコマンドでAndroid仮想デバイスの作成・削除・参照、プロジェクトの作成・更新、AndroidSDKの更新ができる。
新規作成するにはandroid create projectコマンドを使用する。


monkeyツール

アプリケーションに対して、クリック、タッチ、ジェスチャをランダムで実行することでバグを発見するツール。

monkeyの起動

エミュレータが起動しているか、USBで認識されている端末がある状態で、adb shell monkeyコマンドを実行する。
adb shell monkey [options] <event-count>のevent-countはイベントのカウント数

monkeyツールの主なオプション一覧

オプション 役割
-v 出力レベルの調整0(デフォルト)~2の範囲で指定する
-s 疑似ランダムイベントのもとになるSeed値を指定する
-throttle イベントの間隔値をミリ秒で指定する
-p テストをするパッケージ名を指定する

monkeyツールを使うと簡単にUIイベントのストレステストができる。ストレステストをする際はthrottleオプションを指定すると良い。(指定しないと0になるため)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1