Android* 開発者向けラーニングシリーズ 5: インテル® アーキテクチャー向けに Android* SDK をインストール
この記事は、インテル® デベロッパー・ゾーンに掲載されている「Intel for Android* Developers Learning Series #5: Installing the Android* SDK for Intel® Architecture」の日本語参考訳です。
1 サポートされているオペレーティング・システム
次のオペレーティング・システムがサポートされています。
• Windows* XP (32 ビット)、Windows Vista* (32 または 64 ビット)、Windows* 7 (32 または 64 ビット)
• Mac OS X* (32 または 64 ビット)
• Linux* (Ubuntu* 8.04 以降、Fedora* F12 以降); GNU C ライブラリー (glibc) 2.7 以降が必要です。
• 64 ビットのディストリビューションは、32 ビット・アプリケーションを実行可能でなければなりません。
2 ハードウェア要件
選択したすべての Android* SDK コンポーネントをインストールするのに必要な空きディスク容量がなければなりません。さらに、エミュレーターの実行 (例: Android Virtual Device (AVD) 用 SD カードの作成など) には別途ディスク容量が必要です。
3 JDK のインストール
最低でも Java* JDK 5 または JDK 6 が必要です。JDK 7 もサポートされています。JRE (Java* ランタイム環境) のみでは十分ではありません。システムに JDK 5、6、または 7 がインストールされていない場合は、http://www.oracle.com/technetwork/java/javase/downloads/index.html (英語) から JDK SE 7 をダウンロードしてインストールしてください。
4 Eclipse* のインストール
Android* アプリケーションの開発には、Android* SDK とともに Eclipse* を使用することを推奨します。Eclipse* は、http://www.eclipse.org/downloads/ (英語) からダウンロードやアップデートできます。インテル® アーキテクチャー向けの Android* アプリケーションの開発には、次の Eclipse* 構成を使用すると良いでしょう。
• Eclipse* 3.5 (Galileo) 以降
• Eclipse Classic (バージョン 3.5.1 以降)
• Android Development Tools Plugin (推奨)
5 Apache Ant* のインストール (オプション)
Android* アプリケーションの開発には、Eclipse* などの統合開発環境を使用することを強く推奨します。ただし、別の方法として、Android* SDK とともに Apache Ant* を使用して Android* アプリケーションをビルドすることもできます。Ant* は、http://ant.apache.org/ (英語) からバイナリー・ディストリビューションをダウンロードしてインストールできます。Android* SDK には、Ant* 1.8 以降が必要です。
6 Android* SDK Starter Package のダウンロードと Android* SDK コンポーネントの追加
Android* SDK Starter Package は http://developer.android.com/sdk/index.html (英語) からダウンロードできます。この Android* SDK Starter Package には、Android* アプリケーションの開発に必要なプラットフォーム固有のコンポーネントは含まれていません。プラットフォーム・コンポーネントのダウンロードに必要な基本ツールのみを提供します。
Android* SDK Starter Package をインストールしたら、Android* SDK and AVD Manager を実行します。
• Windows* の場合、[スタート] > [すべてのプログラム] > [Android SDK Tools] > [SDK Manager] を選択します。
• Linux* の場合、<android-sdk-ディレクトリー>/tools/android を実行します。
図 5.1 のように、[Android* SDK and AVD Manager] ダイアログボックスの左側のパネルで [Available packages] を選択し、右側のパネルで [Android Repository] ノードをクリックして展開し、インストールするパッケージを選択します。
注: ファイアウォールが有効な場合、ダウンロードしようとするとエラーメッセージが表示されることがあります。その場合、ファイアウォールを無効な状態にして試してください。
それでも問題が解決しない場合は、SDK Manager を閉じてから、再度管理者として SDK Manager を実行してください。ダウンロード時に表示されるエラーメッセージのほとんどは、この操作を行うことで解決できます。
図 5.1 [Android* SDK and AVD Manager] ダイアログボックス
7 Android* SDK とともに使用する Eclipse* のセットアップ
Eclipse* IDE を使用してソフトウェアを開発する場合は、Android Development Tools (ADT) Plugin をダウンロードしてインストールすることを強く推奨します。
7.1 Eclipse* 用 ADT Plugin のインストール
Eclipse* 用 ADT Plugin をインストールするには、次の操作を行います。
1. Eclipse* を起動し、[Help (ヘルプ)] > [Install New Software (新規ソフトウェアのインストール)] を選択して、[Install (インストール)] ダイアログボックスで [Add (追加)] ボタンをクリックします。
2. 図 5.2 のように、[Add Repository (リポジトリーの追加)] ダイアログボックスで [Name (名前)] フィールドに “ADT Plugin” と入力し、[Location (ロケーション)] フィールドに “https://dl-ssl.google.com/android/eclipse/” と入力して、[OK] をクリックします。
図 5.2 [Add Repository (リポジトリーの追加)] ダイアログボックス
3. 図 5.3 のように、再度 [Install (インストール)] ダイアログボックスが表示され、Google のレポジトリー・サーバーに接続して利用可能な ADT パッケージが表示されます。
図 5.3 ADT パッケージのリスト
4. [Next (次へ)] をクリックし、使用許諾契約書に同意して、[Finish (完了)] をクリックします。
5. Eclipse* を再起動します。
7.2 ADT Plugin の設定
ADT Plugin を設定するには、次の操作を行います。
1. Eclipse* を起動して、[Windows (ウィンドウ)] > [Preferences (設定)] を選択します。
2. [Preferences (設定)] ダイアログボックスの左側のパネルで [Android] を選択し、 右側のパネルで [Browse (参照)] ボタンから Android* SDK のインストール・ディレクトリーを指定し、[Apply (適用)] をクリックします。インストールされている SDK ターゲットのリストが表示されたら、 [OK] をクリックします。
図 5.4 [Preferences (設定)] ダイアログボックス
上記の操作が完了すると、インテル® アーキテクチャー向けの Android* アプリケーションの開発に必要なツールが利用可能になります。これでアプリケーションの開発に必要なものはすべて揃いましたが、ここでインテル® アーキテクチャー (x86) 用のエミュレーターもインストールしておくと、開発後すぐにアプリケーションをテストすることができます。次のセクションでは、インテル® アーキテクチャー (x86) 用のエミュレーターのインストールについて説明します。AOSP ソースを使用してエミュレーターのシステムイメージをビルドし、ビルドした x86 システムイメージをエミュレーションします。Gingerbread* と Ice Cream Sandwich* (ICS) の新機能についても紹介します。
8. Android* Virtual Device のエミュレーションの概要
Android* は、画面サイズ、ハードウェア性能、機能の異なるさまざまなフォームファクターのデバイスで動作します。通常デバイスには、多数のソフトウェア (Android* API) とハードウェア機能 (センサー、GPS、カメラ、SD カード、特定サイズのマルチタッチ・スクリーンなど) が搭載されています。
エミュレーターはさまざまなソフトウェアやハードウェアの設定オプションを備えており、柔軟な設定が可能です。Android* Virtual Device (AVD) と呼ばれるエミュレーター設定を使用して、エミュレーターをカスタマイズできます。AVD は、さまざまな Android* ソフトウェアとデバイスのハードウェア機能を指定する設定ファイルのセットと考えることができます。Android* エミュレーターは、AVD 設定を使用して、エミュレーター上で適切な Android* 仮想イメージを設定し起動します。
Android* Web サイト (http://developer.android.com/guide/developing/devices/index.html (英語)) に記載されているように、通常 AVD 設定には次のものが含まれます。
- すべてのデバイス機能を指定するハードウェア・プロファイル (例: カメラ、センサー)。
- エミュレーターによって使用される AVD (Gingerbread* や Honeycomb* のようなターゲット API レベル) のシステムイメージ。
- ユーザーのデータ、設定、SD カード用の記憶域の役割を果たすデータイメージ。
- エミュレーター・スキン、スクリーンサイズ、SD カードサイズを含むその他のオプション。
開発者は、異なる API レベル、スクリーンサイズ、ハードウェア機能 (カメラ、センサー、マルチタッチなど) をターゲットにすることができます。必要に応じて、AVD 設定によりエミュレーターのカスタマイズが可能です。インテル® アーキテクチャー・ベースの Android* デバイスごとに、個別の AVD を作成することができます。例えば、WVGA800 などのスキンを使用するインテル® アーキテクチャー・ベースの Gingerbread* AVD や使用される画面解像度を手動で指定するカスタム AVD を作成できます。
Android* SDK は、バージョン r12 からインテル® アーキテクチャー・ベースの Android* エミュレーションをサポートしており、 Eclipse* ADT plugin を含むすべての開発ツールにこのサポートを統合しています。図 5.5 は Gingerbread* を実行する x86 用の Android* エミュレーターのスクリーンショット例です。[Model number] が “Full Android on x86 Emulator” になっています。
図 5.5 Android* エミュレーター
エミュレーターの使用方法については、次の Android* のドキュメントを参照してください: http://developer.android.com/guide/developing/devices/emulator.html (英語)。
9 どのエミュレーターを使用すべきか?
この記事の執筆時点 (2012 年 11 月) で、インテル® アーキテクチャー (x86) 用のエミュレーターのシステムイメージは 2 つあります: 1 つは Android* 2.3.7 (Gingerbread*) 用で、もう 1 つは Android* 4.0.4 (ICS) 用です。
最新の Android* オペレーティング・システム向けに開発する利点は多数ありますが、ほとんどの Android* スマートフォンはまだ Android* 4.x 以降を搭載していないため (現時点で、米国では ICS 以上を搭載する Android* スマートフォンは 1/5 のみ)、多くの開発者は Android* 2.x をターゲットにしています。今後、この状況は変わるでしょう。ターゲット・オペレーティング・システムを決定する際は、市況をよく調査することを強く推奨します。
Gingerbread* に関する情報は、次の記事を参照してください: http://blogs.computerworld.com/17479/android_gingerbread_faq (英語)。
ICS に関する情報は、次の記事を参照してください: http://www.computerworld.com/s/article/9230152/Android_4.0_The_ultimate_guide_plus_cheat_sheet_ (英語)。
10 エミュレーターを使用する理由
まず第一に無料だという点です。Android* SDK と関連するサードパーティのアドオンは無料で提供されており、開発者が所持していないデバイスやアクセスできないデバイスのエミュレーションを可能にします。すべての電話が OTA (Over The Air) アップデートにより最新バージョンの Android* OS を取得するわけではなく、ソフトウェア・パッケージをサポートするすべてのデバイスを開発者が購入することは現実的ではありません。
開発およびテスト: 開発者は Android* SDK を使用して、開発およびテスト用に複数の Android* Virtual Device (AVD) 設定を作成することができます。各 AVD は異なるスクリーンサイズ、SD カードサイズ、あるいは Android* SDK バージョン (これは以前の Android* バージョンとの下位互換性のテストに便利です) にすることができます。
新しいビルドの調査: エミュレーターにより、Android* の新しいビルドを使って色々と試してみることができます。
それでは、実際に x86 エミュレーターのシステムイメージをビルドし、実行するのに必要な操作を見てみましょう。ここでは分かりやすいように、Gingerbread* エミュレーターを使用しますが、説明のほとんどは ICS エミュレーターにも当てはまります。
11 エミュレーターのシステムイメージのビルド
最初に、次の Web サイトに記載されているセットアップ手順を実行します: http://source.android.com/source/initializing.html (英語)。
Google* は、Gingerbread* のソースを新しい場所で公開しています。http://source.android.com/source/downloading.html (英語) には、これらの変更が反映されています。
現在、デフォルトの repo 初期化手順では、最新のマスターブランチまたは特定のブランチ (例えば android-2.3.7_r1 コマンドを使用する場合) の取得方法のみ紹介しており、 x86 用の Gingerbread* エミュレーターのシステムイメージをビルドする repo およびブランチに関する説明はありません。
図 5.6 のように、ブランチ名 gingerbread を使用して、最新の Android* ソースブランチをダウンロードします。このブランチには、x86 用の Gingerbread* エミュレーターのシステムイメージをビルドするのに必要なビルドファイルとモジュールがあります。
図 5.6 Gingerbread* ブランチ
図 5.7 のように、ビルド環境を初期化します。
図 5.7 初期化
図 5.8 のように、lunch コマンドを使用して、x86 用 SDK をビルドするための設定とビルドを行います。このコマンドは、x86 エミュレーターのシステムイメージとその他の SDK モジュールをビルドします。
図 5.8 lunch コマンド
最後に、図 5.9 のように、make sdk コマンドを実行してビルドを開始します。
図 5.9 make sdk コマンド
–j パラメーターを使用して make の並列ジョブ数を指定することで、ビルドプロセスをスピードアップすることもできます。(システムの合計 CPU コア数以上の値を指定することを推奨します。)
ビルドは QEMU* 用の Android* カーネルイメージを含む 3 つのイメージを生成します: t system.img (Android*)、userdata.img、および ramdisk.img。
ビルドが完了すると、図 5.10 のように、ビルドフォルダー ($ANDROID_BUILD_TOP/out/target/product/generic_x86/) にイメージが配置されます。
図 5.10 イメージの場所
QEMU* 用の Android* カーネルイメージ (kernel-qemu) では Android* ソースも提供されます。図 5.11 のように、prebuilt フォルダー ($ANDROID_BUILD_TOP/prebuilt/android-x86/kernel) 以下に配置されます。
図 5.11 カーネルイメージ
これで、x86 用の Android* エミュレーター上で x86 Android* Gingerbread* イメージを実行するのに必要なすべてのイメージファイルが揃いました。SDK でイメージファイルをセットアップする必要があります。これについては、次のセクションで説明します。
12 x86 エミュレーターのシステムイメージを使用するための SDK のセットアップ
Android* SDK ツール (android、AVD マネージャー) では、x86 エミュレーターのシステムイメージが Android* SDK フォルダー以下のデフォルトの場所 (/platforms/android-10/images) にあることを想定します。
次のスクリーンショットでは、$ANDROID_SDK_TOP 環境変数が Android* SDK のインストール・フォルダーの場所に設定されていると仮定しています。
図 5.12 イメージの場所
図 5.12 のように、Android-10 にはデフォルトで ARM エミュレーターのシステムイメージがあります。Android* SDK で x86 エミュレーターのシステムイメージを設定するには、x86 フォルダーを作成し、そのフォルダーにビルドしたイメージをコピーする必要があります。図 5.13 のように、ARM イメージを独自のフォルダーに移動することもできます。
図 5.13 ARM フォルダー
図 5.14 のコマンドは、x86 フォルダーを作成し、そこにビルドしたイメージをコピーします。
図 5.14 x86 フォルダー用のコマンド
図 5.15 はコマンドを実行した後の Android-10 プラットフォームの images フォルダーです。
図 5.15 最終的な images フォルダー
x86 エミュレーターで、インテル® アーキテクチャー・ベース の Gingerbread* イメージを使用する前に、必要なソフトウェアとハードウェアのカスタマイズを指定する AVD 設定を作成する必要があります。AVD に関する詳細は、以降のセクションおよびインテル® デベロッパー・ゾーンの「Android* Virtual Device Emulation for Intel® Architecture」を参照してください。
これで、エミュレーターと x86 イメージを使用する準備が整いました。システムイメージとともにインテル® Hardware Execution Manager (インテル® HAXM) を使用すると、エミュレーターのパフォーマンスが大幅に向上します。インテル® HAXM を使用しない場合、パフォーマンスはさまざまです。(インテル® HAXM を使用するには、インテル® VT-x 対応のインテル® プロセッサーが必要です。インテル® HAXM に関する詳細は、http://int-software.intel.com/en-us/android (英語) を参照してください。)
では実際に x86 用の Gingerbread* エミュレーターを使用して x86 イメージのエミュレーションを行ってみましょう。
Android* ツールを開くか、Eclipse* で AVD 作成ツールを起動します。
図 5.16 と図 5.17 は、インテル® Atom™ プロセッサー (x86) を使用して Gingerbread* 用の AVD を作成しています。
図 5.16 新しい AVD の作成
図 5.17 作成完了ダイアログ
図 5.18 のように、AVD を選択し [Start] をクリックして x86 Gingerbread* 用の AVD をテストします。
図 5.18 起動オプション
図 5.19 は、emulator-x86 におけるインテル® Atom™ プロセッサー (x86) 用の Gingerbread* のホームスクリーンです。
図 5.19 ホームスクリーン
図 5.20 は、設定の [About Phone (端末情報)] ビューです。
図 5.20 [About Phone (端末情報)] ビュー
x86 エミュレーターは、インテル® バーチャライゼーション・テクノロジーのハードウェア・アクセラレーションとともに使用することを推奨します。Linux* 上では、Linux* KVM を使用してハードウェア・アクセラレーションを行えます。KVM の設定と使用に関する詳細は、Ubuntu* のドキュメントを参照してください: https://help.ubuntu.com/community/KVM (英語)。
図 5.21 KVM
図 5.21 のように KVM を有効にすることで (-enable-kvm)、Android* の起動時とエミュレーターの応答のパフォーマンスが大幅に向上します。
13 Gingerbread* 機能の例: バッテリー使用量
[About Phone (端末情報)] には [Battery Use (バッテリー使用量)] セクションがあります。バッテリー使用量は、エミュレーション・デバイスとビルドにより異なります。エミュレーション・デバイスに telnet 接続できる場合は、簡単なコマンドを使用してバッテリーの消耗を抑えることができます。http://android-er.blogspot.com/2010/09/how-to-set-battery-status-of-android.html (英語) にその一例があります。14 Gingerbread* 機能の例: タスク・マネージャー
図 5.22 のように、[Settings (設定)] > [Applications (アプリケーション)] > [Running Services (実行中のサービス)] の [Running (実行中)] タブには、現在実行中のサービスが表示されます。
図 5.22 タスク・マネージャー
例えば、[Settings (設定)] プロセスをクリックして [Stop (停止)] を選択することで、このプロセスを終了できます。
15 Gingerbread* 機能の例: テキストのカットアンドペースト
メッセージ・アプリケーションを開き、[New Message (新規作成)] を選択して SMS を送信するのと同じようにメッセージを入力することができます。テキストフィールドをクリックして、ホストキーボードで入力すると、Android* 端末画面に文字がシームレスに表示されます。“Hello 2.3.5!” と入力した後の画面は図 5.23 のようになります。
図 5.23 便利なメッセージ機能
“Hello 2.3.5!” と入力されているテキストフィールドにカーソルを置き、約 2 秒間マウスのボタン (またはタッチパッド) を押し続けると、[Edit Text (テキストを編集)] ツールチップ・メニューが表示されます。[Select all (すべて選択)] を選択し、同じマウス操作を繰り返すと、テキストを切り取るオプションが表示されます。テキストを切り取った後、同じマウス操作を繰り返すと、テキストを貼り付けるオプションが表示されます。
16 ICS のエミュレーション
x86 用の Android* 4.0.4 エミュレーターのシステムイメージを使用して、開発マシンで Android* ICS をエミュレーションすることができます。Android* SDK とともに使用することで、インテル® アーキテクチャー (x86) ベースの仮想 Android* デバイス上で Android* アプリケーションのテストが可能です。
エミュレーターのシステムイメージをインストールするには、Android* SDK Manager (推奨) を使用するか、バイナリー zip ファイルをダウンロードして展開したものを Android* SDK のインストール・ディレクトリー以下にある add-ons ディレクトリーにコピーします。(バイナリー zip を使用する場合、アドオンの自動アップデートは利用できません。)
17 インストール・ガイド
ここでは、ICS イメージのインストールについて説明します。
17.1 必要条件
x86 用の Android* エミュレーターのシステムイメージを使用するには、Android* SDK がインストールされていなければなりません。Android* SDK のインストールおよび設定については、Android* Developers Web サイト (http://developer.android.com/sdk/ (英語)) を参照してください。
オプション: インテル® Hardware Accelerated Execution Manager (インテル® HAXM) を使用して x86 用の Android* エミュレーターのシステムイメージを高速化することができます。詳細は、インテル® HAXM に関するセクションを参照してください。
17.2 Android* SDK Manager からのダウンロード
1. Android* SDK Manager を起動します。
2. 図 5.24 のように、Android* 4.0.4 (一部のスクリーンショットは以前のバージョンのものです) 以下にある [Intel x86 Atom System Image] を選択します。
図 5.24 Intel x86 Atom System Image
1. 選択後に [Install Package] ボタンをクリックします。
2. Intel Corporation の使用許諾契約書を確認します。[Accept] をクリックして使用許諾契約書に同意し、[Install] をクリックします。
3. Android* SDK Manager はシステムイメージをダウンロードして、Android* SDK ディレクトリー内の適切な場所に展開します。
17.3 システムイメージの使用
1. 図 5.25 のように、Android* AVD Manager を起動して新しい AVD を作成し、[Target] に Android* 4.0.X を、[CPU/ABI] に Intel Atom (x86) を設定します。
図 5.25 ターゲットの設定
注: [CPU/ABI] で Intel Atom (x86) オプションが利用できない場合は、システムイメージが正しくインストールされているかを確認してください。
1. [Create AVD] ボタンをクリックします。
2. 図 5.26 のように、AVD が作成され、利用可能になります。
図 5.26 利用可能なイメージ
17.4 手動によるダウンロード
1. http://www.intel.com/software/android (英語) にアクセスします。
2. [Tools & Downloads] タブから、適切なバージョンの x86 用 Android* エミュレーターのシステムイメージをダウンロードします。
3. 図 5.27 のように、Android* SDK ディレクトリーに移動します。
図 5.27 Android* SDK ディレクトリー
1. 図 5.28 のように、system-images ディレクトリー以下に、Android* システムイメージがアーキテクチャー別に格納されています。
図 5.28 アーキテクチャー別に格納されたイメージ
1. 図 5.29 のように、android-15 ディレクトリーを展開します (このディレクトリーには API レベル 15 のシステムイメージが格納されています)。
図 5.29 API レベル 15
1. ダウンロードしたシステムイメージのアーカイブ・ディレクトリー以下にある x86 ディレクトリーを android-15 ディレクトリー以下に展開します。
2. 図 5.30 のようなディレクトリー構造になります。
図 5.30 想定されるディレクトリー構造
1. これでシステムイメージのインストールが完了し、利用可能になります。
17.5 CPU アクセラレーション
インテル® VT-x によるハードウェアベースの仮想化を使用して、Android* ICS システムイメージを高速化できます。
インテル® VT-x 対応のインテル® プロセッサーを搭載したマシンでは、このシステムイメージとともにインテル® Hardware Execution Manager (インテル® HAXM) を使用することを推奨します。インテル® HAXM に関する詳細は、http://int-software.intel.com/en-us/android (英語) を参照してください。
注: インテル® HAXM は Windows* および OS X* オペレーティング・システムでのみ利用可能です。Linux* ホストでは、KVM (Kernel-based Virtual Machine) を使用してエミュレーションを高速化できます。Ubuntu* 上での KVM のインストールと設定については、次のガイドを参照してください: https://help.ubuntu.com/community/KVM/Installation (英語)。
17.6 GPU アクセラレーション
Android* ICS システムイメージは、GPU 機能を利用して、ゲーム、グラフィックスを多用するプログラム、ユーザー・インターフェイス要素のパフォーマンスを向上できます。
注: GPU アクセラレーションの機能とパフォーマンスは、マシンのグラフィックス・カードおよびグラフィックス・ドライバーに大きく依存します。
GPU アクセラレーションを利用するには、次の操作を行います。
1. Android* AVD Manager を起動します。
2. AVD を選択し、[Edit] をクリックします。
3. AVD の編集画面が表示されます。図 5.31 のように、[Hardware] セクションで [New] をクリックします。
図 5.31 [Hardware] セクション
1. 図 5.32 のように、[Property] ドロップダウン・ボックスで [GPU emulation] を選択します。
図 5.32 [GPU emulation] プロパティー
1. [OK] をクリックします。
2. 図 5.33 のように、[GPU emulation] プロパティーを追加後、[Value] を yes に変更します。
図 5.33 [Value] を yes に変更
1. [Edit AVD] をクリックして AVD を保存します。
2. 図 5.34 のように、AVD が変更されると AVD 設定の確認画面が表示されます。
図 5.34 確認ダイアログ
確認ダイアログの hw.gpu.enabled=yes 行は、その AVD でGPU アクセラレーションが有効であることを示します。
注: GPU アクセラレーションは、各 AVD ごとに有効にする必要があります。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。