美文网首页JNI和【NDK】
Android JNI与NDK学习(一)

Android JNI与NDK学习(一)

作者: 风度_dbfe | 来源:发表于2019-08-05 13:57 被阅读0次

    导读:

    在我们做Android开发,都会在工作中用到JNI的开发。即使工作中没有涉及到JNI的开发,在我们使用第三方的库时,也经常需要引入.so文件来供系统选择所需要的cpu架构(ABI)----->armeabi  、armeabi-v7a  、x86

    在学习JNI开发时,基本是懵的。大部分JNI开发的指南,其实是在教我们,如何生成.so文件和如何引入.so文件。

    本旨带大家清晰的学习一下JNI和NDK

    一、认识JNI与NDK

    (1)JNI是Java Native Interface的缩写,通过使用 Java本地接口书写程序,可以确保代码在不同的平台上方便移植。
             他有属于自己的命名规范,该规范使得在 Java 虚拟机内运行的 Java 代码能够与其它编程语言互相操作,包括创建本地方法、
             更新Java对象、调用Java方法,引用 Java类,捕捉和抛出异常等,也允许 Java代码调用 C/C++或汇编语言编写的程序和库。
    (2)在Android OS上开发应用程序,Google提供了两种开发包:SDK和NDK。
             NDK是用来给安卓手机开发软件用的,但是和SDK不同的是它用的是C语言,而SDK用的是Java语言
             NDK开发的软件在安卓的环境里是直接运行的,一般只能在特定的CPU指令集的机器上运行,而且C语言可以直接和硬件对话,因此一般用           它开给手机开发驱动或底层应用;而SDK开发出的软件在安卓上靠Dalvik虚拟机来运行,所以如果没有特殊的需要或署专门针对某个硬件去           开发,那就一般用SDK

    简单的来说:Android NDK 就是一套工具集合,允许你使用C/C++语言来实现应用程序的部分功能。

    二、编译步骤

    (1)编写带有native声明的方法的java类

    (2)使用javac命令编译所编写的java类

    (3)然后使用javah + java类名生成扩展名为h的头文件

    (4)使用C/C++实现本地方法

    (5)将C/C++编写的文件生成动态连接库

    JNI所扮演的角色

    JNI下一共涉及到三个角色:C/C++代码、本地方法接口类、Java层中具体业务类。

    简要流程

    三、实战——》环境配置

              我使用的win10 环境下 Android studio版本为:

    Android studio

    配置NDK 环境
              File-->setting-->Appearance&Behavior-->System Setting-->Android SDK

    NDK环境

    PS.有的同学可能打开没有NDK这个选项是因为AS这个IDE有两个启动方式,把你的AS全部关闭 选择studio64位的重新启动即可

    Android studio

    需要配置一下环境(windows)
    NDK下载完成以后在你的Android SDK目录下会生成ndk-bundle文件夹,复制他的路径在环境变量Path里面配置一下

    SDK目录 环境变量

    在windows窗口使用 ndk-build 命令查看是否配置成功

    ndk

    这句话的意思是没有找到可以编译文件,这个不用管它  看到这句话证明你的环境变量配置成功了


    在接下来我们进行JNI学习的实战'演练'以及在AS上使用CMake进行JNI编程。

    下一篇:Android JNI与NDK学习(二)

    感觉有用的同学,动动小手指给个赞,码字不易。

    相关文章

      网友评论

        本文标题:Android JNI与NDK学习(一)

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