AndroidでC/C++のネイティブ環境での開発のために開発マシンをセットアップします。
開発環境は、Ubuntu 10.10 で構築しますが、WindowsをホストOSとしたVMWare上で動作させています。
手順は、「プロフェッショナルAndroidゲームプログラミング」という本に書いてある事を基本としていますが、本には書いていない事もおおいので、OSのインストールから順を追って解説します。
↓ここから入手可能
http://www.ubuntulinux.jp/News/ubuntu1010-desktop-ja-remix
$ sudo apt-get install emacs $ sudo apt-get install subversion
入手先 http://www.ubuntu.com/desktop/get-ubuntu/download
VMWareの場合、自動インストーラーが起動するが、アメリカのロケールでセットアップされるため、後で日本に修正するか手動でインストールしたほうがよい。
以下のコマンドで解決できる可能性がある。
sudo aptitude install open-vm-tools open-vm-toolbox open-vm-dkms
GpartedというGUIツールが便利
sudo apt-get install gparted
ただし、ubuntuを最新版にアップデートしないとバグって動かない場合あり
Java6-JDKのインストールです。以下のコマンドでできます。
sudo add-apt-repository 'deb http://archive.canonical.com/ lucid partner' sudo apt-get update sudo aptitude install sun-java6-jdk
しばらく時間がかかります。「同意しますか?」の画面になるので「はい」を選択するとJDKのインストールは完了します。
ひきつづき、ADKのインストールです。android関連のツールを入れるディレクトリとして、/opt/androidを作成します。ダウンロードしたファイルは、/opt/android/downloadに入れることにします。
sudo mkdir -p /opt/android sudo chown $USER /opt/android mkdir /opt/android/download
AndroidのWebから最新のADKをダウンロード
cd /opt/android/download wget http://dl.google.com/android/android-sdk_r09-linux_x86.tgz
ダウンロードしたADKは/opt/android/adk に展開することにします。
mkdir /opt/android/adk cd /opt/android/adk tar xvzf /opt/android/download/android-sdk_r09-linux_x86.tgz
これで展開されたので、/opt/android/adk/android-sdk_r09-linux_x86/toolsと、platform-toolsを$PATHに追加しておきます。ついでに、$HOME/binも加えておきます
echo "export PATH=\$HOME/bin:/opt/android/adk/android-sdk-linux_x86/platform-tools:/opt/android/adk/android-sdk-linux_x86/tools:\$PATH" >> ~/.bashrc
.bashrcを実行
. ~/.bashrc
Android SDKのReadmeに従って、SDKのupdateを行います。
cd /opt/android/adk/android-sdk-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つを追加する。
SDK LocationをEclipseに設定します。 「Eclipse」メニューの「Preferences..」メニューを選択すると、Preferences画面が表示されますので、左ペインより「Android」を選択します。
バージョン管理ツールrepoのインストール
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 /opt/android/src cd /opt/android/src repo init -u git://android.git.kernel.org/platform/manifest.git
ここで名前とメアドを聞かれるので適当に答える
repo sync
ソースのダウンロード。2~3時間はかかる。 これで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