1.Eclipse不要用google集成版,否则不能设置NDK路径,BTW:这里卡了我很久,后来问同事才知道的!!
2.装好ADT、CDT插件
3.windows-->preferences-->Android-->NDK(插件没装好的话不会出现此菜单),设置NDK路径 如:D:\android-ndk-r9d
4.OK,现在新建一个 test的安卓工程,所有设置都默认
5.在test工程上点右键 Android Tools --> Add Native Support,对话框中内填写test 此时会生成jni文件夹和一些配置文件
6.双击test.cpp,改代码如下:// 切记!jni只对C支持,不强制的话,会崩溃滴
#ifdef __cplusplus
extern "C" {
#endif
#include
#include
// 接口规范--JNI必须按照此格式来!!
// Java_ + 包名(com_example_test) + 类名(MainActivity) + 函数名(stringFromJNI)
JNIEXPORT jstring JNICALL Java_com_example_test_MainActivity_stringFromJNI(JNIEnv* env, jobject thiz)
{
return env->NewStringUTF("Test jni ---- Android so\n piaoyun\n www.dllhook.com");
}
#ifdef __cplusplus
}
#endif
7.双击主界面MainActivity.java 改代码如下:package com.example.test;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
// 动态创建控件显示SO函数返回值
TextView tv = new TextView(this);
tv.setText(stringFromJNI());
setContentView(tv);
}
// so文件中的函数名称
public native String stringFromJNI();
// 加载so ---> 按照linux规则,这里其实加载的是libtest.so
static
{
System.loadLibrary("test");
}
}
编译进模拟器运行即可!!