我有一个由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"项目不会自动重新编译"核心"项目如果对其进行了修改,则强制我手动执行。
有没有干净的方法去做我想做的事情?谢谢。
答案 0 :(得分:1)
不幸的是,只有在你的解决方案中才能编译cpp项目。如果你想隐藏你的代码,你应该链接你的lib,但是如果你要对cpp代码进行更改,你就必须单独重新编译它。
我使用的是Android Studio,但方法并没有太大差异。如果我想隐藏我的cpp代码并且只是使用libs(因为我在另一个IDE中编写它),我创建了从AS运行的脚本文件(在你的情况下来自VS,也许是构建事件)并构建我的cpp部分。
但更频繁地我将两个部分组合在一起,并且仅在发布阶段我使用外部库隐藏我的cpp部分