AndroidでC/C++のネイティブ環境での開発のために開発マシンをセットアップします。
開発環境は、Ubuntu 10.10 で構築しますが、WindowsをホストOSとしたVMWare上で動作させています。
手順は、「プロフェッショナルAndroidゲームプログラミング」という本に書いてある事を基本としていますが、本には書いていない事もおおいので、OSのインストールから順を追って解説します。
http://www.ubuntulinux.jp/News/ubuntu1010-desktop-ja-remix
sudo aptitude install open-vm-tools open-vm-toolbox open-vm-dkms
$ sudo apt-get install emacs $ sudo apt-get install subversion
Java6-JDKのインストールです。以下のコマンドでできます。
$ sudo add-apt-repository 'deb http://archive.canonical.com/ lucid partner' $ sudo apt-get update $ sudo aptitude install sun-java6-jdk
ひきつづき、ADKのインストールです。まず、AndroidのWebから最新のADKをダウンロード
$ wget http://dl.google.com/android/android-sdk_r09-linux_x86.tgz
これを適当なところに展開しますが、ここでは/opt/android に展開することにします。
$ sudo mkdir -p /opt/android $ sudo chown $USER /opt/android $ cd /opt/android $ tar xvzf ~/android-sdk_r09-linux_x86.tgz
これで展開されたので、/opt/android/android-sdk_r09-linux_x86/toolsと、platform-toolsを$PATHに追加しておきます。ついでに、$HOME/binも加えておきます
$ echo "export PATH=\$HOME/bin:/opt/android/android-sdk-linux_x86/platform-tools:/opt/android/android-sdk-linux_x86/tools:\$PATH" >> ~/.bashrc
.bashrcを実行
$ . ~/.bashrc
Android SDKのReadmeに従って、SDKのupdateを行います。
$ cd /opt/android/android-sdk_r09-linux_x86 $ tools/android update sdk
ダイアログがでるので、指示に従います。けっこう時間がかかります
つぎに、androidコマンドでAVD Managerを起動し、Avaibable packagesのタグを開いてチェックボックスにチェックをいれてインストールする。
仮想デバイスの作成を行う
android create avd --target 2 --name my_avd
$ sudo apt-get install eclipse
Eclipse を起動、メニューから Help > Install New Software を選択。以下の2つを追加する。
* Galileo(※1) o Name : Galileo o Location : http://download.eclipse.org/releases/galileo * Android Plugin o Name : Android Plugin o Location : http://dl-ssl.google.com/android/eclipse/
SDK LocationをEclipseに設定します。 「Eclipse」メニューの「Preferences..」メニューを選択すると、Preferences画面が表示されますので、左ペインより「Android」を選択します。
なぜ全ソースをインストールしなければいけないのか良くわからないが、本に書いてあったのでそのままの手順を示す。
$ sudo apt-get install git-core gnupg $ sudo apt-get install curl $ cd $ mkdir bin $ curl http://android.git.kernel.org/repo > ~/bin/repo $ chmod a+x ~/bin/repo $ mkdir android // 作業ディレクトリを生成 $ cd android $ repo init -u git://android.git.kernel.org/platform/manifest.git
ここで名前とメアドを聞かれるので適当に答える
$ repo sync
ソースのダウンロード。小一時間はかかる。 これでAndroidの最新ソースを引っ張ってこれたらしい。
#!/bin/bash libs="libSR_AudioIn.so libomx_aacdec_sharedlibrary.so liblvmxipc.so libomx_amrdec_sharedlibrary.so libmediaplayerservice.so libnetutils.so libwnndict.so libdl.so libandroid_servers.so libopencore_player.so libdiskconfig.so libstdc++.so libomx_m4vdec_sharedlibrary.so libFFTEm.so libopencore_mp4localreg.so libsurfaceflinger.so libctest.so libdvm.so libxml2wbxml.so liblog.so libdrm1.so libomx_amrenc_sharedlibrary.so libstlport.so libc.so libsonivox.so libopencore_author.so libacc.so libcutils.so libutils.so libreference-cdma-sms.so libomx_sharedlibrary.so libhardware_legacy.so egl libpagemap.so libEGL.so libwebcore.so libopencore_download.so libssl.so libc_malloc_debug_qemu.so libmedia.so libhardware.so libttssynthproxy.so libstagefright_amrnb_common.so libmedia_jni.so libjpeg.so libopencore_rtspreg.so libskia.so libwpa_client.so libexpat.so libz.so libsystem_server.so libui.so libstagefright_color_conversion.so libjni_latinime.so libGLESv2.so libcrypto.so libWnnEngDic.so libcameraservice.so libc_malloc_debug_leak.so libWnnJpnDic.so libsysutils.so libsrec_jni.so hw libomx_avcdec_sharedlibrary.so libopencore_rtsp.so libicudata.so libcamera_client.so libopencore _downloadreg.so libGLESv1_CM.so libexif.so invoke_mock_media_player.so libm.so libpixelflinger.so libsqlite.so libreference-ril.so libsoundpool.so libsurfaceflinger_client.so libandroid_runtime.so libopencore_mp4local.so libttspico.so libopencore_net_support.so libvorbisidec.so libskiagl.so libjni_pinyinime.so libopencore_common.so libjnigraphics.so libaudioflinger.so libril.so libstagefright_omx.so libterm.so libicuuc.so libstagefright_avc_common.so libETC1.so libthread_db.so libbinder.so libwbxml_jni.so libemoji.so libstagefright.so libnativehelper.so libomx_mp3dec_sharedlibrary.so libicui18n.so libdrm1_jni.so" # for lib in $libs do adb pull /system/lib/$lib ./ done
sudo ln -sf /bin/bash /bin/sh
PATH=/opt/CodeSourcery/Sourcery_G++_Lite/bin/:$PATH