●Windowsの場合
Windows版なら、AndroidSDKの配下のusb_driverの下にドライバがあるので接続してウイザードが起動したら、ここを指定してやれば基本OKです。
Galaxy sは別途kiesというツールを入れないとドライバ入らなかったです。
以下参照
http://xiangcai.at.webry.info/201010/article_11.html
●Ubuntuの場合
Ubuntu(Linux)には、デバイスドライバは特にありません。
ただ、Ubuntuでは外部のデバイスと接続するには、デバイスファイルが必要です。
/dev/xxxxxxxxってのです。
デバイスファイルは手動でも書けなくはないですが、カーネル2.6以降は新しいデバイスの接続、切断がカーネルから通知されるようになりました。
この通知をudevというプロセスがデーモンとして常駐(udevd)していて受け取って、デバイスファイルの作成、削除を良しなにやってくれる仕組みになっています。
試しにPSコマンドで見てみると、4ついますね。
oono@ubuntu:~$ ps -aux | grep udev
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
root 342 0.0 0.0 17032 1116 S 07:08 0:00 upstart-udev-bridge --daemon
root 344 0.0 0.0 17216 1028 S 07:08 0:00 udevd --daemon
root 475 0.0 0.0 17212 956 S 07:08 0:00 udevd --daemon
root 476 0.0 0.0 17212 908 S 07:08 0:00 udevd --daemon
ただ、udevも何も情報がないところからデバイスファイルを作れないので作る際の情報(ルール)を教えてあげる必要があります。
ルールは、「/etc/udev/rules.d」というディレクトリに置きます。
見てみると、あれ?数が少ないですね。
READMEを見てみると、ここにはローカルなルールを置けとありますね。
パッケージなどが見るルールは「/lib/udev/rules.d」にありました。
私が最初に見たのは8.04だったので、それから変わったのでしょうね。間違ってシステムが使うルールを改変したりすることがなくなるので良いことです。
●ルールの書き方
http://developer.android.com/guide/developing/device.html
のDeveloping on a Deviceの欄に手順が書いてあります。
/etc/udev/rules.d/51-android.rules
というファイルを新規で作って、以下の一文を追記します。
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
USBデバイスでベンダーIDが0bb4でパーミッションが0666で作成するという意味です。
ベンダーIDは各メーカが個別で重複しないように保持しています。
http://mcn.oops.jp/wiki/index.php?USB/PnP
そのため、接続するAndroid端末のベンダーIDを調べて指定する必要があります。
●ベンダーIDの調べ方
http://developer.android.com/guide/developing/device.html
の下の方にUSB Vendor IDsという欄があり、分かっているものの一覧があります。
このベンダーIDを使えば良いです。
Manufacturer | USB Vendor ID |
---|---|
Acer | 0502 |
Dell | 413c |
Foxconn | 0489 |
Garmin-Asus | 091E |
HTC | 0bb4 |
Huawei | 12d1 |
Kyocera | 0482 |
LG | 1004 |
Motorola | 22b8 |
Nvidia | 0955 |
Pantech | 10A9 |
Samsung | 04e8 |
Sharp | 04dd |
Sony Ericsson | 0fce |
ZTE | 19D2 |
この一覧に乗っていないベンダーの場合は、「lsusb」というコマンドで調べることが出来ます。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/510showusbdev.html
●実際に接続
手元にあるAndroid端末を使ってやってみました。
★NexusOne
接続してlsusbしても情報が出てきません。どうやらホストOS(Windows7)側に接続を持っていかれてるようです。
なので、VMWareの右下にあるアイコンを右クリックして「接続(ホストから切断)」を選択します。
アイコンが有効になって、点滅すればOKです。
lsusbの実行結果が
Bus 001 Device 002: ID 18d1:4e12
51-android.rulesに以下を追記します。
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
NexusOneを抜き差しします。/dev/の下に以下のデバイスファイルが追加されていました。
brw-rw---- 1 root disk 8, 16 2010-11-14 15:39 sdb
crw-rw---- 1 root disk 21, 2 2010-11-14 15:39 sg2
Eclipseを起動してDDMSを起動します。Devicesに名前が表示され、OSも2.2.1になっています。
AndroidSDKのtoolsの下へ移動してadb shellを実行しています。
ubuntu:~/software/android-sdk-linux_x86/tools$ ./adb shell
$ ls
config
cache
sdcard
acct
mnt
d
etc
system
sys
sbin
proc
init.rc
init.mahimahi.rc
init.goldfish.rc
init
default.prop
data
root
dev
$
ということでadbコマンドも実行可能なので問題なく接続しています。
以下同じなので省略しますが
Galaxy s
Bus 001 Device 004: ID 04e8:681c Samsung Electronics Co., Ltd
HT03-A
Bus 001 Device 006: ID 0bb4:0c02 High Tech Computer Corp.
何故かHT-03Aはルールを記述しなくても認識しました。
GDDフォン
Bus 001 Device 007: ID 0bb4:0c02 High Tech Computer Corp.
同じく何もしなくても認識されました。
IS01
Bus 001 Device 008: ID 04dd:9337 Sharp Corp.
ということで最終的に以下の記述を追記することでUbuntu上のEclipseおよびadbからアクセスできるようになりました。
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="04dd", MODE="0666"
-----
--------
AUTHOR: 電脳羊(Android Dream)
TITLE: Ubuntu10.04(64bit)でAndroidアプリの開発環境の構築
DATE: 11/14/2010 11:35:00 AM
PRIMARY CATEGORY: 開発
CATEGORY: Android
STATUS: publish
ALLOW COMMENTS: 1
ALLOW PINGS: 1
CONVERT BREAKS: 1
-----
BODY:
Ubuntu10.04でAndroidアプリを開発するための開発環境を構築します。
せっかくなのでNDKの環境も併せて構築します。
●必要なもの
・Eclipse Galileo(3.5.2)
→Helios(3.6)だとADTが対応していないのでGalileoを使います。
・Eclipse 日本語化言語パック (サードパーティ版)
・ADT 0.9.9
・AndroidSDK
・AndroidNDK
●ダウンロード
Eclipse Galileo(3.5.2)
3.5.2のLinux用64ビット版をダウンロードします。
http://www.eclipse.org/downloads/
右下の「Related Links」の下にEclipse Galileo(3.5)というリンクがあるのでクリック
画面から辿って必要なファイルをダウンロードします。
Eclipse 日本語化言語パック (サードパーティ版)
http://sourceforge.jp/projects/blancofw/wiki/nlpack.eclipse
3.5.2 Stream Buildをクリックします。
各種パッケージ用の日本語化言語パックがあるのでダウンロードしたEclipseに合わせて選択して下さい。
ADT 0.9.9
Eclipse上でオンラインで取得します。ファイルとしてダウンロードする必要はありません。
http://developer.android.com/sdk/eclipse-adt.html
に記述があるようにEclipseで新規ソフトウエアの追加で「https://dl-ssl.google.com/android/eclipse/」からダウンロードします。
AndroidSDK
http://developer.android.com/sdk/index.html
Linux(i386)をダウンロードします。
AndroidNDK
http://developer.android.com/sdk/ndk/index.html
Linux 32/64-bit(x86)をダウンロードします。
●ファイルの解凍
Eclipse
ダウンロードしたファイルを適当な場所に解凍します。
tar -xzvf file_A.tar.gz とすればtar.gz形式のファイルを解凍と展開を一度に行います。
解凍したディレクトリで、./eclipse を実行して起動確認(メニュー、メッセージ類は英語)します。
Eclipseを終了します。
Eclipse 日本語化言語パック (サードパーティ版)
unzip file.zip を実行します。日本語化したファイルがeclipseに展開されます。
解凍したディレクトリで、./eclipse を実行して起動確認(メニュー、メッセージ類は日本語)します。
AndroidSDK
tar -xzvf android-sdk_r07-linux_x86.tgz を実行して解凍します。
AndroidNDK
unzip android-ndk-r4b-linux-x86.zip を実行して解凍します。
●ADTのインストールと設定
Eclipseを起動します。
ヘルプ→新規ソフトウエアのインストールを選択します。
ウインドウがポップアップするので、作業対象の入力欄に「https://dl-ssl.google.com/android/eclipse/」を入力して追加ボタンを押下します。
画面真ん中にDeveloper Toolsと表示されるので、全てのオブジェクトを選択して「次へ」押下します。
そのまま「次へ」を押下します。
同意を選択して「完了」を押下します。
プラグインのダウンロードが始まります。
セキュリティー警告が表示されますが、「OK」を押下します。
ソフトウエア更新
「はい」を押下して、Eclipseを再起動します。
Eclipseが起動したら、ウインドウ→設定を選択すると設定画面がポップアップします。
上から2番目に「Android」が追加されていることを確認します。
Androidをクリックします。以下の画面が表示されるので、そのまま「Proceed」を押下します。
設定画面でSDK Locationに解凍したAndroidSDKのパスを設定してOKを押下します。
これでEclipse上でAndroidアプリの開発が出来るようになりました。
●AndroidSDKのバージョンアップ
ダウンロードしたAndroidSDKには最低限のものしか入っていません。必要なものをダウンロードします。
Eclipseの画面でウインドウ→Android SDK and AVD Managerを選択します。
Installed Packagesを押下して「Update ALL」を押下します。
Updateの一覧が表示されます。
Accept Allをクリックして、「Install」を押下します。インストールが始まります。
若干時間が掛かります。
ADBのRestart確認画面が表示されるので「はい」を押下します。
インストールが終わったら「Close」を押下した作業を完了します。
0 件のコメント:
コメントを投稿