这节主要是能从c++中获取字符串
1、新建一个Android项目JNIStudy
2、在MainActivity.java文件进行修改
public class MainActivity extends Activity {
//声明一个native函数
public static native String getStringFromC();
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=(TextView) findViewById(R.id.textview);
textView.setText(getStringFromC());
}
}
3、让项目 支持c++编译环境
项目右击->new->
这个和使用:项目右击->Android Tools->Add Native Support...
区别:d
第一种不会生成jni文件夹(我们可以手动添),但是会发现Settings如下图有明显区别
4、生成头文件
如果没有以上按钮 请翻阅 前面的
java jni eclipse 环境配置 生成.h头文件
刷新项目 就会在jni文件夹下看到一个.h文件5、添加支持jni头文件
右击项目->Properties->C/C++ General->Paths and Symbols->GNU C++->Includes->Add->选择目录(/android-ndk-r9d/platforms/android-19/arch-arm/usr/include)->Apply
此时.h文件就没有报错
6、在jni文件夹实现.h文件函数
#include "com_hym_jni_MainActivity.h"
JNIEXPORT jstring JNICALL Java_com_hym_jni_MainActivity_getStringFromC
(JNIEnv *env, jclass){
return env->NewStringUTF("hello jni!");
}
7、在jni文件夹下编写Android.mk文件
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:=jniStudy
#LOCAL_SRC_FILES:=HelloJNI.cpp
FILE_LIST := $(wildcard $(LOCAL_PATH)/*.cpp)
LOCAL_SRC_FILES:= $(FILE_LIST:$(LOCAL_PATH)/%=%)
#添加log库
LOCAL_LDLIBS += -llog
include $(BUILD_SHARED_LIBRARY)
8、在MainActivity.java文件下
添加以下代码
static{
System.loadLibrary("jniStudy");
}
9、ndk-build命令
添加ndk目录
设置Build command
10、运行项目
在lib文件夹下就会生成libjniStudy.so
手机上也有hello jni!字符串