鸿蒙不再兼容Android,开始独立发展,在端系统上形成了三足鼎立的局面(iOS, Android, 鸿蒙)。目前国内互联网大厂们已经开始与华为进行产业创新,技术应用、商业发展等方面全面合作。目前已有的APP可能都需要独立开发针对鸿蒙的版本了。
鸿蒙实际逐步从安卓上走出了自己路,从开始独立尝试,到兼容运行apk时机成熟,到现在开始不兼容,每一步看来都走得非常扎实。
从架构上对比下二者的差异,也许会带来不一样的收获。首先做了这么多年的端开发我们可以回顾一下Android的架构:
Android 软件包含一个开源 Linux 内核,其中包含大量通过应用程序框架服务公开的 C/C++ 库。 Android架构由五个层次组成,分别是Linux内核、库、应用程序框架、Android运行时和系统应用程序。在所有组件中,Linux 内核为智能手机提供操作系统功能的主要功能,而 Dalvik 虚拟机 (DVM) 则提供运行 Android 应用程序的平台。
Android架构的主要组成部分:
Linux内核:它是Android架构的核心,存在于Android架构的根部。 Linux内核负责设备驱动、电源管理、内存管理、设备管理和资源访问。
Native Libraries:在Linux内核之上,有WebKit、OpenGL、FreeType、SQLite、Media、C运行时库(libc)等Native库。WebKit库负责浏览器支持,SQLite负责数据库,FreeType负责字体支持,用于播放和录制音频和视频格式的媒体。
Android Runtime:每个应用都在其自己的进程中运行,并且有其自己的 Android Runtime (ART) 实例。ART 编写为通过执行 DEX 文件在低内存设备上运行多个虚拟机,DEX 文件是一种专为 Android 设计的字节码格式,经过优化,使用的内存很少。ART主要包括:AOT和JIT编译,GC垃圾回收等很多优化。
Android 框架:在本机库和 Android 运行时之上,有 Android 框架。 Android 框架包括 Android API,例如 UI(用户界面)、电话、资源、位置、内容提供程序(数据)和包管理器。它为android应用程序开发提供了大量的类和接口。
应用程序:在android框架之上,有应用程序。所有应用程序(例如主页、联系人、设置、游戏、浏览器)都使用 Android 框架,该框架使用 Android 运行时和库。 Android 运行时和本机库使用 Linux 内核。
以下是鸿蒙的架构图:
从架构可知,仍已linux kernel为内核,各种硬件驱动都包含在内核。对上层进行抽象。在此之上形成系统服务层,以分布式设计为基础,又对框架层提供不同的基础能力集合,例如各种框架,服务其系统,API等等。
鸿蒙的理念:
其实很多设备都可以跑android系统,只不过这种体验与数据迁移同步上需要应用开发者自行解决,大厂可能有这个实力,而中小开发者光是对android的碎片化就已经头疼不已。
从大的趋势上讲,传统的移动互联网增长已见顶,万物互联时代正在开启,设备从几十亿手机扩展到百亿级IoT设备,这个是一个增长的蓝海。不同设备类型意味着不同的传感器能力、硬件能力、屏幕尺寸、操作系统和开发语言,还意味着差异化的交互方式。设备需要提供AI能力,例如语言交互,传感器智能感知,图像识别等。
Android也在不断更新,提供越来越丰富的能力。华为鸿蒙就是直接面向这种趋势的架构。究竟谁更有优势,谁才能统一江湖。我想我们不用去纠结这个问题,这些系统都很优秀。我们作为开发者,需要关注的谁能让我更方便的开发,低成本的接入,保姆级的自适配,快速迭代业务,更方便触达用户,更多的增长空间,这才是王道。相信都会有自己的判断。