美文网首页
NDK和JNI概要

NDK和JNI概要

作者: 凌川江雪 | 来源:发表于2020-05-25 02:00 被阅读0次

NDK简述

NDK:Native Development Kit(Kit n.配套元件)是一系列工具的集合
它提供了一系列的工具,帮助开发者快速开发C/C++的动态库
并能自动将so和Java一起打包成apk

JNI简述

JNI:Java Native Interface;
JNI标准是Java平台的一部分,
JNI是Java语言提供的Java和C/C++相互沟通的机制,
Java可以通过JNI调用C/C++代码,
C/C++代码也可以调用Java代码;

补充

  • NDK可以为我们生成C/C++动态链接库
    JNI是Java和C/C++沟通的接口,
    这两者与Android没有什么关系,只是Android是Java语言开发,
    通过JNI可以实现与C/C++沟通,
    所以可以使用NDK+JNI来实现“Java+C”的Android开发方式。

NDK工具目录简述

  • SDK目录下的ndk-bundle
  • toolchains是不同的CPU架构的指令集:

    项目会通过toolchains进行编译;

  • platforms包则负责把程序编译成手机对应的版本:

为什么要NDK开发(NDK开发优点)

  1. 项目需要调用底层的一些C/C++的东西
    (java无法直接访问到OS底层,如系统硬件等),
    或者已经在C/C++环境下实现了功能代码(大部分现存的开源库都是用C/C++代码编写的),则直接使用即可;
    NDK开发常用于驱动开发无线热点共享数学运算实时渲染的游戏音视频处理文件压缩人脸识别图片处理等;

  2. 为了效率更加高效些,将要求高性能的应用逻辑使用C/C++开发,
    从而提高应用程序的执行效率
    但是C/C++代码虽然是高效的,在java于C/C++相互调用时却增大了开销

  3. 基于安全性的考虑。
    防止代码被反编译,为了安全起见,
    使用C/C++语言来编写重要的部分,以增大系统的安全性,
    最后生成so库(用过第三方库的应该都不陌生)便于给人提供方便;
    (任何有效的代码混淆对于会smail语法的高手,
    反编译apk都是轻而易举的)

  4. 便于移植。
    用C/C++写的库可以方便在其他的平台上再次使用;

可以借助 source insight 这个工具对源码进行查看!

  • JNI其实就是一个头文件,jni.h,
    定义了很多数据结构变量









相关文章

  • NDK和JNI概要

    NDK简述 NDK:Native Development Kit(Kit n.配套元件)是一系列工具的集合;它提供...

  • JNI入门学习总结(MAC OS AndroidStudio)

    1 什么是JNI和NDK? JNI:java本地接口 NDK(Native Development Kit)是Go...

  • 音视频开发之旅(17) JNI与NDK的学习和使用

    从这篇开始,我们进入JNI和NDK系列的学习实践,来一起学习成长吧. 目录 什么是JNI、NDK? Java和Na...

  • Android jni

    NDK Windows和linux 环境搭建 JNI函数调用流程,JNI理解和基本数据类型 JNI访问Java中各...

  • JNI

    JNI & NDK JNI(Java Native Interface),提供若干的API实现Java和其他语言的...

  • NDK开发流程

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

  • JNI简介

    JNI和NDK? JNI (Java Native Interface)是一套编程接口,用来实现java代码和其他...

  • 四、MagicCamera3#C++与Kotlin之间的衔接

    NDK和JNI JNI是Java Native Interface(JAVA本地接口)的缩写,为了方便Java调用...

  • Android 添加JNI 开发能力

    JNI 与 NDK 区别JNI:JNI是一套编程接口,用来实现Java代码与本地的C/C++代码进行交互;NDK:...

  • JNI相关知识点

    1、Android NDK开发:JNI基础篇 2、Android Studio NDK环境配置及JNI使用方法 3...

网友评论

      本文标题:NDK和JNI概要

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