VS2015 - 在Android项目

时间:2016-07-21 09:08:05

标签: java android c++ visual-studio shared-libraries

我有一个由UI的Java层组成的Android项目,以及包含大部分代码的应用程序核心的C ++层。

这两个层是两个独立的Visual Studio 2015项目/解决方案," UI"项目是一个基本应用程序(Android,Gradle)"项目,"核心"项目是一个动态共享库(Android)"生成.so,它在启动时由Java加载。

我想要我的" UI"项目参考"核心"在打开" UI"而不使C ++代码可访问的项目项目

到目前为止我的想法:

  • 添加对" Core"的引用项目在" UI"项目,这似乎是干净的方式,但也使C ++代码可访问,我不希望这是可能的。

  • 未创建对" Core"的引用项目在" UI"项目,但只是"引用"由" Core"生成的.so投射到" UI"项目。但是,我不知道该怎么做。并且因为没有实际参考"核心"项目,编译" UI"项目不会自动重新编译"核心"项目如果对其进行了修改,则强制我手动执行。

有没有干净的方法去做我想做的事情?谢谢。

1 个答案:

答案 0 :(得分:1)

不幸的是,只有在你的解决方案中才能编译cpp项目。如果你想隐藏你的代码,你应该链接你的lib,但是如果你要对cpp代码进行更改,你就必须单独重新编译它。

我使用的是Android Studio,但方法并没有太大差异。如果我想隐藏我的cpp代码并且只是使用libs(因为我在另一个IDE中编写它),我创建了从AS运行的脚本文件(在你的情况下来自VS,也许是构建事件)并构建我的cpp部分。

但更频繁地我将两个部分组合在一起,并且仅在发布阶段我使用外部库隐藏我的cpp部分