Android培训

亿元级外企Android培训企业

  • 全国服务监督电话4001118989
Android培训 > Android资讯 > 深度解析桌面化Android操作系统的发展与未来
  • 深度解析桌面化Android操作系统的发展与未来

    发布:Android培训  来源:Android资讯  时间: 2017年04月13日

  • 深度解析桌面化Android操作系统的发展与未来...

  • 一、背景
    操作系统是用来提供一个支持各种应用程序运行的基础软件环境。Linux当前的在各个领域的发展情况如何?到2016年底为止,从不同的数据统计来源,我们看到了Linux创造在巨型机(占99.6%)、服务器(占80%以上)、移动终端(以Android为主,占87.5%)领域的统治地位,貌似Linux已经无处不在了。但Linux在其他两个大的领域还没有一统天下。在IoT/EmbeddedSystem等弱设备/硬实时工控领域,由于特定硬件能力和专用应用的差异性很大,Linux的通用性和多功能在某种程度上成了负担或多余的部分。

    当然,目前还没有一个操作系统在这个领域处于统治地位,各种操作系统在这个领域都有一个适合自己的范围,但随着硬件能力的增强和应用对多功能的需求,Linux的优势会逐渐凸显,目前在机器人,车载电子等领域已经有这样的趋势了。在PC/桌面端,我们虽然看到了MintUbuntu、Fedora、SUSE、Deepin(国内发起)等优秀的桌面Linux,这些桌面操作系统主要基于XWindows、KDE/QT、GNOME/GDK等技术创建窗口环境,但桌面Linux的占有率却一直处于可有可无的地位,其占比仅为1.63%,在这个领域的统治者是MSWindow(占88.7%),在MSWindows面前,桌面Linux就像面对着一堵墙,无法逾越。为什么上述提到的Linux系统都是基于同一个Linuxkernel但最终的结果却差别显著?这里原因只是在应用层面的技术选择的不同吗?

    二、历史
    移动端的爆发,离不开Internet的快速发展。虽然Apple在桌面端的软件和硬件始终不是微软+Intel的对手,但2007年iPhone带来的触控操作的新型人机交互体验(注意,并不在操作系统内核上有新的突破,而主要是便捷的多点触摸式人机交互软硬件设计的突破)在移动端打开了一个新的窗口,紧接着Google的Android手机采用开放的生态模式(开放源码,建立开放手机联盟OHA,即OpenHandsetAlliance,与软件厂商、硬件厂商、运营商、芯片厂商深入合作,寻求共赢)和类似iPhone的交互体验(注意,如果不算Binder机制,在操作系统内核上也没有新的突破)逐渐超过iPhone/iOS,并在移动端形成了垄断地位。到2017年4月,根据分析公司Statcounter的研究发现,Android)首次超过Windows成为第一大操作系统。

    在桌面领域,微软在1985年推出的Windows操作系统,加上与Intel的x86CPU的完美匹配,形成Wintel联盟,几十年来,通过KillerApplication——MSOFFICE形成了桌面上的垄断地位,并在推出WindowsNT后,进一步把触角延伸到服务器领域。受制于Windows操作系统已经建立起来的强大桌面生态环境,桌面Linux和其他桌面操作系统加在一起,在百分比为个位数的市场占有率上徘徊不前。虽然iOS和Android在大屏上有比较好的支持,但类似手机操作和使用的平板电脑并没有带来新的突破,目前还没有对桌面端形成威胁。在桌面Linux的探索中,除了上述传统的桌面系统研发外总有一些火花在不经意间闪烁。把移动端的霸主Android放到桌面端来挑战桌面端的霸主Windows,是否是一个可以探索的思路?下面将介绍一下这方面的一些情况。

    对于一般用户而言,在PC上玩Android应用,是一个很有意思的想法,包括现在在PC上还出现了很多定制Android硬件模拟器(如BlueStacks等),方便用户在PC上玩各种Android游戏和移动应用。于是有Hacker开始考虑,为什么不能直接在PC上运行Android呢?在2009年,YiSun开始了把Android移植到x86-PC上的尝试,并基于Android1.6推出了Android-x861.6,并在后来持续跟随Android的发展步伐,形成了Android-x86社区,目前正在开发基于Android7.x的Android-x867.x,当前主要负责人是黄志伟(同方公司资深工程师),对Android-x86系统的定位是Android正对x86-PC的BSP部分,希望有更多的爱好者能够在Android-x86的基础上扩展Android框架,让Android能桌面PC上提供方便的使用环境。

    2013年,Tieto公司提出了在手机上实现类是PC多窗口显示的想法,并展示了基于Android4.2/4.4的多窗口支持技术方案,这个扩展原型系统可运行在Nexus7手机上和Android硬件模拟器上,且Tieto公司进一步把相关代码开源,并放到了https://github.com/tieto/multiwindow_for_android。至此,我们知道,通过对AndroidFramework进行扩展,是可以象其他桌面操作系统一样,在大屏幕上,支持以多窗口方式运行多个应用。与Linux/Window桌面操作系统不同的是,在其上运行的是数量远大于前者的移动端Android应用,与前者的应用生态完全不同。

    来自Google的工程师周哲、高恒、陆韵晟在实现财务自由后,并没有停止对技术的探求。他们一直在思考一个问题:很多事情智能手机就能搞定,但你为什么还需要一台笔记本?他们认为在当前的年代,移动应用的开发远远超越了PC,所以你不需要带各种各样的设备,而是有一个设备把所有问题给解决了。2014年1月,他们创建了技德(Jide)科技公司,并在2015年初推出了RemixOS——它是基于AOSP开发的深度定制操作系统,主要以PC/笔记本电脑(基于ARM/x86)、二合一平板电脑、一体机、智能大屏显示器为载体,实现了一个类似桌面操作系统的多窗口GUI界面,能够在一个大屏幕中呈现和方便地运行多个不同的Android应用。并且技德公司还推出了运行RemixOS的笔记本电脑、平板电脑、迷你(mini)PC等多种硬件形态。

    2014年12月,来自国内浏览器——世界之窗的创始团队以创始人谢震宇为首,在经历了360公司收购后,也不安于现状,跳出360公司,成立了超卓科技公司,他们也看到了Android大屏化的潜在商业前景,从开发应用出发,首先推出了基于Android的超卓文件管理器、星尘网络浏览器、超卓文本编辑器等,并在2015年1月推出了PhoenixOSBeta版,并与国内多家硬件厂商合作(联想、TCL、五元素、昂达等),在相关硬件上安装PhoenixOS。PhoenixOS与RemixOS类似,也是一个基于Android的桌面PC系统,两者在功能上的差异不大,主要体现在风格的差异性上,其最新版本已经建立在Andriod7.1基础上。超卓科技希望在轻办公属性的PhoenixOS系统展现其新的亮点。

    2014年到2015年期间,同方公司和一铭软件公司各自通过前期调研,都认为在国内桌面操作系统方面,需要有新的形态出现,看好Android应用的丰富类型与庞大数量而形成的强大生态,认为把Android进行桌面化改造是实现桌面操作系统的可行方案。在2015年下半年,同方公司和一铭软件公司先后找到清华大学计算机系的陈渝副教授,希望开展技术合作,探索Android桌面化的技术可行性。经过技术可行性分析,对Android-x86,Tieto等开源软件的理解,三方初步认为技术上是可以尝试的。于是在2015年底成立了清华大学-同方股份有限公司计算机系统结构联合研究中心,三方一起开始了OPENTHOS系统的研发,后续Android-x86社区、北京大学、北京工业大学、西安邮电大学、南开大学也参加了相关重要研发工作,还得到了技德、超卓、Intel工程师的技术帮助。在OPENTHOS系统的开发过程中,首先基于Android-x865.1和Tietomultiwin扩展,实现了类似RemixOS和PhoenixOS的多窗口桌面Android系统原型,在2017年3月发布了OPENTHOS-1.0-RC1版本,所有源码开放在https://github.com/openthos/openthos。

    为何Google不直接让Android跑在PC上呢?虽然没有得到Google的官方确认,但大家知道Google在桌面端(以笔记本电脑为主要硬件载体)有一个基于WebBrowser的OS–ChromeOS,与AndroidOS具有不同的定位,界面是Browser,运行的软件主体在云上,这符合Google与云为核心的战略发展方向,但ChromeOS没有Android发展得顺利,没有形成广泛的基于HTML5的应用生态。目前二者谁也吃不了谁,不过最近ChromeOS已经添加了Android支持层,可以让AndroidApp直接运行在ChromeOS的界面上。且AndroidOS在6.x后,也逐步添加了多窗口的支持,只是相对与上述三个多窗口扩展的Android系统而言,还略显简单了一些。但这并不表示Google没有实力让Android直接在PC上运行,且让Android具有更加完善的多窗口能力。

    三、分析

    1.技术分析

    1.1定位

    上述介绍的Android-x86、RemixOS、PhoenixOS、OPENTHOS软件系统都是基于Android的AOSP(包括了面向Android的LinuxKernel)来完成的。Android-x86侧重在LinuxKernel的驱动(如GPUdriver等),HAL层面的硬件适配软件(如MESAOpenGL图形库,键盘/鼠标相关的库),系统启动支持(UEFI/LegacyBIOS支持),基本不涉及AOSP中与硬件无关的AndroidFramework层、dalvik/ARTVM层等。由于AOSP4.4以后有对x86/x86-64的很好的官方支持,所以,把AOSP移植到x86-PC平台的难度也比基于AOSP-4.4以前版本要容易一些。而RemixOS、PhoenixOS、OPNENTHOS主要的改进集中在AndroidFramework层,通过扩展,实现对键盘/鼠标的有效桌面化支持,多窗口支持等。

    从对AOSP中AndroidFramework的内部分析来看,AndroidFramework架构本身对实现基本的多窗口支持是有预见的,在相关数据结构和代码逻辑上已经有对应的基本支持了。这也使得扩展Android多窗口的难度降低,所改动的核心代码在几千行的范围,主要修改的代码量估计在1~2万行代码范围内(这里主要基于开源的OPENTHOS来分析),相对于AOSP的庞大代码量而言,这是一个很小的范围了。所以,从技术上看,当前的Android-x86,RemixOS、PhoenixOS、OPNENTHOS应该都属于一个Android的有限扩展实现,不算是一个全新的操作系统。且Google没有把Android扩展到桌面,并不是没有这个技术实力(其实Android-6.x已经有平铺式多窗口的探索性的支持,在Android-7.x已进一步有堆叠式多窗口的支持),而是由于Google同时还有面向未来的ChromeOS的存在,阻碍了Android桌面化的发展进程。

    当前Android的移动应用生态由于其使用方式,使用习惯等原因,与桌面传统方式和应用特点有较大差异,并不能代替已有Windows的生态环境,但确实存在代替的可能性了。目前能够发起挑战的,应该还是只有Google公司。在当前桌面的硬件形态,交互方式,典型应用没有出现大的变化的情况下,如果认为RemixOS、PhoenixOS、OPENTHOS等已经具有挑战桌面霸主Windows操作系统,这就有些高估了自身。因为一个通用操作系统能够挑战(甚至战胜)另外一个通用操作系统的因素有很多,操作系统自身的技术因素只是其中的一个部分,而抢占先机,应用/开发生态,应用需求,厂商实力,用户认可度等综合因素的比重远大于技术因素。所以,Android-x86、RemixOS、PhoenixOS、OPNENTHOS如果能用在一些还没有形成垄断的环境,没有成熟的应用生态的领域,也许是其生存的地方。

    1.2特点

    Android-x86的特点主要体现在让Android直接支持在笔记本电脑/PC上,且剔除了大部分底层私有协议的软件模块,用开源软件进行了替换。RemixOS、PhoenixOS、OPNENTHOS的特点主要体现在支持多窗口,适配面向键盘鼠标的人机交互模式,让典型Android应用更贴近传统桌面应用的展现形式。另外,OPENTHOS比较独特的地方包括:

    一、基于开放和开源模式的协作方式和自研自用的研发方式;
    二、将Android应用和生态直接引入到以桌面PC为代表的大屏交互式设备中,且让已有Linux应用和服务可以在Android系统中无缝运行,并能与Android应用直接互通。这其实是典型的学校/工程师文化(即homebrew,自产自用)带来的,在开发OPENTHOS过程中,大家觉得开发者应该首先使用自己开发的OPENTHOS。但这发现了一个比较困难的问题,部分应用开发者习惯用AndroidStudio开发应用,但开发者的AndroidStudio运行在Linux环境中,无法运行在基于Android的OPENTHOS中。
    于是陈渝老师和他的学生田博开始了让AndroidStudio运行在Android中的设计与实现。大致技术路线是:采用Container技术来同时支持Android应用和Linux应用的Kernel运行环境;并通过让XWindows系统运行在Wayland系统上,修改Wayland系统,让Wayland系统能够运行在Android的GUI窗口系统中。经过几个月的努力,不光是AndroidStudio,包括FirefoxBrowser、WPSOffice、VideoPlayer、OpenGLGameEngine都能跑在OPENTHOS(Android)上了。另外,西安邮电大学的陈莉君老师和她的学生何兴鹏、陶申荣基于proot(用户空间实现的chroot)开源软件,把Linux环境下的CUPS打印系统对接到OPENTHOS中,使得在Android环境下可以方便地使用Linux的本地/网络打印支持。一铭公司的陈刚工程师对Android多窗口的移植和适配做出了主要的贡献,北京大学的荆琦老师和她的学生冯杰等把多窗口支持一升级到了Android-6.0,北京工业大学的王丹老师和她的学生罗浩等完成了Android多窗口的移植改进等。

    2.非技术分析

    2.1风险

    一方面,如果在桌面领域没有新的应用需求,新的交互方式,新的硬件形态,仅仅把AndroidApp运行在桌面上,即使加上键盘鼠标支持和多窗口支持,并不能改变当前的桌面生态环境,无法撼动微软的霸主地位。此外,有人认为,我们可以先跟着Google,搭顺风车,做一定的改进或定制,然后自己羽翼丰满后,再甩开Google,自立门户。这种思路在国内外已经有过失败的尝试,比如中移动等支持下的播思通信,国外的CyanogenMod等。他们低估了脱离Gooogle苦心经营的应用生态和跟进Android开发快速迭代等的难度。还有,Android来源于Google,基于Android开发的系统如果不想按照Google的要求和限制做,则会承担法律风险,且如果没有给Google看到潜在的好处,则很难得到Google的支持。

    这里引用魏永明“‘自主’操作系统——为什么及如何”一文的内容:Google在开发Android,尤其是Dalvik虚拟机以及Java类库的过程中,肯定积累了大量专利,而这些专利是凌驾于软件的著作权和许可证之上的。也就是说,如果你基于现有的Android派生了一个分支,要想将运行有这个Android派生版本的软件放到自己的手机里边销售,Google马上可以拿出专利大棒来限制你。当前,Google尚未拿出专利大棒来限制各种派生于Android的系统。拿阿里yunOS和谷歌最近的争论当中来看,Google也只是说yunOS导致Android不兼容。但一旦有厂商真的使用了,Google马上就会拿出专利大棒,这将毫无疑问。

    2.2自主

    上述面向桌面的Andorid操作系统目前都没有强调自主或自主可控,但不排除以后有其他人或单位会提出基于Android改造的操作系统是自主或自主可控的。这里引用魏永明“‘自主’操作系统——为什么及如何”一文的内容:

    只是在已有的开源操作系统之上加了一层皮。比如各种基于Android的第三方ROM,比如MIUI、Flemy等。这种操作系统仅仅在UI/UE上做了一些工作,就如同一个人换了一身衣服那样,实质上这个人不会因为换了一身衣服而从张三改叫成李四。
    修改了已有开源操作系统的内部代码,做了一些优化或者去掉了别人的一些东西,添加了一些自己的内容。比如yunOS就属于这种,或者哪些号称深度定制的Android系统也属此类。这种做法如同整容,的确动了些刀子,甚至改变了性别,但人还是那人,改了名字或性别也还是那人。
    发展方向
    做一个软件系统,如果是跟在已经取得很大领先优势的已有其他软件系统后面,采用模仿或非根本性创新,是无法形成健康的应用生态,是无法超越已有其他软件系统的。站在通用桌面领域,比如上述系统(包括现在的桌面Linux)想直接与MSWindows/GoogleAndroid争夺已有市场,几乎没有成功的可能。Windows比其他桌面系统早了十几年的技术积累,早已形成了相对封闭的Windows桌面应用生态,这一点Andorid也类似。所以,上述系统也许在一些有没被Windows/Android覆盖的应用需求且还没形成垄断的专用领域,比如车载电子、虚拟云桌面、教育培训、数字医疗、工业控制、移动终端办公、机器人、自然交互、人工智能、特定硬件等,找到匹配上述系统的关键应用,找到这些领域的KillerApplication,形成上述系统存在的价值(刚需),并形成新的生态环境。

    另外,ChromeOS/FirefoxOS/H5OS/Elastos等为网络而生的OS代表了一个未来面向与人交互的桌面/终端/IoT操作系统的方向,可以实现网络应用和本地应用无缝衔接,可像“水”一样实现数据和控制的按需流动。但这只是未来的技术方向,还有很多技术挑战并没有解决,比如Javascript、HTML5在语言层面缺乏高效性,安全性和可扩展性,WebAssembly语言已经在尝试解决JavaScript的问题;Browser的界面与内核并没有建立好全面支持本地桌面应用的完善基础架构,且本地应用和网络应用无法有效互联互通互操作,操作系统内核的进程机制对网络应用的组件化和保证安全的随意迁移形成了阻碍,LinuxKernel越来越复杂和庞大使得其逐步变得僵化,LinuxKernel和底层系统缺少对上层框架(Android框架、传统Linux应用框架、Browser界面框架等)的统一和灵活可定制的支持。这些需要感兴趣的人去深入探索和解决。但前面也提到了,操作系统的新理念/先进技术因素只是一个OS能够成功的一小部分,还有很多因素需要综合考虑。路很长,需要一步一步脚踏实地的走,没有捷径。
  • 上一篇:Android Studio设置方法,教你怎么设置Android Studio

    下一篇:选择Android培训机构时要关注的问题,什么样的培训机构才是好机构

网站导航
2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56