Android NDK - 在没有Android Studio的情况下构建本机库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android NDK - 在没有Android Studio的情况下构建本机库相关的知识,希望对你有一定的参考价值。
我正在开发一个c / c ++跨平台项目,由2个主要库构成(带有一些外部依赖项:ssl,yajl,fribidi)。 android解决方案将包括Java文件和JNI层,所有这些都捆绑在AAR文件中(包括资产和本机库)。
我设法建立整个项目,但是以一种非常尴尬的方式: 我在Android Studio中创建了一个“hello world”Android应用程序,具有本机支持,并将所有本机依赖项添加到CMAkeList.txt。我添加了我的Java代码+ JNI并设法创建了AAR(目前仅适用于ARM)。
现在我需要将不同库的构建分别分别到它们各自的项目:libA,libB和C.aar。
没有IDE(通过命令行)怎么做? 有独立的NDK,make_standalone_toolchain.py脚本,android.toolchain.cmake和其他选项,但没有记录或最新。大多数文档仍然谈论过时的Android.mk方法。 我想在我的CMakeList.txt中包含android.toolchain.cmake,它将设置所有需要的环境......
我正在使用最新的Android Studio 3.0.1和NDK r16b(通过SDK Manager安装)
亚历克斯 - 谢谢,正是我在寻找的东西。只需要添加一些标志和一个调用来制作:
> cmake -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK%uildcmakeandroid.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=android-19 -DCMAKE_MAKE_PROGRAM=%ANDROID_NDK%prebuiltwindows-x86_64inmake.exe -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI="armeabi-v7a with NEON" ..
> cmake --build .
Android Studio(标准的Android gradle插件)不支持仅限纯模块,但您可以拆分CMake脚本并单独使用libA和libB。您可以从命令行运行cmake(但最好使用Android SDK附带的版本)。
sdk/cmake/3.6.4111459/bin/cmake -DCMAKE_TOOLCHAIN_FILE=sdk/ndk-bundle/build/cmake/android.toolchain.cmake ...
构建包含已编译的Java包装器和两个本机库的AAR文件的最简单方法是使用Android Studio,但您可以从命令行运行gradle任务。这是我们通常在构建服务器上执行的操作。
以上是关于Android NDK - 在没有Android Studio的情况下构建本机库的主要内容,如果未能解决你的问题,请参考以下文章
buildozer android NDK没有下载Ubuntu