在Android Studio中添加对CMake项目的引用

时间:2015-08-29 12:45:01

标签: android-studio gradle android-ndk cmake

在我的特定情况下,我在 C ++ 11 中实现了一个使用 CMake 的跨平台项目。我最初设计这个项目是为了在PC上工作( Windows Unix ),但现在我意识到我也可以在移动平台上使用它,而无需重新实现业务逻辑在每个平台上。该项目使用标准库: Boost Poco OpenSSL Protobuf

经过几次搜索后,我得出的结论是,在 Android 中将本机和托管代码组合在一起甚至不是一种常用模式。

  1. 是否可以将Android Studio中的 Gradle 项目中的引用添加到使用 CMake 的本机项目中?

  2. 如果我在命令行编译所有内容(假设我不使用 Android Studio ), NDK 能否以简单的方式采用该项目?< / p>

  3. 如果有可能,是否可以推荐?

3 个答案:

答案 0 :(得分:5)

  

是否可以将Android Studio中的Gradle项目中的引用添加到使用CMake的本机项目中?

由于Google宣布了cmake插件附带的Android Studio 2.2,因此可以将CMake项目引用到android项目中。我试过了,我把它发布在my blog上。

  

如果我在命令行编译所有内容(假设我不使用Android Studio),NDK能否以简单的方式采用该项目?

根据我的经验,我以单独的方式编译NDK,然后链接要在android项目中使用的静态/共享库(.so文件)。我在使用mupdf here

开发PDF阅读器时使用了NDK

希望这有帮助。

答案 1 :(得分:4)

有可能使用android studio 2.2,主要是用于gradle的android插件使其成为可能。你可以看一些例子: https://github.com/googlesamples/android-ndk/tree/master-cmake

android studio直接读入你的cmake脚本 - 没有像桌面系统那样为他们的原生IDE(Visual Studio或XCode)生成项目文件;所以你可能需要修改你现有的cmake文件,最终使它适用于android studio。

只要你构建到正确的APK,命令行或IDE都无关紧要。如果您打算提供源代码,那么使用IDE准备好您的项目将会很有吸引力。

答案 2 :(得分:0)

请参阅CMaker_Boost,在配置时使用CMake构建Boost。现在它在Linux和Android,gcc和clang上进行了测试。这可以包含在Android Studio中的gradle项目中。我希望这会有所帮助。