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化アプリとは?」について書きます!