Android AVDとemulator (SDK 1.5)

Android 1.5 Early Look SDK解説の続きで、emulatorについてです。

先日Android 開発しない人のためのエミュレータインストール記事を書いたのですが、emulatorの仕様が変わって、ダウンロード、インストール、すぐに実行ができなくなってしまいました。新しいエミュレータを実行するには、AVDを作成するためにコマンドラインを起動する必要があり、少し敷居が高くなってしまいました。

とりあえず動かしたい人へ

細かい話はいいので、とりあえずemulatorを動かしたい人は、以下のコマンドを打ってください。

$cd C:\android\android-sdk-windows-1.5_pre\tools$android create avd -n normal -t 3 -c 16M$emulator @normal

AVD(Android Virtual Device)

emulatorを動かすには、Android仮想デバイス(AVD)を作成し、emulatorの引数として渡します。

SDK1.1用仮想デバイス、SDK1.5用仮想デバイス、サードパーティライブラリが入っている仮想デバイス(例えばNTT Docomo用の特殊ライブラリが入ったデバイス)を用意(そんなものは現在ありませんが)し、AVDを切り替えることで、エミュレータとしては汎用的に動作をする事となります。

androidコマンド

AVDファイルは、新しく用意された、”android”コマンドを使用して作成します。

$android create avd --name my_avd_name --target 1

nameは自由な名前を付けます。

targetに指定できる値(数字)は、android list targetsコマンドで取得できます。

android list targets出力
C:\android\android-sdk-windows-1.5_pre\tools>android list targetsAvailable Android targets:[1] Android 1.1API level: 2Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P[2] Android 1.5API level: 3Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P[3] Add-on: Google APIsVendor: Google Inc.Description: Android + Google APIsBased on Android 1.5 (API level 3)Libraries:* com.google.android.maps (maps.jar)API for Google MapsSkins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P

従って、現在使用できる値は、1,2,3の3つとなります。

android createコマンドの引数は以下の物が使用できます。

android create avd出力
C:\android\android-sdk-windows-1.5_pre\tools>android create avdError: The parameters --target, --name must be defined for action 'create avd'Usage:android [global options] action [action options]Global options:-h --help     This help. (false)-s --silent   Silent mode: only errors are printed out. (false)-v --verbose  Verbose mode: errors, warnings and informational messages are prAction "create avd":Creates a new Android Virtual Device.Options:-t --target   Target id of the new AVD [required]-c --sdcard   Path to a shared SD card image, or size of a new sdcard for the-p --path     Location path of the directory where the new AVD will be created-n --name     Name of the new AVD [required]-f --force    Force creation (override an existing AVD) (false)-s --skin     Skin of the new AVD

SDK1.1では、別途指定していたスキンやSDカードは、AVD作成時に指定します。

AVD作成

以下のようなコマンドでAVDの作成が可能です。

Android SDK1.1用
$android create avd --name sdk1.1 --target 1
Android SDK1.5用
$android create avd --name sdk1.5 --target 2
Android SDK1.5 とGoogle Map
$android create avd --name sdk5map --target 3

上記コマンドで作成したAVDは、C:\Documents and Settings\ユーザ名\.android\avd下に作成されます。
SDK1.1の時は、エミュレータは、C:\Documents and Settings\ユーザ名\Local Settings\Application Data\Androidディレクトリを使用していました。この辺りも仕様変更となったようです。

過去に作成したAVDは、android list avdsコマンドで一覧取得可能です

android list avds出力
C:\android\android-sdk-windows-1.5_pre\tools>android list avdsAvailable Android Virtual Devices:Name: sdk1.1Path: C:\Users\gaku\.android\avd\sdk1.1.avdTarget: Android 1.1 (API level 2)Skin: HVGA---------Name: sdk1.5Path: C:\Users\gaku\.android\avd\sdk1.5.avdTarget: Android 1.5 (API level 3)Skin: HVGA---------Name: sdk1.5mapPath: C:\Users\gaku\.android\avd\sdk1.5map.avdTarget: Google APIs (Google Inc.)Based on Android 1.5 (API level 3)Skin: HVGA

エミュレータの起動(コマンドライン)

エミュレータの起動は、AVDを引数に指定します。

$emulator @my_avd_name

従って上記で作成した、SDK1.5用のAVDを指定すると、以下のようになります。

$emulator @sdk1.5

emulatorの新しいオプションは、-help-vertual-device引数を指定する事で取得できます。

emulator -help-virtual-device出力
C:\android\android-sdk-windows-1.5_pre\tools>emulator -help-virtual-deviceAn Android Virtual Device (AVD) models a single virtualdevice running the Android platform that has, at least, its ownkernel, system image and data partition.Only one emulator process can run a given AVD at a time, butyou can create several AVDs and run them concurrently.You can invoke a given AVD at startup using either '-avd <name>'or '@<name>', both forms being equivalent. For example, to launchthe AVD named 'foo', type:emulator @fooThe 'android' helper tool can be used to manage virtual devices.For example:android create avd -n <name> -t 1  # creates a new virtual device.android list avd                   # list all virtual devices available.Try 'android --help' for more commands.Each AVD really corresponds to a content directory which storespersistent and writable disk images as well as configuration files.Each AVD must be created against an existing SDK platform or add-on.For more information on this topic, see -help-sdk-images.SPECIAL NOTE: in the case where you are *not* using the emulatorwith the Android SDK, but with the Android build system, you willneed to define the ANDROID_PRODUCT_OUT variable in your environment.See -help-build-images for the details.

Eclipseからのエミュレータの起動

デフォルト状態では、Eclipseは、”automatic target”モードになっています。
このモードでは以下の順でエミュレータのチェックを行います。

  1. 既に実行しているエミュレータか、デバイス(USBで接続された実機)があればそれを使います。
  2. 既に実行しているエミュレータか、デバイスが2つ以上あれば、選択ダイアログを開き、ユーザが選択した物を使用します
  3. 何も実行されていなければ、ADTは使用可能なAVDを探し、その中からプロジェクト設定にあった物(APIレベルが同じ物)を選択し使用します。

ADT0.9では、Run – Run Configrtationsのターゲットタブにて、マニュアルモードにする事でAVDを直接設定することが可能です。

adt new debug config

まとめ

通常実機の方にはSDカードが付属している事を考えると、サンプル的に使うのであれば以下のコマンドでavdを作成するのが良いかと思います。

$android create avd --name normal --target 3 --sdcard 16M

追記


2009/6/15

android list avdsで表示されるリストを追加するには、Android ビルドしたイメージをエミュレータで動かす標準的な方法に詳しく記載しました。(自分でアンドロイドをソースコードからビルドしたとき等に使用します)

ブログ内の関連する記事

ブログ内のSDK1.5に関連する記事


コメント

このブログの人気の投稿

ドローンプログラミング体験教室を伊豆大島の小学校でしてきました

iBatisで動的SQL

情報処理安全確保支援士登録証のカード型が届きました。