我已经读到,新发布的Ubuntu Phone OS受到Android的极大启发,而其应用程序并未使用Java和Dalvik VM。
但是,也不清楚它是AOSP的分支还是自定义ROM(我对此表示怀疑),或者它在概念上是受Android启发还是部分源自Android(例如内核等)。
将Android应用程序可能能够在Ubuntu手机操作系统的工作?
我已经读到,新发布的Ubuntu Phone OS受到Android的极大启发,而其应用程序并未使用Java和Dalvik VM。
但是,也不清楚它是AOSP的分支还是自定义ROM(我对此表示怀疑),或者它在概念上是受Android启发还是部分源自Android(例如内核等)。
将Android应用程序可能能够在Ubuntu手机操作系统的工作?
Answers:
Ubuntu Phone(基于与完整Ubuntu 相同的Linux发行版)和Android都在Linux内核上运行。但是,它们在内核级别以上有所不同,而Ubuntu运行带有大多数标准Linux库的完整GNU / Linux OS,以及基于Qt的GUI,Android运行自定义的Android和Dalvik平台。
看起来它们都基于同一Linux内核的最大好处之一是驱动程序支持。这意味着,对于任何具有开放源代码驱动程序的Android手机(无论是从制造商的官方渠道获得官方授权,还是由第三方ROM开发人员编写的驱动程序),使Ubuntu Phone在其上运行都应该容易得多。(特别是目前,Ubuntu Phone网站上的每张照片看起来都像是运行Ubuntu Phone的Galaxy Nexus)。
Ubuntu已经适应使用与移动设备相关的ARM和Intel x86架构在芯片组上运行,其核心系统基于典型的Android Board Support Package(BSP)。因此,芯片组供应商和硬件制造商无需在智能手机上投资或维护适用于Ubuntu的新硬件支持包。简而言之,如果您已经制造出运行Android的手机,那么采用Ubuntu所需的工作将变得微不足道。
(摘自http://www.ubuntu.com/devices/phone/operators-and-oems-我的重点)
这意味着,至少从一开始,电话制造商和Ubuntu爱好者将看到最大的好处-让Ubuntu Phone在专为Android设计的手机上工作应该相当容易(并且相当容易出售相同的产品)硬件以及可选的操作系统)。
由于绝大多数Android应用都是使用Java为Dalvik VM编写的,因此不能保证两者都不能在Ubuntu Phone上使用(尽管发烧友可能会在以后移植它们),大多数这些应用都需要大量的移植工作才能运行。在Google与Oracle发生法律纠纷之后,Ubuntu自己不太可能急于将Java和Dalvik移植到Ubuntu Phone 。
另外,Ubuntu Phone拥有自己的QML工具包和Ubuntu SDK,两者都不与Android SDK或NDK API相同(或兼容),因此再次需要大量的移植工作,这将阻止Android应用程序立即在Ubuntu上运行。
另一方面,如果您的应用程序主要是一个带有Android包装器的网络应用程序,那么移植应该会更加容易,因为它们都大力支持HTML5和Javascript。
Web应用程序是Ubuntu上的一等公民,其API提供了到界面的深度集成。为其他平台编写的HTML5应用程序可以轻松地适应Ubuntu,我们的目标是标准的跨平台Web应用程序开发框架(例如PhoneGap),以使Ubuntu对于使用它们的应用程序“适用”。
(来自http://www.ubuntu.com/devices/phone/app-ecosystem)
尽管存在所有这些差异,但移动领域的历史向我们表明,如果移动平台取得巨大发展,那么无论在平台之间移植应用程序所需的时间和精力有多大,所有大型应用程序和游戏都会使最终他们将其应用到新平台中,公司将提供工具包和软件,这些工具包和软件使编写应用程序变得容易,然后可以将其编译为可以在任何主要平台上运行(允许)。
看来,Ubuntu的大多数应用程序可移植性都集中在使将Web应用程序轻松转换为Ubuntu Phone应用程序,以及使其易于在任何Ubuntu设备(台式机,笔记本电脑或电话)上运行完全相同的应用程序上:
随着Ubuntu SDK的到来,可以编写可在所有Ubuntu外形尺寸上使用的应用程序:它在台式机和电话上都使用相同的Ubuntu OS,因此单个本机应用程序可以在两者上运行。这意味着您在添加对新外形的支持时会重复使用大部分应用程序。
(来自http://www.ubuntu.com/devices/phone/app-ecosystem)
tl; dr
Ubuntu Phone和Android均基于Linux内核,但两者之间的区别在于-它们可以共享驱动程序(这对制造商和业余爱好者而言非常有用),但不能共享应用程序。Ubuntu Phone与桌面Ubuntu共享应用程序,而不与Android共享应用程序。它们都具有良好的Web浏览器,并且可以查看相同的网页。