前言
对于没接触过的领域,即是挑战也是机遇,不仅能够提升自己的能力。还能够学习到新的技术知识
而学习新的技术的时候,最好是从头开始按照体系学!比一直找快速解决的方法更好
看技术资料的同时,一定要首先去看官方最新的文档!因为可能因为 IDE 的升级 会有不同的使用配置更新!
在Android studio中开发NDK,NDK是Android底层的 一套开发工具包 c/c++库,然而要在java中调用c/c++的原生功能,则需要使用JNI来实现。
什么是JNI
JNI (Java Native Interface) 是java本地接口,它主要是为了实现 Java 调用c、c++等本地代码所封装的一层接口。大家都知道java是跨平台开发语言,它的狂平台特性导致与本地交互的能力不够强大,一些和操作系统相关的特性Java无法完成,所以Java提供了JNI用于和Native代码进行交互。通过JNI,Java可以调用c、c++,相反,c、c++也可以调用Java的相关代码。
JNI 实现 Java 调用 C 层的方法流程:
为什么要使用 JNI?
- 通过JNI 技术可以拓展手机Wifi热点
- coder 执行高效; 大量的运算(极品飞车) ;万能解码(ffmpeg) ;Opengl(3D渲染)
- 代码的复用:ffmpeg,opencv(人脸识别库) ,7-zip
#include "com_atguigu_jnitests2_JNIS.h"
JNIEXPORT jstring JNICALL Java_com_atguigu_jnitests2_JNIS_helloJNI
(JNIEnv * env, jobject jobj) {
return (*env)->NewStringUTF(env, "Hello from C");
}
- 1
- 2
- 3
- 4
- 5
- 6
怎么用Jni?
学习C语言-看懂代码
熟悉 Jni开发流程,在Android 熟悉使用 NDK
NDK介绍
定义:Native Development Kit,是 Android的一个工具开发包 NDK是属于 Android 的,与Java并无直接关系
作用:快速开发C、 C++的动态库,并自动将so和应用一起打包成 APK
即可通过 NDK在 Android中 使用 JNI与本地代码(如C、C++)交互
应用场景:在Android的场景下 使用JNI
即 Android开发的功能需要本地代码(C/C++)实现
JNI 是一种协议,相当于桥梁作用
Java Native Interface : java 本地开发接口
通过JNI 可以让 java 与 C/C++ 代码实现互调
NDK 是Google 在Android 中提供的开发工具包
使用 NDK 编译代码主要有三种方法:
- 基于 Make 的&nb