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"); } }
编译进模拟器运行即可!!
发表评论