Androidアプリの開発環境の準備

 来るべきXperiaに備えて、Ubuntu9.10でAndroidアプリを開発できるようにしてみた。
 Ubuntu9.10ではこちらの方法は上手くいかなかったので、 http://www.futuredesktop.org/developing_android_apps_on_ubuntu.html の手順でセットアップした。

EclipseAndroid-SDK R5のセットアップ

 まずはJavaEclipseAndroid-SDKをセットアップする。JavaEclipseについては上記のサイトの手順の通りにすれば良い。
 Android-SDKはより新しいバージョンが出ている。現時点での最新はR5で、圧縮ファイルは android-sdk_r05-linux_86.tgz。解凍するとandroid-sdk-linux_86というディレクトリができる。
 ちなみに最初はeclipseとAndroidSDKのフォルダを/usr/libに置いてみたが、eclipseにAndroidSDKのパスを設定することができなかった。アクセス権の関係?そこで、手順の通りホームに置いた それぞれ /opt/eclipse/ と /opt/google/android-sdk-linux_86/ に置いた。(当然eclipseの起動スクリプトのパスも変更した)

AVDの作成

 その後のセットアップも概ね上記のサイトの手順通りで出来た。
 ただし、AVD(Android Virtual Device)を作るところだけは手順通りでは出来かなかった。おそらくSDKのバージョンが上がった影響だろう。手順では、android-sdk-linux_86/tools/android で avd を create しているが、同じようにやると次のようなエラーが出た。

$ ~/android-sdk-linux_86/tools$ ./android create avd --target 2 --name my_avd
Error: Target id is not valid. Use 'android list targets' to get the target ids.

 このエラーメッセージの指示の通りに list targets オプションで target のリストを表示させてみても以下のように何も表示されない。

$ ~/android-sdk-linux_86/tools$ ./android list targets
Available Android targets:

 困ってAndroid SDKの本家サイト(Android Studio と SDK ツールのダウンロード  |  Android Developers) に行ってみると、画面の左側に Downloadable SDK Components というリンクがある。どうもこれらの Components を入れないとAVDを作れないようだ。(ちゃんと調べてません)
 Componentsを追加する方法(Adding SDK Components)を見ると、Componentのインストール等は Android SDK and AVD Manager でやれば良いらしい。

Android SDK and AVD Manager

 Android SDK and AVD Manager は Eclipse の"Window"メニューの"Android SDK and AVD Manager"から起動できる。
 Android SDK and AVD Manager の画面を開いたら、まずは画面左のリストで Available Packages を選択する。
 画面右にGoogleAndroidリポジトリが表示されるので、チェックを入れる。すると、リポジトリの下に様々なバージョンのPlatformやらDocumentのリストが(すべてチェックされた状態で)表示される。リストで必要なものにチェックを入れて、Install Selected ボタンをクリックする。(自分は全部にチェックを入れたままにした。)
 使用条件の確認(だったっけ)を求められるので、ラジオボタンで Accept All を選択し、Install ボタンをクリックする。
 ダウンロードとインストールが終了すれば、必要なPlatformがインストールされた。
 さっき何も表示されなかったコマンド($ ./android list targets)をもう一度やってみると、以下のようにズラリとtargetが表示されるようになっている。

$ ~/android-sdk-linux_86/tools$ ./android list targets
Available Android targets:
id: 1 or "android-3"
     Name: Android 1.5
     Type: Platform
     API level: 3
     Revision: 1
     Skins: HVGA (default), QVGA-P, HVGA-L, QVGA-L, HVGA-P
id: 2 or "Google Inc.:Google APIs:3"
     Name: Google APIs
     Type: Add-On
     Vendor: Google Inc.
     Revision: 3
     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
id: 3 or "android-4"
     Name: Android 1.6
     Type: Platform
     API level: 4
     Revision: 1
     Skins: WVGA854, QVGA, HVGA (default), WVGA800
id: 4 or "Google Inc.:Google APIs:4"
     Name: Google APIs
     Type: Add-On
     Vendor: Google Inc.
     Revision: 2
     Description: Android + Google APIs
     Based on Android 1.6 (API level 4)
     Libraries:
      * com.google.android.maps (maps.jar)
          API for Google Maps
     Skins: WVGA854, HVGA (default), WVGA800, QVGA
id: 5 or "android-6"
     Name: Android 2.0.1
     Type: Platform
     API level: 6
     Revision: 1
     Skins: WVGA854, QVGA, HVGA (default), WVGA800, WQVGA400, WQVGA432
id: 6 or "Google Inc.:Google APIs:6"
     Name: Google APIs
     Type: Add-On
     Vendor: Google Inc.
     Revision: 1
     Description: Android + Google APIs
     Based on Android 2.0.1 (API level 6)
     Libraries:
      * com.google.android.maps (maps.jar)
          API for Google Maps
     Skins: WQVGA400, WVGA854, HVGA (default), WQVGA432, WVGA800, QVGA
id: 7 or "android-7"
     Name: Android 2.1
     Type: Platform
     API level: 7
     Revision: 1
     Skins: WVGA854, QVGA, HVGA (default), WVGA800, WQVGA400, WQVGA432
id: 8 or "Google Inc.:Google APIs:7"
     Name: Google APIs
     Type: Add-On
     Vendor: Google Inc.
     Revision: 1
     Description: Android + Google APIs
     Based on Android 2.1 (API level 7)
     Libraries:
      * com.google.android.maps (maps.jar)
          API for Google Maps
     Skins: WQVGA400, WVGA854, HVGA (default), WQVGA432, WVGA800, QVGA

AVDの作成

 なお、Android SDK and AVD Manager は、(android create コマンドの代わりに)AVDで作ることもできる。
 Android SDK and AVD Manager でAVDを作るには、画面左のリストの Virtual Devices を選ぶ。そして、画面右の New ボタンをクリックすると、ダイアログ形式でAVDを作ることができる。