前言
什么是NDK?
NDK全称为Native Development Kit,是Android的一个工具开发包,帮助开发者快速开发C(或C )的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。
NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。
NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。
- 在Android开发中,使用 NDK开发的需求正逐渐增大
- 但很多人却搞不懂 JNI 与 NDK 到底是怎么回事
- 今天,我将先介绍JNI 与 NDK & 之间的区别,手把手进行 NDK的使用教学,希望你们会喜欢
从上面的讲的里面又说到了JNI,那JNI又是什么是呢?
JNI全称为Java Native Interface,即 Java本地接口。它的作为为使得Java 与 本地其他类型语言(如C、C )交互。
NDK与JNI的关系
Android Studio NDK的环境配置
我用的Android Studio的版本为3.3.2
在上面的工具栏里打开SDK Manager
然后我们点击SDK Tools
进入后里面的LLDB、CMAKE和NDK这三项都打上勾进行下载安装。
新建NDK项目
点击Start a new Android Studio project
找到最后一项Native C ,然后再点击Next。
注:3.3以前可以直接选空的Acitivty然后后面有选项是include C 打上勾,这块改变也是后来才找到,刚才始的时候也是一脸懵逼了
输入一个Name为vaccaendk,然后再点击Next
选择C 版本,可以选择C 11,C 14,我们这里默认即可。点击Finish就会创建项目
创建好后的项目可以从下图上看到,左侧多了一个CPP的包,里面有CMakeList.txt和native-lib.cpp的文件,在默认的MainActivity里面可以看到右侧红框里面上面是引用名为native-lib的库名,下面是一个stringFromJNI的一个demo例子
我们再来看看native-lib.cpp
这里面就是对应的Mainactivity里面stringFromJNI的C 的代码。到这里一个带有NDK的项目就创建完成了。
-END-