如何将Celestia编译为Android版本?

15

Celestia 是一款极具视觉魅力的应用程序,用于实时三维可视化太空,其详细模型包括太阳系、10万颗以上的星星、1万多个星系,并且还可以通过扩展机制添加更多物体。

它可以在Windows、Mac OS、Linux和FreeBSD上运行,但是否有适用于Android的版本?或者如何在Android上构建或移植它呢?


不错的问题。我为Celestia创建了一个标签并编辑了问题,也许它会得到更多关注。如果没有,你可以提供悬赏。 - aaronman
1
我认为这更多是关于你的Android设备是否能够处理它的问题?对于基本的太阳系模拟,它是可以的,但当你开始添加小行星、彗星、恒星时,你突然需要相对较大的内存空间,而并非所有的Android设备都能够处理。另一个问题是速度,物体越少,运行得越快...是的,你可以使用较慢的速率更新位置,但当你想要突然重新计算整个场景时,那就需要时间了。加入3D图形会使所有这些问题倍增。因此,在开始移植之前,问题是它将在哪种设备上运行以及模拟/渲染的质量如何。 - Spektre
1
如果您有类似桌面电脑的强大计算能力,那么肯定可以运行并尝试进行移植。获取源代码并将所有与操作系统/平台相关的内容重写为您的环境。这是一项巨大的工作,需要处理未知的源代码,特别是如果您不知道它在做什么以及如何做...请参阅此处的逼真的N体太阳系模拟,了解此类程序通常的工作方式。 - Spektre
1个回答

1

基于Spektre的评论并快速查看,您需要:

  1. 获取代码(从SVNGit fork
  2. 将automake构建系统转换为NDK
  3. 用Android NDK替换所有依赖Linux的代码(例如OpenGL),或者更好的方法是添加一个新平台
  4. 构建新的用户界面。可能可以使用Qt,因为它在Android上运行

需要考虑一些事情:

  • 代码库大约有20万行,使用c/c++编写
  • 有一些可选依赖项(例如lua),还有一些必需依赖项(例如OpenGL库)
  • 您需要仔细查看各个模块。例如,“celengine”包含大部分OpenGL代码。

在我看来,这是一件困难的事情(过去几年我自己做了很多操作系统间的移植,尽管代码库较小)。我的方法更倾向于使用可用的数据构建一个新的东西(lib、应用程序),并逐步添加功能和NDK组件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接