从对 AOSP 中 Android Framework 的内部分析来看,Android Framework 架构本身对实现基本的多窗口支持是有预见的,在相关数据结构和代码逻辑上已经有对应的基本支持了。这也使得扩展 Android 多窗口的难度降低,所改动的核心代码在几千行的范围,主要修改的代码量估计在 1~2 万行代码范围内(这里主要基于开源的 OPENTHOS 来分析),相对于 AOSP 的庞大代码量而言,这是一个很小的范围了。所以,从技术上看,当前的 Android-x86, Remix OS、Phoenix OS、OPNENTHOS 应该都属于一个 Android 的有限扩展实现,不算是一个全新的操作系统。且 Google 没有把 Android 扩展到桌面,并不是没有这个技术实力(其实 Android-6.x 已经有平铺式多窗口的探索性的支持,在 Android-7.x 已进一步有堆叠式多窗口的支持),而是由于 Google 同时还有面向未来的 Chrome OS 的存在,阻碍了 Android 桌面化的发展进程。 当前 Android 的移动应用生态由于其使用方式,使用习惯等原因,与桌面传统方式和应用特点有较大差异,并不能代替已有 Windows 的生态环境,但确实存在代替的可能性了。目前能够发起挑战的,应该还是只有 Google 公司。在当前桌面的硬件形态,交互方式,典型应用没有出现大的变化的情况下,如果认为 Remix OS、Phoenix OS、OPENTHOS 等已经具有挑战桌面霸主 Windows 操作系统,这就有些高估了自身。因为一个通用操作系统能够挑战(甚至战胜)另外一个通用操作系统的因素有很多,操作系统自身的技术因素只是其中的一个部分,而抢占先机,应用/开发生态,应用需求,厂商实力,用户认可度等综合因素的比重远大于技术因素。所以,Android-x86、Remix OS、Phoenix OS、OPNENTHOS 如果能用在一些还没有形成垄断的环境,没有成熟的应用生态的领域,也许是其生存的地方。 1.2 特点 Android-x86 的特点主要体现在让 Android 直接支持在笔记本电脑/PC 上,且剔除了大部分底层私有协议的软件模块,用开源软件进行了替换。Remix OS、Phoenix OS、OPNENTHOS 的特点主要体现在支持多窗口,适配面向键盘鼠标的人机交互模式,让典型 Android 应用更贴近传统桌面应用的展现形式。另外,OPENTHOS 比较独特的地方包括: 一、基于开放和开源模式的协作方式和自研自用的研发方式; 二、将 Android 应用和生态直接引入到以桌面 PC 为代表的大屏交互式设备中,且让已有 Linux 应用和服务可以在 Android 系统中无缝运行,并能与 Android 应用直接互通。这其实是典型的学校/工程师文化(即 homebrew,自产自用)带来的,在开发 OPENTHOS 过程中,大家觉得开发者应该首先使用自己开发的 OPENTHOS。但这发现了一个比较困难的问题,部分应用开发者习惯用 Android Studio 开发应用,但开发者的 Android Studio 运行在 Linux 环境中,无法运行在基于 Android 的 OPENTHOS 中。 于是陈渝老师和他的学生田博开始了让 Android Studio 运行在 Android 中的设计与实现。大致技术路线是:采用 Container 技术来同时支持 Android 应用和 Linux 应用的 Kernel 运行环境;并通过让 X Windows 系统运行在 Wayland 系统上,修改 Wayland 系统,让 Wayland 系统能够运行在 Android 的 GUI 窗口系统中。经过几个月的努力,不光是 Android Studio,包括 Firefox Browser、WPS Office、Video Player、OpenGL Game Engine 都能跑在 OPENTHOS(Android)上了。另外,西安邮电大学的陈莉君老师和她的学生何兴鹏、陶申荣基于 proot(用户空间实现的 chroot)开源软件,把 Linux 环境下的 CUPS 打印系统对接到 OPENTHOS 中,使得在 Android 环境下可以方便地使用 Linux 的本地/网络打印支持。一铭公司的陈刚工程师对 Android 多窗口的移植和适配做出了主要的贡献,北京大学的荆琦老师和她的学生冯杰等把多窗口支持一升级到了 Android-6.0,北京工业大学的王丹老师和她的学生罗浩等完成了 Android 多窗口的移植改进等。 2. 非技术分析 2.1 风险 (责任编辑:本港台直播) |