Windowsだとcygwinとか面倒くさいし
Macだとたまにldtoolがないとか怒られるので
VMWare上のUbuntuに作成することにしました。
これだとコピペで環境を保存したり増やしたりえきるので便利ですね。
VMWare上にすでにUbuntuがインストールされていることが前提です。
Serverなのは消費メモリが少ないとかリソースの問題です。
Build環境
sudo apt-get install build-essential
1.Javaのインストール
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get install oracle-java7-installer
2. Android NDKインストール
Android NDKをダウンロードします
tar -xvjof android-ndk-r9c-linux-x86_64.tar.bz2
sudo mv ./android-ndk-r9c /usr/local/
echo 'export PATH=$PATH:/usr/local/android-ndk-r9c' >> .bashrc
echo 'export NDKROOT=/usr/local/android-ndk-r9c' >> .bashrc
3. Android SDK インストール
Android SDKをダウンロードします
unzip adt-bundle-linux-x86_64-20131030.zip
sudo mv adt-bundle-linux-x86_64-20131030 /usr/local/
echo 'export PATH=$PATH:/usr/local/adt-bundle-linux-x86_64-20131030/sdk/tools' >> .bashrc
echo 'export PATH=$PATH:/usr/local/adt-bundle-linux-x86_64-20131030/sdk/platform-tools' >> .bashrc
ライセンス許可
Android SDKの実行には最初にライセンスの認証が必要です
cd /usr/local/adt-bundle-linux-x86_64-20131030/sdk/tools
echo "y" | ./android update sdk --no-ui
SDK一覧
次のコマンドでSDKの一覧が表示されます
./android list sdk
SDKアップデート
必要なSDKをインストール、アップデートします
android update sdk -u --filter platform-tools,android-16,android-8,extra-android-support
動かしてみる
ndk-buildを実行してみる
4.ビルドする際のメモ
個人的にAndroid.mkを利用するよりも
Configure時にSysroot, CC, CFLAG, LD, AR等を指定して
クロスコンパイルするほうがiOSと同じ要領なので楽
lib作成時にだいたいは次のようにして、static libraryを作って
あとで、static libraryを参照するAndroid.mkでsoにします
build.sh :
BINPATH=$NDK_ROOT/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin
export CROSS_COMPILE=$BINPATH/arm-linux-androideabi
export CC=${CROSS_COMPILE}-gcc
export CXX=${CROSS_COMPILE}-g++
export LD=${CROSS_COMPILE}-ld
export AR=${CROSS_COMPILE}-ar
export CFLAGS="--sysroot $SYSROOT -std=gnu99 -L$LIB_DIR -L${NDK_ROOT}/usr/lib -I${NDK_ROOT}/usr/include"
./configure --prefix="一時フォルダ" --enable-static --disable-shared --host=arm-linux-androideabi
※おそらくConfigure時にarm-linux-androideabiの定義がないと怒られるので
下のリンクからconfigure.guess, configure.subをダウンロードして
configureのあるフォルダに移動、上書きします
http://git.savannah.gnu.org/gitweb/?p=automake.git;a=blob_plain;f=lib/config.guess
http://git.savannah.gnu.org/gitweb/?p=automake.git;a=blob_plain;f=lib/config.sub
Android.mk :
この辺りが参考になるかとhttps://groups.google.com/forum/#!topic/android-group-japan/NMoJAioGi04
0 件のコメント:
コメントを投稿