使用Android SDK(或Marmalade等)将C ++游戏移植到Google Play有多困难

时间:2016-02-19 13:10:36

标签: android c++ sdk google-play marmalade

我目前正在使用C ++ / SFML开发游戏,我知道Google Play游戏通常是C或Java,但有可能创建一个应用程序" (不一定是游戏??)对于用C ++编写的Google Play。我明白这样做你必须使用Android SDK(我不确定SDK如何在这个时间点工作)或类似的软件如Marmalade必须与c ++代码一起使用才能制作它在Android上运行。 两个问题:

1)是否有使用Android SDK无法移植到Google Play / Android的c ++代码元素(如指针)?

2)使用Android SDK或类似软件将c ++代码移植到Google Play / Android有多难?

提前致谢

2 个答案:

答案 0 :(得分:1)

您可以使用NDK在Android上编译C ++。

对于SFML,它显然不适用于Android':'

  

使用SFML,您的应用程序可以编译并在开箱即用   最常见的操作系统:Windows,Linux,Mac OS X等   Android& iOS.With SFML,您的应用程序可以编译和用完   最常见的操作系统上的框:Windows,Linux,Mac OS X.   很快Android&的iOS

至于端口有多难 - 显然这是一种意见,但根据我的经验,Android原生开发比Android JavaVM或桌面开发困难得多。

答案 1 :(得分:1)

我不会谈论SFML,因为我没有听说过它,并将专注于C ++方面。我以原生iOS和Android为生。在这种情况下,它意味着Java使用Android SDK和Objective C for iOS。

在处理了两个项目之后,将业务逻辑和类从一个项目移植到另一个项目非常容易。我已经很多年没有接触过C ++了,但是除非你做了一些真正有多重继承的东西,否则编码本身就会很简单。

我遇到困难(你会更多)是GUI的一面。如果您来自PC编码,则需要对GUI代码进行大量修改。一个例外是具有响应式设计的Web GUI,但这会打开许多​​其他问题,例如没有本机API和有限的功能。

关于NDK,您需要了解这是真正的低级代码,用机器语言编写。这意味着您不喜欢一次编写,在Java的任何地方运行,需要为ARM和Intel设备编译。英特尔在这个市场上传统上一直很弱,但我不会打赌他们。

对于iOS,它意味着XCode将为ARMv7,ARMv7s,ARM64(以及用于模拟器的IA-64)生成重复代码。无论如何,这无济于事。

另一种方法是使用真正的网络应用程序。抛弃这个传统的C ++并转向HTML和JavaScript。如果您将游戏移植到网络上,您将能够在任何地方运行它。 iOS(UIWebView)和Android(WebView)都支持Web容器。当然,这将伴随着本周新的令人兴奋的框架。