我正在尝试开发/移植游戏到Android,但是它在C中,并且Android支持Java,但我确信必须有一种方法可以在那里获得一个C应用程序,任何人都知道关于这个主题的一个很好的教程?
谢谢!
对于通过Google访问此处的任何人,请注意,从SDK 1.6开始Android现在具有官方原生SDK.
您可以从此处下载Android NDK(Native Development Kit):https: //developer.android.com/ndk/downloads/index.html
还有一篇关于NDK的博客文章:http:
//android-developers.blogspot.com/2009/06/introducing-android-15-ndk-release-1.html
在Android的NDK是一个工具集,可以让你实现在本地代码你的应用程序的一部分,使用的语言,如C和C++.对于某些类型的应用程序,这可以帮助您重用以这些语言编写的代码库.
有关如何开始本机开发的更多信息,请单击此链接.
示例应用程序可在此处找到.
通常,你必须:
安装Google Android NDK.它包含libs,headers,makfile示例和gcc工具链
从ARM的C代码构建可执行文件,如果需要,优化并将其与提供的库链接
使用提供的adb界面连接到手机并测试您的可执行文件
如果您想要销售应用程序:
从C代码构建库
创建将使用此库的简单Java代码
将此库嵌入到应用程序包文件中
测试您的应用
出售或免费分发
谷歌发布了一个原生开发套件(NDK)(根据http://www.youtube.com/watch?v=Z5whfaLH1-E在00:07:30发布).
希望这些信息将在谷歌群组页面(http://groups.google.com/group/android-ndk)上更新,因为它表示尚未发布.
我不确定从哪里获得简单的下载,但我听说你可以从甜甜圈分支下的谷歌Git存储库中获取NDK的副本.
官方立场似乎是,这不是你"想做"的事情.在Android Developers列表中查看此主题.谷歌设想在各种不同的设备(CPU,显示器等)上运行android.因此,支持开发的最佳方法是使用针对Dalvik VM的(可移植)托管代码.因此,Android SDK不支持C/C++.
但是,看看这个页面:
Android包含一系列由Android系统的各个组件使用的C/C++库.这些功能通过Android应用程序框架向开发人员公开.
托管应用程序框架似乎是在这些库的顶部分层.该页面继续列出C/C++库:标准C库,媒体,3D,SQL lite等.
所以你需要的是一个编译器链,它将C/C++编译到适当的CPU(在G1的情况下为ARM).如何做到这一点一些简短的说明是这里.
我不知道的是在哪里可以找到这些库提供的API的描述.我猜可能会在SDK的某处隐藏头文件,但文档可能粗略/缺失.但我认为可以做到!
希望这很有用.为了记录,我还没有编写任何原生的Android应用程序 - 只是一些简单的托管应用程序.
安迪
您可以使用nestedvm将C(或其他GCC语言)转换为Java字节码,并将其用作端口的基础.例如,请参阅Simon Tathams便携式拼图收集的Android端口.
我希望这种方法被NDK淘汰,但如果某些网络或某些东西不允许人们升级他们的手机,它可能不会出现.
Google已推出Google I/O 2011:将C和C++游戏引入Android会话,可在http://www.youtube.com/watch?v=5yorhsSPFG4上找到
这很好理解使用NDK在c和c ++中为android编写应用程序.
如果你只想交叉编译任何基于控制台的本机游戏并在android上运行它们,那么本文已经展示了3种相同的方法.
1:使用独立工具链进行静态编译
2:使用Android NDK的工具链进行交叉编译
3:使用AOSP源代码进行交叉编译
看着这似乎有可能:
http://openhandsetmagazine.com/2007/11/running-c-native-applications-on-android-the-final-point/(现在只能通过WayBack机器获得)
"事实上只支持Java语言并不意味着你不能用其他语言开发应用程序.许多开发人员,黑客和移动应用程序开发专家已经证明了这一点.Endle Interactive BV的人员,Edgelib背后的公司库,成功地在Android平台上运行原生C++应用程序,甚至此时显示和声音仍有很多问题...等等,这包括S-Tris2游戏和Edgelib的3D动画演示.
也许你在找这个?
http://www.mosync.com/
它是使用c ++开发多个移动平台的中间层.
自2009年以来,这方面有了发展.
Necessitas - 适用于Android的Qt(C++框架)
入门视频.
看看google ndk group它看起来很有前途,NDK的第一个版本将于2009年上半年推出.
更新:它发布了http://android-developers.blogspot.com/2009/06/introducing-android-15-ndk-release-1.html
我不确定NDK是否提供了官方Java API的完整报道.
来自http://developer.android.com/sdk/ndk/index.html#overview:
请注意,NDK不允许您开发仅限本机的应用程序.Android的主要运行时仍然是Dalvik虚拟机.