トップ «前の日記(2011/05/22(Sun)) 最新 次の日記(2011/05/24(Tue))»
【ソース+水=麦茶色の何か】

半期 四半期 全カテゴリ

今日の一言


2011/05/23(Mon) ちょっと涼しい? [長年日記] 6:30現在弱いにわか雨 15℃

_ [Windows][Android][GALAXY S] Windows7(64bit)でAndroid NDKを使ってみる(C/C++でAndroid開発)

参考:

http://techbooster.jpn.org/andriod/environment/824/
http://d.hatena.ne.jp/o_ggy/20110503/1304412358

cygwinの設定

gccとmakeが必要なため、まずはこちら(http://www.cygwin.com/)からcygwinのセットアップファイルを入手。

ややわかりにくいが、「Setup.exe」というのをDL。

DLした「Setup.exe」を実行し、必要なファイルをインターネット上から取得しつつインストールを行う。

最初の画面では「Install from Internet」を選択。すでにローカルにパッケージをダウンロードしている場合は、「Install from Local Directory」を選択する。

インストール場所はどこでもいいが、おそらく日本語を含まない場所のほうがいい。

次に、パッケージのダウンロード先を指定する。これがあると、再インストールや修復を行う際に再度パッケージをDLする必要が無くなるため、時間の短縮ができる。

※必要ない場合は、インストール後に削除してもOK。必要になった時にDLすればいい。

続いて、プロキシの設定が聞かれるので、必要に応じて設定する。

次の画面では、パッケージのダウンロード先を聞かれるので、適当に近くのサイト(.jpのやつ)を選択。

ここまでは通常のcygwinのインストールと同じ。

次に出てくる「Select Packages」の画面が一番重要で、「Devel」のカテゴリーから「gcc」および「make」を選択し、インストールする必要がある。

選択して次に進むと、Package間の依存関係を解消するために、追加でいくつかPackageが自動選択されるため、それらもインストールする。

あとは、インストール完了まで待てばOK!

結構時間がかかるが、ひたすら待つ。

インストールが完了したら、デスクトップ上に生成されたCygwinアイコンをクリック。

「.bashrc」「.bash_profile」「.inputrc」「.profile」が生成されたことが確認できたらcygwinの設定は終了。

続いて、Android NDKの設定を行う。

NDKのインストール

Android NDKをこちら(http://developer.android.com/sdk/ndk/index.html)からDL。

※Windowsの場合、最新の「android-ndk-r5b-windows.zip」を選んでおけばいいはず。

DLしたファイルを適当なフォルダに置き、解凍する。

自分の場合は、

C:\android-ndk-r5b

に解凍した。

※普通なら「Program Files」に置きたいところだが、間に空白があるディレクトリ名をbashがどう判断するかが微妙なのでとりあえず避けておいたほうが無難かも。というか、cdコマンドでどう移動していいかがわからん!

インストール自体はこれで完了!

環境変数の設定(PATHとANDROID_NDK_ROOT)

Cygwinをインストールした際に、\home以下にログインユーザ名でホームフォルダが作成され、シェルの設定ファイル(「.」から始まる4つのファイル)が生成されているはず。

※初回起動時に生成されるので、見つからない場合は一度もcygwinを起動させていないと思われる。もしくはフォルダに書き込む権利が無いとか?

その中にある「.bashrc」ファイルを適当なテキストエディタで開き、最後にPATHとANDROID_NDK_ROOTを追記する。

自分の環境(C:\android-ndk-r5bにインストール)では、以下の2行を追加した。

export ANDROID_NDK_ROOT=C:/android-ndk-r5b
export PATH=$PATH:/cygdrive/c/android-ndk-r5b

ここで、Windowsのドライブは、Cygwinからだと/cygdrive/ドライブレターとなる点に注意!

変更後、Cygwinを実行し、以下のコマンドを打ってパスがきちんと通っていることを確認する。

$ echo $ANDROID_NDK_ROOT
$ echo $PATH

正しく通っていれば、設定したパスが表示されるはず。

これですべての設定が完了。

最後に、サンプルプログラムを使って、正しく実行できることを確認する。

「Hello JNI」を実行(NDK付属のサンプルプログラム)

「hello-jni」というサンプルプログラムがついているので、それを使って環境が整っているかを確認する。

cygwin上での作業

まず、cygwin上でサンプルプログラムをコンパイルする。

サンプルプログラムはNDKのインストールディレクトリの直下にあるsamplesディレクトリ以下にあるため、まずはそこに移動。

(自分の環境の場合、C:\android-ndk-r5b\samples\hello-jni)

$ cd /cygdrive/c/android-ndk-r5b/samples/hello-jni/

プロジェクトの場所(.project , AndroidManifest.xml があるディレクトリ)に移動したら、「ndk-build」コマンドでNativeの実行ファイルを作成する。

$ ndk-build

これで、「android-ndk-r5b\samples\hello-jni\obj\local\armeabi\libhello-jni.so」 というライブラリが生成されたはず。

続いて、作成されたライブラリを使用し、Eclipse上でプログラムを生成する。

Eclipse上での作業

「新規」からAndroidプロジェクトを開き、「外部ソースからプロジェクトを作成」を選択して、先ほどのサンプルプロジェクト(C:\android-ndk-r5b\samples\hello-jni)を参照する。

あとは、通常と同様にプロジェクトを作成し、「実行」すればOK!

AVD上でもちゃんと動くはず。

これで、C/C++でソースを書いたりライブラリを使ったりできる!

自作のプログラムを具体的にどう書くのかはまた後日まとめる・・・予定。

いや、その前にLinux上での開発環境の構築か?

とりあえず、以上!