世界初!? AndroidエミュレータでUSB接続環境を構築する!:実践しながら学ぶ Android USBガジェットの仕組み(9)(1/3 ページ)
あれから数カ月……。われわれは苦心の末、ようやくホストPCとUSB接続できる「AndroidエミュレータUSB接続環境」を完成させた。今回は、環境構築の詳しい手順と利用方法を紹介する。
1.はじめに
現在、われわれが開発している「PCRescuroid」(注1)というアプリは、壊れてしまったホストPC内にあるHDDのデータを救出するものであり、ホストPCとAndroidをUSB接続することを前提としています。
PCRescuroidの実現には、Androidフレームワーク層、Linuxカーネル層の改造が必須であるため(注2)、改造したソースコードをいきなり実機上でデバッグするのは困難であることが容易に想像できます。
そのため、われわれはAndroidエミュレータ上でデバッグしてから、実機上で動作確認するのが妥当だと判断しました。しかし、現時点で“AndroidエミュレータのUSB接続”は、Google公式サイトでサポート対象外であることが正式にうたわれています。
前回、この問題に立ち向かうべく、Androidエミュレータを改造し、USB接続/切断までを何とか実現できました……が、USBの接続先となるホストPCについては改造し切れずにいました。
それから数カ月が経過し、われわれは苦心の末、ようやくホストPCとUSB接続可能となる「AndroidエミュレータUSB接続環境」を完成させました。
今回は、このAndroidエミュレータUSB接続環境の構築方法と利用事例を紹介します。なお、本環境は表1に挙げた開発者の方々を対象に、今後も機能拡張などを検討していく予定です。
対象開発者 | 利用シーン | |
---|---|---|
Android LinuxカーネルのUSBガジェットAPIを使用するUSBデバイスドライバ開発担当者 | Android端末で直接動作確認すると、デバッグコストが掛かる場合 | |
Android端末(実機)の不足により、Androidエミュレータ上で動作確認・テストを行う場合 | ||
表1 対象開発者と利用シーン |
2.AndroidエミュレータUSB接続環境の構築方法
AndroidエミュレータUSB接続環境の構成は図1の通りであり、AndroidエミュレータとUSB接続する対象は“仮想マシン”としています(注3)。
現時点でのAndroidエミュレータUSB接続環境の動作環境とAndroid対応バージョンは、表2の通りです(注4)。
動作環境 | OS | Ubuntu 10.10 |
---|---|---|
必要空きスペース | 30Gバイト以上 | |
Androidエミュレータ | 対応バージョン | 2.1 |
表2 動作環境および対応バージョン |
本環境の構築から起動までの流れは、表3の通りです。以降で順番に説明していきます。
No. | 作業内容 |
---|---|
1. | ビルド環境の構築 |
2. | AndroidエミュレータUSB接続環境のダウンロード |
3. | AndroidエミュレータUSB接続環境のビルド |
4. | AndroidエミュレータUSB接続環境の起動 |
表3 本環境の構築から起動までの流れ |
2.1.ビルド環境の構築
AndroidエミュレータUSB接続環境をビルドするためには、JDK(Java Development Kit)とその他のパッケージが必要となります。
JDKのインストール:
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse" $ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse" $ sudo apt-get update $ sudo apt-get install sun-java5-jdk
パッケージのインストール(64bitマシンの場合):
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \ x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \ libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \ libxml2-utils xsltproc $ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
パッケージのインストール(32bitマシンの場合):
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev libncurses5-dev \ x11proto-core-dev libx11-dev libreadline5-dev \ libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \ libxml2-utils xsltproc
2.2.AndroidエミュレータUSB接続環境のダウンロード
AndroidエミュレータUSB接続環境では、Androidエミュレータと仮想マシンが必要となります。これらの構成要素は表4の通りです。なお、バイナリをそのまま使用可能なものと、ソースコードからビルドしなければならないものとがあります。
No. | 分類 | 構成要素 | ビルド要否 |
---|---|---|---|
1. | Androidエミュレータ | 改造版・Androidエミュレータ | 必要 |
2. | 改造版・Linuxカーネルイメージ | 不要 | |
3. | 仮想マシン | 改造版・仮想マシン(QEMU) | 必要 |
4. | OSイメージ | 不要 | |
表4 構成要素 |
ここでは、バイナリ/ソースコードのダウンロード方法について説明しますが、ソースコードに関してはビルドが必要となりますので、「2.3.AndroidエミュレータUSB接続環境のビルド」を参照ください。
関連キーワード
組み込みAndroid開発 | 実践しながら学ぶ Android USBガジェットの仕組み | USB | Android | 組み込み | Androidケータイ | アプリケーション開発 | Androidがもたらす組み込み開発の新たな可能性 | 組み込み開発 | 作りながら理解するファイルシステムの仕組み
Copyright © ITmedia, Inc. All Rights Reserved.