Android OS 1.5からエミュレータの仕組みが変化しました。ソースからコンパイルしたイメージをエミュレータ上で使用する時には、エミュレータのイメージを上書きしても良いですが、元に戻すのも大変ですので、より標準的な新規ターゲットの作成をしてみました。

tao_build_no.png

ビルドしたイメージをターゲットとして作成、その後エミュレータで使用するまでを纏めました。

ターゲットとは

ターゲットに関するコマンドについては、Android AVDとemulator (SDK 1.5)に詳しく記載してあります。そちらも合わせてご覧ください。

Android OS 1.5をインストールした状態で、android list targetsを実行すると以下のように表示されます。


Available Android targets:
[1] Android 1.1
API level: 2
Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
[2] Android 1.5
API level: 3
Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
[3] Add-on: Google APIs
Vendor: Google Inc.
Description: Android + Google APIs
Based on Android 1.5 (API level 3)
Libraries:
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P

Dev Guideの、Android Virtual Devicesには以下のように記載されています。

The android tool scans the <sdk>/platforms and <sdk>/add-ons directories looking for valid system images and then generates the list of targets. Here’s an example of the command output:

従って、<sdk>/add-onsディレクトリにディレクトリを作成して適切に設定ファイルを記載することで新しいターゲットを作成でき、そのターゲットからAVDファイルを作成することでいつでも簡単にイメージを切り替える事が可能になります。

前提条件

  • Androidのソースをコンパイルしてイメージが出来上がっている事
  • Android SDK1.5r2がインストール済みの事

なお、今回私は、BuildはUbuntoで行いイメージをVistaに持ってきて動作確認を行いましたが、どのOSでも特に問題は発生しないと思います。

ターゲット

ターゲット作成する上で参考になるのは、<sdk>/plartforms/android-1.5とadd-ons/google_apis-3です。この両者を比較すると色々と分かると思いますので、今後のバージョンアップで仕様変更がありこの記事が古くなった時は参照してください。

  1. ターゲット名を決める。

    target名は”taosoftware”としました。何でも構いませんが以降の”taosoftware”の文字を適切に置き換えてください。

  2. ターゲットディレクトリの作成

    <sdk>//add-ons/google_api3を同じディレクトリにコピーしてtaosoftwareに変更

    この状態でandroid targets listを実行すると以下のようにid4が表示されてtargetが増えているのが分かります。

    
    id: 4
    Name: Google APIs
    Type: Add-On
    Vendor: Google Inc.
    Description: Android + Google APIs
    Based on Android 1.5 (API level 3)
    Libraries:
    * com.google.android.maps (maps.jar)
    API for Google Maps
    Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P
    
  3. いらないファイルの削除

    lib、sample、docディレクトリは今回必要ありませんので削除します。

  4. manifest.iniの編集

    ここに、ターゲットの名前やその他の情報を記載します。

    変更前

    
    # SDK Add-on Manifest
    name=Google APIs
    vendor=Google Inc.
    description=Android + Google APIs
    # version of the Android platform on which this add-on is built.
    api=3
    # version of the add-on
    version=2
    # list of libraries, separated by a semi-colon.
    libraries=com.google.android.maps
    # details for each library
    com.google.android.maps=maps.jar;API for Google Maps
    

    変更後

    
    # SDK Add-on Manifest
    name=Taosoftware Image
    vendor=Taosoftware co.,ltd.
    description=Android + Taosoftware image
    # version of the Android platform on which this add-on is built.
    api=3
    # version of the add-on
    version=2
    
  5. hardware.iniの編集

    変更は必要ありません(元々空です)

  6. イメージのコピー

    ビルドしたイメージをimgesファイルにコピーします。

    • ramdisk.img
    • userdata.img
    • sytem.img

ターゲット作成の確認

android list targetsを実行して以下のように出力されれば終了です。


id: 4
Name: Taosoftware Image
Type: Add-On
Vendor: Taosoftware co.,ltd.
Description: Android + Taosoftware image
Based on Android 1.5 (API level 3)
Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P

AVDファイルの作成

AVDファイルを作成します


>android create avd -n test -t 4 -c 16M
Created AVD 'test' based on Taosoftware Image (Taosoftware co.,ltd.)

AVDファイル作成の確認


>android list avd
Name: test
Path: C:\Users\gaku\.android\avd\test.avd
Target: Taosoftware Image (Taosoftware co.,ltd.)
Based on Android 1.5 (API level 3)
Skin: HVGA
Sdcard: 16M

エミュレータの起動


emulator @test

エミュレータが起動したら、Setting->About Phoneを確認

左が今回作成した物、右がAndroidSDKについてきた、target3です。

左のイメージは、Buildの所に”gaku”という文字が入っています。

作成したエミュレータのSetting画像
target 3のイメージ

ちなみに、このイメージは、設定等は何も変更せずにmakeした物ですが、日本語へのローカライズも終了しています。デフォルトで入っているソフトウェアは以下のような物が入っています。

アプリケーションリスト

ブログ内の関連する記事