2

在我最近开始的实习(我正在学习计算机科学)中,我必须将一个有点大的现有项目移植到 Android。它是一个 Visual C/C++ 项目,最终应该使用 NDK 在 Android 上运行。问题是我对移植软件一无所知,因为这不在我的研究中......

我有几天的时间来了解我将要处理的项目。

关于复杂性的几句话:它是一个 Visual Studio 解决方案,由 28 个项目组成,其中大多数都是大...

现在我需要开发一个将其移植到 Android 的概念,这就是我写这篇文章的原因。我完全不知道从哪里开始,也不知道如何找到移植它的概念。我尝试在网上搜索一些东西或一些关于此的书籍,但我一无所获。

我当然知道,基本上我必须删除 Visual/Windows 特定的所有内容,并用适当的 Android/Linux 函数替换它,或者如果 Android 上没有相应的内容,则实施新的东西。

但是由于这个项目有点庞大,我不能只是尝试用正确的编译器编译它并处理错误消息,这将导致无处可去,我猜......

所以现在我的实际问题是:是否有人对此或类似的事情有经验,并且可以提供一些提示如何开始?正如我所说,我首先需要一个概念。关于如何开始和处理移植这种规模的软件项目的更一般的东西也非常受欢迎,因为我对此一无所知......

4

3 回答 3

0

你没有告诉项目的源代码大小(有多少几千行源代码)。

如果代码量足够大(例如至少 100 KLOC),您可以考虑自定义 GCC 编译器(假设是最近的 4.6 或 4.7 版本),可能使用MELT(扩展 GCC 的高级域特定语言),或者痛苦地编码在C中是一个 GCC 插件。这种 GCC 定制方法仅适用于大型代码库(您需要几天时间来掌握 GCC 内部知识)。

另一方面,许多设计良好的应用程序可能已将其操作系统功能封装在定义良好的接口和库中。您可能会考虑将您的应用程序移植到 Qt 或其他一些跨平台库。

我们需要有关您的项目的更多详细信息,以便为您提供更多帮助。

于 2012-08-21T13:22:59.130 回答
0

我认为你以错误的方式处理整个问题。有几种工具可让您将 C# 和可视化 C++ 以及其他可视化语言从其受人尊敬的 IDE 编译到 android 平台。例如, android 有 mono。Mono 是一个 Visual Studio 插件,可帮助您使用 Visual Studio 和 .net 技术创建 android 项目。我认为您应该将研究重点放在这样的工具上,因为手动更改所有代码几乎是不可能的并且太耗时了。是一个页面,可帮助您开始使用适用于 android 的 mono。祝你好运。

于 2012-08-20T08:14:26.390 回答
0

请参阅此答案Android NDK with Visual Studio。我个人不使用它,但这似乎是解决您问题的好方法。和你一样,过去我们不得不将一个大型的 Visual C++ 库项目移植到 Android,我们是这样进行的:

  1. 尝试编译主库界面(通过创建相对的Android.mk)
  2. 通过使用链接错误,您应该猜测要编译的其他项目并为它们创建 mks
  3. 循环直到没有更多的链接错误。
于 2012-08-20T10:36:38.523 回答