HOME 生活记录运维/编程
作者/来源:yixinu.com
栏目:运维/编程
日期:2019-08-31 14:09:30

1、在  xkylelib (项目名称) 点击右键,依次点击 new -> folder  -> jni folder ,建立 jni 目录

2、在 main /  java  下建立 jniutils  类,内容如下:

package com.yixinu.dev.xkylelib;

static {
     System.loadLibrary("kyleclient1");
}
public class jniutils {
    public static native String printhello();
}


3、打开终端,cd 到  module项目/src/main/java 目录下,然后输入命令:
javah -d ../jni -jni com.yixinu.dev.xkylelib.jniutils
其中  com.yixinu.dev.xkylelib.jniutils  是建立的 java 类名,-d ../jni,表示输出到目录
这时会在 jni 目录下创建一个文件 com_yixinu_dev_xkylelib_jniutils.h



4、在 jni 目录上创建  Android.mk 文件,内容如下:



LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := kyleclient1

MY_CPP_PATH  := $(LOCAL_PATH)/
My_All_Files := $(shell find $(MY_CPP_PATH)/.)
My_All_Files := $(My_All_Files:$(MY_CPP_PATH)/./%=$(MY_CPP_PATH)%)
MY_CPP_LIST  := $(filter %.cpp %.c,$(My_All_Files))
MY_CPP_LIST  := $(MY_CPP_LIST:$(LOCAL_PATH)/%=%)

LOCAL_SRC_FILES := $(MY_CPP_LIST)
include $(BUILD_SHARED_LIBRARY)



5、在 jni 目录上创建  Application.mk 文件,内容如下:
APP_MODULES = kyleclient1
APP_ABI := armeabi-v7a arm64-v8a x86
APP_STL    := c++_shared
APP_PLATFORM := android-21

6、到终端 ,进入 jni 目录 ,执行命令 :~/Android/Sdk/ndk-bundle/ndk-build 
7、在 jni 目录下创建  com_yixinu_dev_xkylelib_jniutils.c 文件 ,并实现 .h  文件中的方法 
8、接下来天马行空在.c 文件里面写下想写的C/C++代码
9、在  src/build.gradle 文件中加入以下代码 :(在 buildTypes 项下面)


   sourceSets {

       main {

           jniLibs.srcDirs = ['src/main/libs']

           jni.srcDirs = [] //屏蔽掉默认的jni编译生成过程

       }

   }

10、到终端 ,进入 jni 目录 ,执行命令 :~/Android/Sdk/ndk-bundle/ndk-build 
11、编译 module , build -> make module xkylelib .


分享到:

Copyright © 2013-2014 yixinu.com 湘ICP备14004402号

QQ:316686606  Email: 316686606@qq.com