Ninja 是Google的一名程序员推出的注重速度的构建工具,一般在Unix/Linux上的程序通过make/makefile来构建编译,而Ninja通过将编译任务并行组织,大大提高了构建速度。
Ninja的目标是成为汇编程序。
构建系统在需要做出决策时变得缓慢。当您处于编辑 - 编译周期时,您希望它尽可能快 - 您希望构建系统执行必要的最少工作以确定需要立即构建的内容。
Ninja包含描述任意依赖图所需的最基本功能。它缺乏语法使得无法表达复杂的决策。
Snappy 是一个 C++ 的用来压缩和解压缩的开发包。其目标不是最大限度压缩或者兼容其他压缩格式,而是旨在提供高速压缩速度和合理的压缩率。Snappy 比 zlib 更快,但文件相对要大 20% 到 100%。在 64位模式的 Core i7 处理器上,可达每秒 250~500兆的压缩速度。
cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。
整个调用流程就是:
- Gradle 调用您的外部构建脚本 CMakeLists.txt。
- CMake 按照构建脚本中的命令将 C++ 源文件 native-lib.cpp 编译到共享的对象库中,并命名为 libnative-lib.so,Gradle 随后会将其打包到 APK 中。
- 运行时,应用的 MainActivity 会使用
System.loadLibrary()
加载原生库。现在,应用可以使用库的原生函数stringFromJNI()
。 - MainActivity.onCreate() 调用
stringFromJNI()
,这将返回“Hello from C++”并使用这些文字更新 TextView。
基本数据类型
Java数据类型 |
JNI本地类型 |
C/C++数据类型 |
数据类型描述 |
boolean |
jboolean |
unsigned char |
C/C++无符号8为整数 |
byte |
jbyte |
signed char |
C/C++有符号8位整数 |
char |
jchar |
unsigned short |
C/C++无符号16位整数 |
short |
jshort |
signed short |
C/C++有符号16位整数 |
int |
jint |
signed int |
C/C++有符号32位整数 |
long |
jlong |
signed long |
C/C++有符号64位整数 |
float |
jfloat |
float |
C/C++32位浮点数 |
double |
jdouble |
double |
C/C++64位浮点数 |
发现一个错误,就是在构建时会有rm。。。这个不应该出现在windows系统上,只有一种可能,那就是在linux上编译的。。。所以我需要在linux上编译。。。
要在linux上安装jre,androidsdk,Androidcmdline,ndk等等。