- 先看一下目录结构
- 首先在com.tnt.hdso包下新建相应的类并创建native方法;
示例:public native String 方法名(); - 在jni/hdecoration.c文件中实现上一步创建的方法;
示例:#include
#include
jstring Java_包名(中间用"_"分隔)_类名_方法名(JNIEnv* env) {
return (*env)->NewStringUTF(env, "要返回的字符串 ");
} -
jni中Android.mk和Application.mk代码分别如下;
Android.mk:
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := hdecoration
LOCAL_SRC_FILES := hdecoration.cinclude $(BUILD_SHARED_LIBRARY)
Application.mk
APP_ABI := all
APP_STL := gnustl_static
APP_PLATFORM := android-8
- 到此代码已完成,下面开始导出;打开cygwin工具,输入
$ cd /cygdrive/e/tnt_project/tnt_HDSO定位到指定目录下;
- 输入
$ ndk-build clean清空项目下历史so文件;
- 输入
$ ndk-build生成so文件,完成后将libs下so文件考到项目下libs即可;
- 接着导出so对应native类的jar包
项目右击——》属性——》导出——》选择"jar文件"——》下一步【此步除勾选src下对应包外其余勾全去掉】——》一直“下一步”最后完成即可; - 将导出的jar包考到项目下libs目录即可
- 具体调用如下:
static {
System.loadLibrary("hdecoration");
}
DataKeys mdk = new DataKeys();
Object obj = mdk.getAESKey();