美文网首页
NDK开发流程

NDK开发流程

作者: Charein | 来源:发表于2018-04-03 10:07 被阅读0次

大概的流程是:编写native方法,然后生成jni调用的头文件,然后根据头文件编写源文件,然后编写Android.mk或CMakeLists.txt文件,最后编译生成库文件。

1. 编写native方法

public class LibSlave {

    static {
        System.loadLibrary("Slave");
    }

    public static native boolean initDevice(String name, String version, String serial, String ip);
}

2. 生成JNI头文件

通过javah命令可以生成。

..src\main\java > javah -d ..\jni com.myclassroom.groupslave.LiveSlave

注:如果java类中包含中文字符则需要加上-encoding UTF-8,如果javah命令找不到说明java的环境变量没有配置正确。

3. 编写JNI源文件

将头文件的方法全部复制到源文件中。

#include "com_myclassroom_groupslave_LibSlave.h"
/*
 * Class:     com_myclassroom_groupslave_LibSlave
 * Method:    initDevice
 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
 */
JNIEXPORT jboolean JNICALL Java_com_myclassroom_groupslave_LibSlave_initDevice
        (JNIEnv *, jclass, jstring, jstring, jstring, jstring) {

}

4. 编写Android.mk或CMakeLists.txt文件

Android.mk是使用ndk-build来进行编译,代码如下:

LOCAL_PATH  := $(call my-dir)
ANDROID_PRIVATE_LIBDIR := $(LOCAL_PATH)/prebuilt
ARCH=$(APP_ABI)

#####################
#   libSlave    #
#####################
include $(CLEAR_VARS)

LOCAL_MODULE    := libSlave
LOCAL_SRC_FILES := com_myclassroom_groupslave_LibSlave.cpp
LOCAL_CFLAGS    := -fpic
LOCAL_LDLIBS    := -llog -lz -landroid

include $(BUILD_SHARED_LIBRARY)

CMakeLists.txt使用cmake来编译,代码如下:

5. 编译生成库文件

有多种方式生成库文件

方式一:手动使用ndk-build生成

进入模块的src/main/jni目录 运行ndk-build.cmd命令编译生成。
或者在Android Studio的External Tools配置ndk-build快捷命令,如下图所示:


然后配置模块的build.gradle,如下:

    sourceSets.main {
        jni.srcDirs = []
        jniLibs.srcDir 'src/main/libs'
    }
方式二:使用Link C++ Project with Gradle

模块右键选择Link C++ Project with Gradle,然后选择使用ndk-build还是cmake(ndk-build使用Android.mk文件,cmake使用CMakeLists.txt文件)。
自动链接C++工程,其实也就是在模块的build.gradle增加了如下代码库(以ndk-build为例):

    externalNativeBuild {
        ndkBuild {
            path 'src/main/jni/Android.mk'
        }
    }

相关文章

  • Eclipse下搭建NDK开发环境及入门Demo

    一、关于NDK: 谷歌改良了ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版...

  • NDK开发流程

    大概的流程是:编写native方法,然后生成jni调用的头文件,然后根据头文件编写源文件,然后编写Android....

  • NDK开发流程

    (一)Java调用C方法 1、安装ndk在Android Studio的project structure目录,有...

  • NDK开发流程

    JNI和NDK 理解层面: JNI: 一、什么是jni? 1、android 系统架构: 2、相当于桥梁的作用: ...

  • NDK开发流程

    NDK开发流程 创建java类X,申明native方法 使用javac编译为.class文件 使用javah生成头...

  • Android Studio 2.2以上NDK开发流程

    android studio从2.2版本开始支持CMake的方式来搭建NDK项目,在这个版本下NDK的开发流程大概...

  • 将C文件通过NDK编译生成SO库

    NDK开发流程 1.安装NDK 下载完成后 2.配置然后你会在local.properties文件中看到(或者自己...

  • AS配置ndk开发流程

    新建AS工程 新建AS工程,在新建工程界面,勾选include c/c++ support,勾选后AS会自动配置C...

  • NDK—JNI开发流程

    对于NDK的C语言部分学完了,我们将正式的讲解一下JNI。 正文 JNI:Java Native interfac...

  • NDK的开发流程

    我们这些做Android应用层的,大部分时间都是在使用Java编程,很少使用C/C++编程,对于NDK也了解的比较...

网友评论

      本文标题:NDK开发流程

      本文链接:https://www.haomeiwen.com/subject/ckuxhftx.html