Android应用程序能否在本机中以Ubuntu touch运行?

我想知道为什么Android应用程序无法在Ubuntu Touch上本机运行。 我的意思是,这不仅仅是Linux吗?

最简洁的答案是不。”

严格地说,Linux内核提供的不仅仅是它运行的硬件的直接接口。 Android应用程序依赖于整个堆栈的其他特定于Android手机的API,程序,应用程序等。 此外,Android不能在通用Linux内核上运行,而是运行在Google高度自定义的内核上,其目的是运行其操作系统。

即使技术上可以重现Android应用程序在另一个系统上运行所需的整个堆栈,它也会变得臃肿且极其低效。

诺基亚n900运行maemo巫婆是一个Linux操作系统,但它可以通过dalvik environement运行android的应用程序,因为它开发但从未投放市场或回购。 为什么? 只有为n900开发dalvik的社会才知道。 现在有另一个倡议电话apkenv。 似乎没有太多东西可以添加到让n900运行一些Android游戏,无论是关于gpu或cpu电源还是maemo的桌面,应用程序在那里运行某些湖泊就像在任何仿真中但有些运行完全没有。 所以关于ubuntu触摸它不是技术问题(可能是我错了,但是一个官方的ubuntu的触控手机是用于Android的xiaomi也是如此,因此硬件在这种情况下也不是问题)但是并且法律会让谷歌赢得’很高兴ubuntu运行Android应用程序并使用谷歌播放作为第二个存储库(请注意,可以下载.apk作为.deb并安装后)。

你的问题的答案是大的。

Android与Ubuntu Touch完全不同,虽然android基于Linux内核,但这并不意味着android的本机应用程序可以在linux上运行,反之亦然。

不同操作系统之间内核的相似性并不能使它们的应用程序在这些不同的OS上可执行 内核是系统中最低的软件层。 上面的内核是用户空间 ,它由系统软件和应用程序接口组成

具有相同内核的OS可以具有完全不同的用户空间,并且本机应用程序在特定用户空间中执行。

此外,Android应用程序通常使用java和Android应用程序开发,在运行时环境( Dalvik或ART )中执行,它将来自JVM的 字节码作为输入,而linux应用程序在编译时直接转换为机器代码 。

使用C ++为Android开发的应用程序不能直接在linux环境中执行,而是必须首先为linux系统编译。