我尝试着将一款游戏移植到Android上,但它是基于C语言,而Android也支持Java,但我相信一定有一种方法能够将C应用带到Android上,有人知道如何实现这一目标吗?


当前回答

看看谷歌ndk组,它看起来很有前途,ndk的第一个版本将在2009年上半年发布。

更新: 它发布于http://android-developers.blogspot.com/2009/06/introducing-android-15-ndk-release-1.html

其他回答

有一个计划,允许C/ c++库在Android的下一个SDK版本(代号Eclair?)到目前为止,这还不能通过Android Java SDK实现。但是,您可以获取HUGE开源项目,滚动您自己的库,然后刷新您自己的设备……但是任何想要使用你的库的人都必须同时刷新你的自定义构建。

谷歌刚刚发布了NDK。

http://feedproxy.google.com/~r/blogspot/hsDu/~3/2foWz7hwFtE/introducing-android-15-ndk-release-1.html

可以在这里找到: http://developer.android.com/sdk/ndk/1.5_r1/index.html

您可以使用nestedvm将C(或其他GCC语言)转换为Java字节码,并将其用作您的端口的基础。例如,《Simon Tathams》的Android移植版本。

我预计这种方法已经被NDK淘汰了,但如果一些网络或其他东西不允许人们升级他们的手机,它可能不会被淘汰。

谷歌已经在http://www.youtube.com/watch?v=5yorhsSPFG4上发布了谷歌I/O 2011:将C和c++游戏引入Android会议

这有助于理解NDK在c和c++中编写应用程序的使用。

如果你只是想交叉编译任何基于主机的原生游戏,并在android上运行它们,那么本文将展示3种方法。

1:使用独立工具链的静态编译

2:使用Android NDK的工具链进行交叉编译

3:交叉编译使用AOSP源代码

我不知道教程,但一个很好的开发工具:Ideaworks Labs的Airplay SDK。(最近更名为“Marmelade”)使用C/ c++,你可以为Windows Mobile, iphone, Android开发应用。我唯一不喜欢的组件是GUI编写器——一个bug,但你总是可以用记事本代替它。