我想知道为什么Android应用程序不能在Ubuntu Touch上本地运行。我的意思是,不仅仅是Linux吗?
我想知道为什么Android应用程序不能在Ubuntu Touch上本地运行。我的意思是,不仅仅是Linux吗?
Answers:
最简洁的答案是不。”
严格来说,Linux内核仅提供与其运行的硬件的直接接口。Android应用程序依赖一整堆其他特定于Android手机的API,程序,应用程序等。此外,Android并非在通用Linux内核上运行,而是在Google高度定制的,旨在运行其操作系统的特定内核上运行。
即使从技术上来说,即使能够重现Android应用程序在另一个系统上运行所需的整个堆栈,它也会肿且效率极低。
诺基亚n900运行的maemo witch是linux操作系统,但它可以通过为此目的开发的dalvik环境运行android的应用程序,但从未投放市场或出售。为什么?只有为n900开发达维维克的社会才知道。现在有另一个倡议叫apkenv。似乎没有太多的事情可以使n900运行某些android游戏,并且无论gpu或cpu power或maemo的桌面如何,应用程序都可以像在任何仿真中一样在湖中运行,但是某些应用程序可以完美运行,而某些情况下却不能运行。因此,关于ubuntu touch并不是技术问题(也许我是错的,但是一个官方的ubuntu的触摸电话也是用于Android的xiaomi,所以在这种情况下硬件也不成问题),但是Google会坚决反对的。
您的问题的答案是“ 否”。
Android与Ubuntu Touch完全不同,尽管android基于linux内核,但这并不意味着android的本机应用程序可以在linux上运行,反之亦然。
不同操作系统之间内核的相似性并不能使其应用程序在这些不同操作系统上执行。内核是系统中最低的软件层。内核上方是用户空间,该用户空间由系统软件和应用程序界面组成。
具有相同内核的OS可能具有完全不同的用户空间,本机应用程序在特定的用户空间中执行。
此外,Android应用的开发通常用java和Android应用在运行时环境(执行的Dalvik或ART),其采用字节码从JVM作为输入,而Linux应用程序被直接转换成机器代码在编译。
使用C ++为android开发的应用程序不能直接在linux环境中执行,而必须先为linux系统编译。