2、配置环境变量,把ndk文件放置的地址配置到path上,目的是为了能够执行ndk-bulid命令例如
配置完成后在cmd命令行中输入ndk-bulid,如果出现下面的界面说明配置成功
3、把Android.jar文件配置到环境变量中,例如把D:\sdk\platforms\android-21\android.jar配置到环境变量中
4、下载并安装adt,为了保证版本的兼用性建议使用23.0以上的版本,下载地址:http://pan.baidu.com/s/1i50cavr
adt安装过程在此不做详细说明
环境配置完成后下面开始正式开发NDK项目
1、创建一个Android项目
2、在activity中编写native方法如:
public class MainActivity extends Activity { static{ System.loadLibrary("hello"); } public static native String getStringFromC(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView tv=(TextView) findViewById(R.id.textview); tv.setText(getStringFromC()); } }注意:一定要有native关键字
3、在项目根目录创建jni文件夹
4、在cmd中使用javah命令创建.h头文件,注意必须在项根目录下执行该命令
javah -classpath bin/classes;D:\sdk\platforms\android-21\android.jar -d jni com.example.hellondk.MainActivity
说明:-classpath 和面是原文件路径(需要的的编译文件路径) -d 后面是生成文件的路径 后面包名加类名是具体编译的文件名
5、刷新项目,在jni文件中出现.h的头文件
6、根据头文件编写实现文件.c文件
#include<stdio.h> #include<stdlib.h> #include"com_example_hellondk_MainActivity.h" JNIEXPORT jstring JNICALL Java_com_example_hellondk_MainActivity_getStringFromC (JNIEnv *env, jclass jclass){ return (*env)->NewStringUTF(env, "Hello from JNI !2"); }
7、修改android.mk文件,主要修改LOCAL_MODULE和LOCAL_SRC_FILES
LOCAL_MODULE 是指定生成的.so文件的名称
LOCAL_SRC_FILES是指定要编译的文件
8、在项目根目录下执行ndk-build
9、在activity中建立静态代码块,用于加载.so库文件
static{ System.loadLibrary("hello"); }之后就开一个执行了
项目源码点击下载