是否可以使用带有cgo和/或SWIG或类似功能的NDK在Go中构建Android游戏?

时间:2012-07-05 21:08:42

标签: android-ndk go swig cgo

是否可以使用Go来构建Android游戏?我并不喜欢主题行中提到的技术。我知道some people已在Go中构建了一些Android程序,但它们可能已无头了。

2 个答案:

答案 0 :(得分:1)

不,现在不可能。 Go和C程序可以通过cgo进行互操作。但在这种情况下,Go程序必须在将控制权传递给程序的基于C的部分之前启动并初始化其运行时。

在Android中使用NDK时,Dalvik虚拟机会通过dlopen调用您的C代码。所以Go运行时没有机会初始化自己。

答案 1 :(得分:-1)

如果你想要非无头应用程序,我的建议是使用cgo作为GUI。这听起来违反直觉,但如果NDK支持C android gui库,那么使用这些调用编写GUI可能是最容易的。当然,您不必在C中编写所有逻辑。您可以简单地为每个GUI调用cgo包装,然后在go中编写GUI,除非每个gui调用都将通过cgo进行转换。