初探 Harmony OS

前言

2021年6月2日,鸿蒙正式发布了自己的新系统鸿蒙OS 2.0,成为当下最热门的话题,身为一个编程爱好者特别是安卓爱好者,自然需要去窥视一下,看下与安卓有那些不同,有什么方面的变革


img.jpg

Harmony OS与OpenHarmony OS

Harmony OS是华为自主研发的分布式操作系统,华为与2020年6月捐赠了Harmony OS 1.0的代码给了开放原子开源基金会,2020年年底开放原子开源基金会携手各大厂商成立了OpenHarmony项目群,2021年6月Harmony OS 2.0由OpenHarmony 发布

Harmony OS的系统架构

Android系统架构

android-stack_2x.png

Android系统架构从应用层往下分为

  • 系统应用层
    提供核心的系统应用,比如电话,短信,日历等核心功能
  • Java API框架层
    这些 API 形成创建 Android 应用所需的构建块,它们可简化核心模块化系统组件和服务的重复使用,包括各种组件和服务,提供给应用开发调用
  • 原生库与Android运行时
    C 和 C++ 编写的原生库以及Android运行时环境
  • 硬件抽象层
    提供硬件调用的抽象接口,给上层提供访问硬件的能力
  • Linux内核层
    Android系统的核心,基于Linux内核,使用各种驱动进行硬件资源的调配

Harmony 系统架构

1.png

  • 应用层
    应用以及第三方应用
  • 框架层
    提供了C/C++/JS等多语言的用户程序框架和Ability框架,适用于JS语言的JS UI框架,以及各种软硬件服务对外开放的多语言框架API。根据系统的组件化裁剪程度,设备支持的API也会有所不同
  • 系统服务层
    OpenHarmony的核心能力集合,通过框架层对应用程序提供服务
  • 内核层
    根据不同的版本选择使用不同的内核

微内核与宏内核

内核是软件操作系统中最核心最底层的功能,它决定了软件用于什么样的功能,是直接运行在硬件上的软件,通过驱动操作硬件,比如应用程序要访问文件系统,则会调用操作系统框架层的文件服务,最终会调用内核去进行资源调配,宏内核的设计中用户服务与内核服务运行在相同的的空间中实现,这样会使运行效率提高,微内核用户服务和内核服务运行在不同空间,需要通过消息进行交互,这种隔离提高了系统的安全性,但是会使运行效率降低

微内核 宏内核
概念 用户服务和内核服务运行在不同的空间中 用户服务和内核服务运行在相同的空间中
大小
执行速度
可扩展性
安全性 单个服务奔溃不影响全局 影响全局

Harmony开发环境配置

  • 进行系统官网 https://hmxt.org/ 下载开发工具Dev Eco Studio
  • 安装过程中指定SDK目录,下一步会自动下载SDK
  • 整个过程和Android Stuido类似

应用开发文档: https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/Readme-CN.md

Harmony APP项目与Android APP项目对比

使用Java创建的鸿蒙应用项目结构

使用Java创建的Android应用项目结构

项目结构相似,都是基于gradle的项目结构,文件结构也很类似,Android开发者应该很容易上手,本次只是粗略的运行了下,后续会持续关注

运行效果

运行过程中遇到的问题

Studio版本 2.1.0.501
SDK版本 下载了文档提示的 配置OpenHarmony SDK的 OpenHarmony-SDK-2.0-Canary.7z
在运行Device Manager时提示Error, hdc file is not exists, please check the sdk toolchains installed.
解决办法 修改Studio配置的SDK路径file-settings-System settings->Harmony SDK,指向一个空目录,让Stuido自动下载SDK

欢迎关注Mike的

Android 知识整理

你可能感兴趣的:(初探 Harmony OS)