Titanium.X

Top KitchenWork TitAnIDE TitaNative Ti SDK Archives

Titanium mobile で android SDK 純正エミュレータの
代わりに仮想化した android-x86 を使う手順

@d_o_locker(ろっかぁ)


下記は Titanium Developer 時代のもので、Titanium Studio は意識していません。
→AVD(Android SDK 純正エミュレータ)Win版でも同様の方向性の対応がなされました。
SDK Manager で Intel Hardware Accelerated Execution Manager をインストール、
含まれている extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.exe をインストール、
AVD Manager でターゲットに Intel Atom x86 System Image Android X.X.X を選んでください。


1.2.4.5.については、画像付きで詳しく説明しているサイトが多数あるので検索して参照してください
公開直後につき説明に誤りが残っている可能性、環境によってはうまくいかない可能性があります
非公式なやり方でもあり、問題が起きても責任は負えませんので、適用は自己責任でお願いします

1.開発機に VirtualBox をインストールする

2.開発機の VirtualBox に android-x86 をインストールする

3. android-x86 側のIPを決める
ここはある程度のネットワークの知識が必要ですので、ネットワークの解説サイトなども参照してください

3-1.開発機側で接続に使うネットワークインターフェースを決める
開発機のコマンドラインから
(Windowsの場合)(他のOSでは ifconfig など)(左端の > はプロンプトの例示なので入力不要、以下同様)
>ipconfig
を入力し(コピー&ペースト推奨、以下同様)、表示された中から接続に使うI/Fを選んでください
ブロードバンドルータ、無線ルータなどとつながっているものがあればそれを選ぶとよいでしょう
プロバイダに直接つないでいて、割り当てられるIPの範囲の分からないものは避けるのがよいでしょう
例えば、3Gのデータ通信カードと、普段使ってない有線LANがある場合、有線LANのほうが適当でしょう

3-2.接続に使うI/Fのネットワークの範囲を確認する
上で選んだI/FのIPとNetmaskを見て、同じネットに属するIPの範囲を確認してください

例)IP:192.168.0.2 / Netmask:255.255.255.0 / 範囲:192.168.0.0~192.168.0.255

Netmaskを2進数に直して0の部分が変えられる範囲、1の部分が変えられない範囲です

3-3.android-x86 側のIPを決める
上で確認した範囲から、一番最初と一番最後は使えない、他の機械で使っているものは使えない、
ルータのDHCP機能の割り当て範囲は全て使えない、として、空いている中から使うIPを決めてください

4. VirtualBox 側のネットワークをブリッジアダプタに設定する
android-x86 を終了し、 VirtualBox の設定画面でネットワークを設定してください
割り当てはブリッジアダプタを、名前の欄は3-1で決めたI/Fを選んでください
高度の中のアダプタタイプは解説サイトを参考に適切に設定してください
設定によっては5.の設定時に異常終了することがあります

5. android-x86 側のネットワークを設定する
DHCPを使う設定方法を解説したサイトは多数あるのでそれらを参考に、
android-x86 を起動し、 Ethernet の設定画面で、3-3で決めたIPを設定してください
異常終了する場合は4.のアダプタタイプを見直してください
Netmaskは開発機と同じ、DNSとRouterは、開発機がルータにつながっていればルータのIP、
そうでなければとりあえずは3-1で決めた開発機のI/FのIPを設定しておくとよいでしょう
後者の場合は開発機側で接続共有などの工夫をしないと android-x86 側から外部にはつながりません

6.adb でエミュレータとして認識させる
純正エミュレータを終了し、 android-x86 を起動し、開発機のコマンドラインから
>set ADBHOST=(3-3で決めたIP) & adb kill-server & adb start-server
数秒待って
>adb devices
を入力し、
emulator-5554 device
が表示されることを確認してください
ここまでで、eclipse などでのJava開発では純正エミュレータの代わりに利用できるようになっています
純正エミュレータに戻したい場合、開発機のコマンドラインから
>set ADBHOST= & adb kill-server & adb start-server
数秒待って
>adb devices
を入力し、
emulator-5554 device
が表示されないことを確認してください

7.Titanum mobile SDK android で指定している port に対応させる
純正エミュレータを終了し、 android-x86 を起動し、開発機のコマンドラインから
>set ADBHOST=(3-3で決めたIP)
>adb kill-server
>adb start-server
数秒待って
>adb devices
ここで
emulator-5560 device
が表示され、確かに純正エミュレータが終了、 android-x86 が起動していれば既に設定できています
emulator-5554 device
が表示されたら
>adb -s emulator-5554 shell setprop service.adb.tcp.port 5561
>for /f "usebackq tokens=2" %i in (`adb -s emulator-5554 shell "ps | grep /sbin/adbd$"`) do adb -s emulator-5554 shell kill %i
>adb kill-server
>adb start-server
数秒待って
>adb devices
ここで
emulator-5560 device
が表示されることを確認してください
ここまでで、Titanium mobile でも純正エミュレータの代わりに利用できるようになります
.cmd ファイル(.bat ファイル)にする場合、%i は %%i に変える必要があるので注意してください