NDK Samples
- 在NDk的目录下有一个例子
\android-ndk\samples\hello-jni
- 将它导入到eclipse开发环境中(最好选择cpoy到自己的工作空间)
- 在命令行进入该项目的路径,执行
ndk-build
命令,编译程序 - 在eclipse上试运行(注:在4.x的版本要将Dependencies包去掉,貌似这个包是做低版本支持的,在高版本中会出错)
- 运行成功
1 | //hello-jni.c |
1 | public class HelloJni extends Activity |
在adb shell中运行c程序
- 在
\android-ndk\samples\test-libstdc++
下有这样一个例子,我们进行修改后然后在设备上运行它。
- 将jni目录下的
test-libstl.cpp
的文件进行修改
1 |
|
- 在命令行下使用
ndk-build
编译该项目 - 将项目目录下的
\libs\armeabi\test-libstl
文件拷贝到设备的/data/data
目录下(你需要该目录的写权限) - 进入设备的shell,并获取权限
- 切换到
/data/data
目录,修改test-libstl
文件的权限,并执行它
编写自己的程序
- 在任意目录下,创建jni文件夹
创建一个你的程序,如:
MyDemo.c
1
2
3
4
5
6
7
void main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
printf("%d+%d+%d=%d\n",a,b,c,a+b+c);
}创建
Android.mk
文件,注意LOCAL_MODULE
、LOCAL_SRC_FILES
属性1
2
3
4
5LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := MyDemo
LOCAL_SRC_FILES := MyDemo.c
include $(BUILD_EXECUTABLE)按上一个例子编译、拷贝、执行