= Android =
== 参考HP ==
* [http://developer.android.com/index.html Android Developers]
* [http://itpro.nikkeibp.co.jp/article/COLUMN/20090708/333496/?ST=android-dev Androidで広がる、携帯アプリ開発の世界---目次 - Androidで広がる、携帯アプリ開発の世界:ITpro]
* [http://www.kumikomi.net/archives/2010/02/fo02andr.php 「Android」に関する情報|Tech Village / CQ出版株式会社]
* [http://sites.google.com/site/io/anatomy--physiology-of-an-android Anatomy & Physiology of an Android] - Androidの分析と設計哲学
* [http://sites.google.com/site/io/dalvik-vm-internals Dalvik VM Internals] - Dalvikの内部構造
== SDK (Software Development Kit) ==
* [http://java.sun.com/javase/downloads/index.jsp Java SE]
* [http://mergedoc.sourceforge.jp/index.html#/pleiades.html Pleades - Eclipse プラグイン日本語化プラグイン]
* [http://developer.android.com/sdk/index.html Android SDK]
== NDK (Native-code Development Kit) ==
* [http://www.cygwin.com/ Cygwin Information and Installation] - Windows環境で開発する場合に必要
* [http://developer.android.com/sdk/ndk/index.html Android NDK]
* [http://www.atmarkit.co.jp/fjava/rensai4/android15/android15_1.html Android NDKでJNIを使用してアプリを高速化するには (1/3) - @IT]
* [wiki:Android/SocketProgramming ソケットプログラミング]
== Tips ==
* CUI/GUIの切り替え(for x86)
* CUI: Alt+F1
* GUI: Alt+F7
* エミュレータの端末の向きを変えるには?:[ctrl]+[F12]
* Android-x86で日本語入力するには?
* [http://www.adamrocker.com/blog/286/simeji-for-x86.html x86で動くSimeji]ページから「Simeji3.A.3_x86.apk」をダウンロードしてインストールする。
* !LogCatで日本語を表示するには?
* EclipseのADTプラグインでのLogCatでは、文字コードを指定できないため、表示不可。
* コマンドラインで直接LogCatを起動することにより、表示可能。
1. コマンドラインプロンプトのフォントをMSゴシックにするために仮のバッチファイル(ファイル名は最終的なものと同一)を作成する。内容は以下の通り。
{{{
cmd /k adb logcat
}}}
1. 上記で作成したバッチファイルを実行し、表示されたWindowのタイトルバー右クリックでプロパティメニューを表示し、フォントタブにてフォントをMSゴシックに指定する。
1. バッチファイルを、UTF-8設定用に変更する。内容は以下の通り。
{{{
cmd /k chcp 65001 | adb logcat
}}}
* Android Marketに登録できないアプリを広めるには?
* サードパーティが運営しているサーバを使用する。ex.[http://andappstore.com/ AndAppStore]
* アプリ内で1D/2Dバーコードスキャンを行うには?
* [http://code.google.com/p/zxing/ Zebra Crossing]を使用する。
== 関連リンク ==
* [http://www.oesf.jp/ Open Embedded Software Foundation]
* [http://wiki.github.com/OESF/Embedded-Master-ARM/em1-environment-constructed EM1 Environment Constructed]
1. ビルドに必要なパッケージのインストール
{{{
$ sudo apt-get update
$ sudo apt-get -y install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind g++
}}}
1. Android専用のプロジェクト管理ツール「repo」のインストール
1. 環境変数の設定
{{{
$ ls /usr/lib/jvm
java-1.5.0-sun java-1.5.0-sun-1.5.0.19
$ export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
$ export PATH=$PATH:~/bin
}}}
1. Android環境一式のダウンロード(Eclair)[[BR]]
1. [[Linux]] kernelのダウンロード[[BR]]
{{{
$ mkdir kernel
$ cd kernel
$ git clone git://android.git.kernel.org/kernel/common.git
...
$ git clone git://android.git.kernel.org/kernel/linux-2.6.git
...
$ git clone git://android.git.kernel.org/kernel/omap.git
...
$ git clone git://android.git.kernel.org/platform/vendor/asus/eee_701.git
...
$ repo sync
...
}}}
1. ダウンロード結果
{{{
$ cd ~/work/mydroid
$ ls -aF
./ Makefile build/ development/ hardware/ prebuilt/ vendor/
../ bionic/ cts/ external/ kernel/ sdk/
.repo/ bootable/ dalvik/ frameworks/ packages/ system/
$ du -s
5703292 .
}}}
1. ビルド
1. イメージファイルの変換に必要なパッケージのインストール
{{{
$ sudo apt-get install qemu
}}}
1. ソースコードの取得
{{{
$ cd ~/work
$ mkdir android-x86
$ cd android-x86
$ repo init -u git://git.android-x86.org/android-x86/platform/manifest.git -b eclair-x86
...
$ repo sync
...
}}}
1. 差分ファイルの取得[[BR]]
ビルドに必要なソースがリポジトリから削除されているので([http://groups.google.com/group/android-x86/browse_thread/thread/acd93d7d702c5de9?pli=1 参考Topic])、削除前の[http://android.git.kernel.org/?p=platform/frameworks/base.git;a=snapshot;h=0c33ed2992b2eb484c229fd3322df14d97c10caa;sf=tgz スナップショット]をダウンロードし、展開後、frameworks/base/tools/layoutlib/api/*部分をコピーする。(以下は、「~/temp/downloads」にダウンロードした場合の例)
{{{
$ cd ~/temp/downloads
$ tar zxvf base-0c33ed2992b2eb484c229fd3322df14d97c10caa.tar.gz
$ cp -r base/tools/layoutlib/api/ ~/work/android-x86/frameworks/base/tools/layoutlib/
$ cd ~/work/android-x86
$ du -s
4040996 .
}}}
1. ソースの修正
a. Bluetoothの有効化[[BR]]
./build/target/board/generic_x86/init.rcスクリプト中のbluetoothdサービス起動部分のdisabled設定をコメントアウトする。
{{{
service bluetoothd /system/bin/bluetoothd -n
socket bluetooth stream 660 bluetooth bluetooth
socket dbus_bluetooth stream 660 bluetooth bluetooth
# init.rc does not yet support applying capabilities, so run as root and
# let bluetoothd drop uid to bluetooth with the right linux capabilities
group bluetooth net_bt_admin misc
# disabled
}}}
1. USB起動用のイメージファイルとしてビルド[[BR]]
※初回makeでエラー停止した場合、再度makeすると通る場合あり。
a. デフォルトカーネルを使用する場合
{{{
$ make usb_img TARGET_PRODUCT=eeepc
}}}
a. カーネルをカスタムビルドする場合
{{{
$ make usb_img TARGET_PRODUCT=eeepc TARGET_KERNEL_CONFIG=my_defconfig
}}}
a. 既にビルド済みのカーネルを使用する場合
{{{
$ make usb_img TARGET_PRODUCT=eeepc TARGET_PREBUILT_KERNEL=<path to the prebuilt kernel>
}}}
1. 仮想ディスクイメージファイルの作成
{{{
$ cd out/target/product/eeepc
$ qemu-img convert eeepc_usb.img -O vmdk installer.vmdk
}}}
1. VMwareの新規仮想マシンを作成
1. 「後でOSをインストール」を選択し、「次へ」を押下する。
1. ゲストOSは「Linux」を選択する。
1. バージョンは「他のLinux2.6.xカーネル」を選択し、「次へ」を押下する。
1. 仮想マシン名を適当に作成する(例.「Android Eclair on x86」)し、「次へ」を押下する。
1. ディスク最大サイズを設定する(例.4.0GB)。
1. 「仮想ディスクを単一ファイルとして格納」を選択し、「次へ」を押下する。
1. 「完了」を押下する。
1. VMwareのディスク設定を追加・変更
1. 上記で作成したディスクをscsi0:0からide0:0に変更する。
1. vmxファイルを開いて以下の行を追加する。ide0:0がprimary master、ide0:1がprimary slave。なお、「bios.bootDelay」は、電源On時にBIOS Setup画面に移行するためのF2キー押下を容易にするための設定。
{{{
ide0:1.present = "true"
ide0:1.fileName = "installer.vmdk"
bios.bootDelay="3000"
}}}
1. ビルドした仮想ディスクイメージファイル(installer.vmdk)をvmxファイルと同じフォルダにコピーする。
1. VMwareの仮想ハードディスクにAndroidをインストール
1. VMwareを起動し、BIOS設定を変更して、IDEのprimary slave(PS)からBOOTする。
1. AndroidのInstallを選択する。
1. 検出されたHard Diskにパーティションを作成し、ext3でフォーマットする。
1. インストールディスクの削除
1. vmxファイルを開いて次の行を削除する。
{{{
ide0:1.present = "true"
ide0:1.fileName = "installer.vmdk"
}}}
1. 起動確認[[BR]]
VMwareを再生し、Androidが起動することを確認する。
最終更新:2010年07月30日 16:09