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 <string.h>
#include <jni.h>

// 接口规范--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");
	}
}

 

编译进模拟器运行即可!!

 

你可能感兴趣的文章

评论区

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。