Android HDecoration项目so库导出和调用

  • 先看一下目录结构
  • 首先在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.c
    include $(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();

ndktest.jar

你可能感兴趣的:(android,NDK)