我正在尝试找到一种方法,以将我拥有的某些C代码包含到Android项目中,而不必直接在Android项目中提供源文件。我希望Android可以直接使用C代码的编译版本。因此,我的想法是拥有一个受测试的Android应用程序,其中包含源C代码和一个CMakeLists.txt
,并且可以正确编译(使用忍者),并且该应用程序可以正常运行。
它为不同的体系结构创建了这些输出文件夹,如下图所示。
所以我的想法是提取这些文件夹
但是我不确定如何从这里开始。
-如何将其包含到应用程序中?
-还有其他方法可以在不提供源代码的情况下将某些本机代码包含到Android App中吗?
-可以制作一个虚拟gradle插件并将此代码作为依赖项附加到它,以便我可以发布该插件并在Android App中使用相同的插件吗?
答案 0 :(得分:0)
显然,如果您保留名称jniLibs
,则Android Studio可以理解该位置并将编译后的代码自动导入apk,因为这是Android Studio中Java本机代码的默认位置。
当我确实将文件夹jniLibs
放置在正确的位置app/src/main/jniLibs/(the architectures here)
时,Android App可以正常工作,而未指定其他任何内容。
另外,据我所见here,您还可以为文件夹指定一个自定义名称,并在app/build.gradle
中指定以下内容
android{
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}