最初のAndroid携帯電話を使った時( Android Dev Phone 1を使ってみる )から色々と試していて、主にネイティブのアプリを作る( Android実機上でLinuxのネイティブバイナリを動かしてみる )というのを考えていた。
ネイティブバイナリ以外にも、スクリプト言語( SL4A )もあるのだが、できればC言語で開発をしたい。
Android NDKがバージョンアップし、NDK r4bでネイティブアプリが作れるようになったというので試してみた。
キーボード付きのAndroid端末 ( Android DevPhone 1, シャープIS01 , AcerのAndroid/Win7デュアルブート機 , 東芝DynabookAZ )
1. Android NDKの開発環境を準備する
WindowsのPC上にCygwinをインストールする。
Cygwinのサイトからインストーラーをダウンロードして実行し、インストール作業の中でコマンドDevel内のmakeとArchive内のunzipを追加でインストールした。
次にNDKをインストールする。
NDKのサイトからandroid-ndk-r4b.zipをダウンロードした。(現在2010-12-12は、ndk-r5がダウンロードできる。ndk-r5の場合も同様に作業する)
次のようなコマンドで、ホームディレクトリ直下にインストールした。
% unzip android-ndk-r4b-windows.zip -d ~/.
2. ネイティブアプリのソースと、メイクファイルと、フォルダ構成
簡単なHello,worldのソースを試した。
hello.cというソースファイルで、内容は次の2行のとおり。
#include <stdio.h>
int main(){ printf("Hello,world\n"); return 0; }
メイクファイルは、Android.mkというファイル名で、内容は次のとおり。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello
LOCAL_SRC_FILES := hello.c
include $(BUILD_EXECUTABLE)
ホームディレクトリ直下にhelloというフォルダを作成しておいて、その中にjniというフォルダを作成し、上記のhello.cとAndroid.mkを入れる。
( ~/hello/jni/hello.c と ~/hello/jni/Android.mk )
ビルドのための手順を書いた起動用のスクリプトbuild.shというファイルを作成。内容は次の2行のとおり。
export PATH=$PATH:~/android-ndk-r4b; export ANDROID_NDK_ROOT=~/android-ndk-r4b
ndk-build
やっているのは、1行目でパスを通すのと必要な環境変数を設定していて、2行目でビルドコマンドndk-buildを実行している。
このbuild.shというファイルは~/helloフォルダに入れる。( ~/hello/build.sh )
3. ビルド
次のコマンドでビルド用スクリプトを実行する。
% cd ~/hello
% sh build.sh
手順に問題が無ければ無事にビルドが終了し、コンパイル結果のバイナリ ~/hello/obj/local/armeabi/hello が得られる。
4. 実行
adbコマンドを使って、実機に転送する。
% adb push hello /data/hello
実機上で、ファイル属性に実行属性を付加する。
% chmod 755 /data/hello
helloアプリ実行する。
% /data/hello
結果、「Hello,world」と表示されるのが確認できた。
0 件のコメント:
コメントを投稿