Android NDK的依赖注入?

时间:2014-08-13 09:01:07

标签: android c++ dependency-injection android-ndk

我一直致力于为Android编写游戏。到目前为止,我一直在使用Java而不是NDK,但我决定将我的代码移植到C ++(出于性能,内存管理和行业标准的原因)。

移植我的应用程序不应该是一个问题(我已经编写了我公平分享的C ++应用程序),但是我一直在使用RoboGuice作为依赖注入框架,否则我的对象图将成为太复杂而且很快。 我一直在四处寻找,但我还没有找到任何关于将依赖注入框架与Android NDK结合使用的资源。

有人可以告诉我是否有任何此类franeworks可用。如果是这样,你会推荐哪一个?

1 个答案:

答案 0 :(得分:0)

如果你有C++11 compiler for Android,你可以使用几个框架(我写了Infectorpp),但还有其他框架可用。你应该注意到,由于缺乏反思,DI在C ++中非常有限,所以你应该做出一些妥协,因为你在RoboGuice中所做的一切都不可能。

通过快速搜索,似乎可以在Android上使用C ++ 11。我没有Android设备但仍然不需要模拟它,但是如果你有任何反馈它将会很好(这里的私人消息或谷歌代码上的支持票就足够了),库是标题只是因此不需要特殊的构建内容,除了在编译器上启用c ++ 11,它只是命令行的一个额外选项。如果这在Android上运行良好,那么对PC来说肯定也不错。 (请不要误解,我正在大量使用它,但似乎很少有人对C ++中的DI感兴趣,因此我收到的反馈非常少)

还有一个很好的框架cpp-resolver:因为你明确地注册工厂函数来注入所有参数,但是非常可扩展,特别是对于服务器应用程序而言,使用它有点尴尬..(解耦对象生命周期管理< / strong>并使用普通的旧C ++。)

最完整的框架可能是wallaroo

  1. 如果你搜索的东西真的很容易使用Infectorpp是一个不错的选择
  2. 如果您需要控制生命周期(主要是服务器):Cpp-resolver是完美的
  3. 如果您需要异国情调的功能和配置文件:wallaroo
  4. 另外注意,运行时配置也可以使用不明确支持它的框架:

    你只需要一个Factory根据你可以通过你作为工厂依赖添加的类读取的配置文件来改变一个不同的类型(可能你不需要知道,因为你已经在使用DI框架,但对于偶尔的读者仍然很有用)