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

Add reference to CMake project in Android Studio

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

经过几次搜索后,我得出结论,这甚至不是在 Android.

中将本机代码和托管代码放在一起的常用模式
  1. 是否可以在 Android Studio 中的 Gradle 项目中添加对使用 [=21 的本地项目的引用=]CMake?

  2. 如果我在命令行中编译所有内容(假设我不使用 Android工作室)?

  3. 如果可以的话,推荐吗?

Is it possible to add reference in a Gradle project in Android Studio to a native project that uses CMake?

由于Google宣布Android Studio 2.2附带cmake插件,因此可以将CMake项目引用到android项目。

Can NDK adopt the project in a simple manner if I compile everything in command line (assuming I don't use Android Studio)?

根据我的经验,我以单独的方式编译 NDK,然后 link static/shared 库(.so 文件)用于 android 项目。我在使用 mupdf here

开发 PDF Reader 时使用了 NDK

希望对您有所帮助。

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

android studio 直接读入您的 cmake 脚本——没有什么能像桌面系统那样为其原生 IDEs(Visual Studio 或 XCode);所以您可能需要修改现有的 cmake 文件,最终使其适用于 android studio。

只要构建正确的 APK,命令行或 IDE 都没有太大关系。如果您打算发布源代码,那么让您的项目准备好 IDE 会很有吸引力。

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