我尝试着将一款游戏移植到Android上,但它是基于C语言,而Android也支持Java,但我相信一定有一种方法能够将C应用带到Android上,有人知道如何实现这一目标吗?
当前回答
也许你在找这个?
http://www.mosync.com/
它是使用c++为多个移动平台开发的中间层。
其他回答
您可以使用nestedvm将C(或其他GCC语言)转换为Java字节码,并将其用作您的端口的基础。例如,《Simon Tathams》的Android移植版本。
我预计这种方法已经被NDK淘汰了,但如果一些网络或其他东西不允许人们升级他们的手机,它可能不会被淘汰。
Android NDK是一个工具集,允许您使用C和c++等语言在本地代码中实现应用程序的部分内容。对于某些类型的应用程序,这可以帮助您重用用这些语言编写的代码库。
有关如何开始本地开发的更多信息,请点击此链接。
示例应用程序可以在这里找到。
谷歌已经在http://www.youtube.com/watch?v=5yorhsSPFG4上发布了谷歌I/O 2011:将C和c++游戏引入Android会议
这有助于理解NDK在c和c++中编写应用程序的使用。
如果你只是想交叉编译任何基于主机的原生游戏,并在android上运行它们,那么本文将展示3种方法。
1:使用独立工具链的静态编译
2:使用Android NDK的工具链进行交叉编译
3:交叉编译使用AOSP源代码
我不确定NDK是否提供了官方Java API的全部覆盖。
来自http://developer.android.com/sdk/ndk/index.html#overview:
请注意,NDK没有 允许您只开发本机 应用程序。Android的主 运行时仍然是Dalvik虚拟的 机器。
对于任何通过谷歌来了解这一点的人,请注意,从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
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- decltype(auto)的一些用途是什么?
- 碎片中的onCreateOptionsMenu
- Shared_ptr转换为数组:应该使用它吗?
- 使用C返回一个数组
- Printf与std::字符串?
- 禁用复制构造函数
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- 只接受特定类型的c++模板
- c#和Java中的泛型有什么不同?和模板在c++ ?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值