NDK相关概念
1.什么是NDK(官方网站:https://developer.android.com/tools/sdk/ndk/index.html)
帮助我们开发C/C++代码编译的工具,这个工具可以将C代码编译成so文件,这个有点类似于百度地图的so文件。
2.什么场景可以用NDK
大型CPU处理计算,(复杂的计算交互)不是很复杂就不要用NDK,完全可以原生。
1.代码的保护(因为apk用JAVA编程的代码容易被反编译,C比较难反编译)
2.大部分开源库都是C/C++编写的,所以NDK调用C/C++比较方便。
3.编译移植。可以写共用的库移植到IOS和Android上。
3.什么是交叉编译
在一个平台生成另一个平台可执行的代码。(例如X86平台--一般为我们的电脑平台,生成在Andorid平台生成的代码执行。)
4.jni是什么
既允许JAVA代码和其它语言的代码进行交互。
jni流程:
5.什么是链接库
1.静态链接库
标准头文件stdio.h,文件大, 把所有依赖都放到这里
2.动态链接库
按需所起,编译的时候按需所取,一般都是动态链接库,但是比较容易缺失文件。
6.make文件介绍
既Android.mk文件:
其中ndk-build表示的是我们的最初编译的时候的命令,ndk-stack命令表示我们可以在调试的时候快速定位到错误的页面,samples文件夹是一些示例文件,例如hello-jni,platforms文件夹里面存放可以编译的文件的sdk版本,docs文件夹是说明文档,如果不清楚的时候直接往这里查看。toolchains文件夹是我们链接库工具箱,