代码之家  ›  专栏  ›  技术社区  ›  Daniel Voina

安卓葡萄酒

  •  0
  • Daniel Voina  · 技术社区  · 14 年前

    我正在考虑在Android上建立一个葡萄酒兼容层的想法。 这个想法是在它上运行Symbian应用程序,因为两个操作系统共享ARM硬件。

    在这个仿真器中,要克服的最大差异是什么?(线程、存储…)

    4 回复  |  直到 14 年前
        1
  •  1
  •   Chris Stratton    14 年前

    真正的问题不是代码执行,而是API要做的事情,比如图形、与硬件交互、接受输入等等。如果你有原始文档,android有能力,那么API转换层是可能的。

    但是android的安全模型完全阻止了许多在其他手机平台上可能发生的事情,再加上它的“javaapi only”,只允许低效的方式去做那些可以在其他平台上更有效地完成的事情。

    这当然都是关于应用程序级仿真/api转换的。如果你愿意修改android平台本身,支持任何你有文档(和许可证?)的东西在硬件能力范围内的设备应该是可能的。

        2
  •  1
  •   darioo    14 年前

    设备的硬件能力与托管的仿真器的复杂性无关。这取决于塞班的设计和复杂性。

    更重要的是,获得执照。即使人们可以为安卓系统制作一个Symbian仿真器,它的合法性也会受到质疑。

    很难详细回答你的问题,但是由于Symbian是开源的(Android也是),如果你有时间的话,就不难看出是什么让它们与众不同。

        3
  •  1
  •   hhafez    14 年前

    QT用于最新的symbian操作系统,并已移植到Android,您可以为每个平台编写QT构建的应用程序

        4
  •  1
  •   Andreas Goretzky    12 年前

    编写仿真程序的问题是多种多样的。

    如果Symbian应用程序是用Basic或类似的解释器语言编写的,那么仿真器就不会太难编写了。我曾经做过这样的事情,使相同的代码在linux和windows上运行,并且我使用了一个转换API来处理来自直接指向UI、输入/输出的软件的所有被调用方。

    我猜Symbian的UI功能是Android功能的一个子集,所以编写一个类似于WINE的东西或者一个在不同硬件上运行Symbian代码的解释器(如果只是用高级语言的话)并不太困难。

    但是请注意,appps中可能有一些机器代码,这是特定于处理器的。现在大多数Android标签运行在Tegra、Tegra2或Tegra3上(很快),有些可能运行在StrongArm或Arm上,有些可能运行在Intel Atom(x86 architecture),因此如果CPU不像Arm/Atom那样是二进制兼容的,这可能或多或少是不可能的。然后你还需要模拟CPU,这可能会消耗太多的性能,你需要一个4-5倍的强大的机器来顺利运行这些东西。

    破解Android来执行类似Linux的二进制文件并不太困难,但可以肯定的是,这个“mod”会影响从普通应用商店使用或下载东西的能力。

    有了一些应用程序,你可能会更头疼,例如我的韩国MP3播放器运行在Strongarm上,但它也执行来自不同来源的Flash游戏。当没有Flash播放器时,Google宣布放弃对adobeflash的支持,它将无法使用。

    “最受欢迎的”显然是Ovi地图,也许这些东西可以很容易地转换成另一个具有离线导航功能的应用程序:-)几年前,人们曾写过“Gaia”,一个谷歌地球(Google Earth)的开源浏览器(后来被迫放弃),所以至少要实现这一点并不难。