C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

Eclipseを使わない人のAndroid SDK & NDK の開発メモ

今期はAndroid開発の講座も担当させて頂いていて、学生さんに「Eclipseを使わないでAndroid開発する方法」を教える事になったのでメモ。

開発環境の準備

Android SDK の準備

要約: SDK拾う→展開する→環境変数設定する(ANDROID_HOMEとPATH)

export ANDROID_HOME=/path-to-android_sdk
export PATH=$ANDROID_HOME/platform_tools:$ANDROID_HOME/tools:$PATH

※ちなみに、archlinuxならAURにAndroid SDKもAndroid NDKもあるのでyaourtすればパスも通った状態で準備できる。他のディストリビューションでもそういうのアルカモネ・w・

Android NDK の準備

NDK拾う→展開する→環境変数設定する(ANDROIDNDK_HOMEとPATH)

export ANDROIDNDK_HOME=/path-to-android_ndk
export PATH=$ANDROID_NDK_HOME:$PATH
ant を用意しとく

Eclipseを使わないとしてもantビルドシステムは用意しないとたぶん大変。

普通のOSを使っている場合はディストリビューション標準のパッケージマネージャー等で入れれば良いでしょう。

(※archlinuxならextra/apache-antパッケージ)

Vim とか用意しとく

ついでにVimとかzshとか用意しておくと良いでしょう。
Vimの操作はvimtutorとかやればいいと思うよ・w・

(※慣れてきたらVimテクニックバイブルでも読んでプラグインを知るといいと思う。)

SDKアップデートしたり

android sdk

(※GUIなんて嫌だーって人は android --help でも見れ・x・)

AVD(Android Virtual Device)をでっちあげたり

android avd

(※GUIなんry)

プロジェクトの雛形を作る

android create project -n hoge -t 7 -p ./hoge -k jp.fuga.hoge -a hoge_activity

とかやると、

Created project directory: ./hoge
Created directory /tmp/hoge/src/jp/fuga/hoge
Added file ./hoge/src/jp/fuga/hoge/hoge_activity.java
Created directory /tmp/hoge/res
Created directory /tmp/hoge/bin
Created directory /tmp/hoge/libs
Created directory /tmp/hoge/res/values
Added file ./hoge/res/values/strings.xml
Created directory /tmp/hoge/res/layout
Added file ./hoge/res/layout/main.xml
Added file ./hoge/AndroidManifest.xml
Added file ./hoge/build.xml
Added file ./hoge/proguard-project.txt

みたいにできる。-n,-t,-p,-k,-aは全て必須オプション。それぞれの意味なんかは

android create project

とだけやると表示してくれるので確認しておくと良い。

ビルド(ant)

android create projectで作ったプロジェクトの直下は以下な感じ

ls
合計 24K
drwxr-xr-x  6 usagi users  240  6月 14 01:36 .
drwxrwxrwt 28 root  root   820  6月 14 01:36 ..
-rw-r--r--  1 usagi users  605  6月 14 01:36 AndroidManifest.xml
-rw-r--r--  1 usagi users  698  6月 14 01:36 ant.properties
drwxr-xr-x  2 usagi users   40  6月 14 01:36 bin
-rw-r--r--  1 usagi users 3.5K  6月 14 01:36 build.xml
drwxr-xr-x  2 usagi users   40  6月 14 01:36 libs
-rw-r--r--  1 usagi users  410  6月 14 01:36 local.properties
-rw-r--r--  1 usagi users  781  6月 14 01:36 proguard-project.txt
-rw-r--r--  1 usagi users  563  6月 14 01:36 project.properties
drwxr-xr-x  4 usagi users   80  6月 14 01:36 res
drwxr-xr-x  3 usagi users   60  6月 14 01:36 src

ここで

ant debug

または

ant release

avd 起動

android avd

して、選んでStartボタン押せばいいと思うよ・w・

コマンドだけでやりたい人は emulator コマンドとか直接叩いてもいいんだろうけど、どのみちAVDはGUI必須なわけですし。

AVDにアプリを導入

antでビルドしたのと同じ直下にいるとして、

adb install bin/hoge-debug.apk

とか。binの中の.apkを指定。
導入し終わるとSuccessとコンソールに出ていて、AVDでもアプリが増えている。

おまけ、 adb について
adb devices

で繋がってるデバイスリスト。

adb shell

でシェルにログオン。繋がってるデバイスが複数ある場合は、

adb -s emulator-5554 shell

でログオン先を指定。

adb push local-source-path remote-destination-path

と、

adb pull remote-source-path local-destination-path

でファイルを投げつけ合う。デバイスが複数の場合は先の例と同様にadbコマンドの直後に-sで指定を追記。

NDK

とりあえず Android NDK のサンプルプロジェクトを眺めて jni の中で ndk-build して.soをビルドる。

cd jni
ndk-build

それから直下に戻ってantしたいところだけど、antの設定ファイル build.xml が無いので、

android update project -p .

して build.xml の雛形とか用意する。それから、

ant debug

とか

ant release

とかすると、後はワカルナ・x・b