AndroidからCプログラムを呼び出す

AndroidプログラムからCプログラムを呼び出す

AndroidプログラムからCプログラムを呼び出せます。
Cプログラムというのも、もちろんAndroid用にbuildされたものに限ります。

まずは
適当にCプログラムを書きます。
この時点で、
HelloWorld.c があるとします

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

1.NDKのpathを通します
2.jniフォルダを作成します
3.jniフォルダにHelloWorld.cを移動します
4.Android用のmakeファイルを作成します,makeファイルはこんな感じ

ーーーーーーーーーーーーーーーーーーーー
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := helloWorld
LOCAL_SRC_FILES := HelloWorld.c
include $(BUILD_EXECUTABLE)
ーーーーーーーーーーーーーーーーーーーー
5. これでjniフォルダがあるフォルダに移動
6. そこでndk-buildと打つとビルドすると、実行ファイルが生成されます

コマンドで示すとこんな感じです
#mkdir ~/bld ~/bld/jni
#cp HelloWorld.c ~/bld/jni
#cd ~/bld/jni
#vi Android.mk    ←上記の通り書いてください
#cd ../
#ndk-build

これで後は、生成された実行ファイルをAndroid端末に移動して、実行するだけです。

ここまで来れば、Androidプログラムから呼ぶのも簡単です。
こんな風に、javaから呼べば実行されます。

Process process = Runtime.getRuntime().exec("./helloWorld");


次の記事では「Root化アプリとは?」について書きます!