Android之一个简单的NDK使用(二)
2017-10-06 11:55
316 查看
继上一篇的直接实现后,这一篇主要是记录一些概念上的东西,或是一些解释。
注:以下代码里的“#”号表示注释。
CMake就是针对上面问题所设计的工具:它首先允许开发者编写一种平台无关的 CMakeLists.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。从而做到“Write once, run everywhere”。显然,CMake 是一个比上述几种 make 更高级的编译配置工具。一些使用 CMake 作为项目架构系统的知名开源项目有 VTK、ITK、KDE、OpenCV、OSG 等 [1]。
来自 CMake入门实战
待续。。。
注:以下代码里的“#”号表示注释。
CMake
你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。CMake就是针对上面问题所设计的工具:它首先允许开发者编写一种平台无关的 CMakeLists.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。从而做到“Write once, run everywhere”。显然,CMake 是一个比上述几种 make 更高级的编译配置工具。一些使用 CMake 作为项目架构系统的知名开源项目有 VTK、ITK、KDE、OpenCV、OSG 等 [1]。
来自 CMake入门实战
小结
CMake是一个更高级的编译配置,它让开发者只要编写一次文件后,会根据不同的平台自动生成不同的本地化文件。CMakeLists
在上一篇的CMakeLists.txt文件里有三个关键词:add_library,find_library和target_link_libraries。add_library
这个方法主要是让你写的cpp文件作为一个库添加到构建脚本里,这样就能被调用到。add_library( # 设置一个名称 native-lib # 设置这个库为SHARED类型 SHARED # 指定出它的路径。 src/main/cpp/native-lib.cpp )
find_library
这个方法主要是添加NDK的API。就是我们需要NDK的什么API就在这里进行声明添加即可。find_library( # 设置一个路径名 log-lib # 指定要用的NDK里的哪个库,主要是让CMake能够去定位到 log )
target_link_libraries
我理解应该是一些库之间的一些关联。target_link_libraries( # 指定目标库 native-lib calculateBeerResult # 连接目标库和NDK里的log库,${}这个写法表示引用 ${log-lib} )
JNI的使用
上一篇的native-lib.cpp里主要是对JNI的一些使用,里面有C(C++)语言的语法,这个我就不写了,因为我也不熟悉,也是当时自己搜索后写出来的。#include <jni.h> #include "calculateBeerResult.h" //引入计算方法的头部 extern "C" JNIEXPORT jintArray JNICALL Java_message_license_szca_com_drinkbeer_presenter_CalculateBeerPresenter_getCalculateResult( JNIEnv *env, jobject /* this */, int money//java传进来的金额) { }
待续。。。
相关文章推荐
- Android之一个简单的NDK使用(一)
- 使用Android-studio简单实现一个NDK的例子
- 一个简单的demo学习Android远程Service(AIDL的使用)
- 一个简单的demo学习Android远程Service(AIDL的使用
- Android之使用VideoView组件播放一个简单的视频
- 用Eclipse+Cygwin+CDT+NDK来创建一个简单的Android JNI 项目
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
- Android之使用MediaPlayer和SurfaceView组件播放一个简单的视频
- android 使用Eclipse开发NDK的配置和简单使用
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
- Android的NDK开发(2)——利用Android NDK编写一个简单的HelloWorld
- 使用html写一个android关于界面,事情原来可以如此简单
- Android NDK rb5 文档之使用 Android 工具链作为一个独立编译器
- 第二章:Android之NDK配置与简单使用
- android 一个简单的CardView的 使用
- 打造支持apk下载和html5缓存的 IIS(配合一个超简单的android APP使用)具体解释
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
- 【Android】使用Chronometer组件实现一个简单的计时器
- Android中使用WebView去构建一个简单的web app.
- android 一个小例子说明handler和AlertDialog的简单使用