初探 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系统架构从应用层往下分为
- 系统应用层
提供核心的系统应用,比如电话,短信,日历等核心功能 - Java API框架层
这些 API 形成创建 Android 应用所需的构建块,它们可简化核心模块化系统组件和服务的重复使用,包括各种组件和服务,提供给应用开发调用 - 原生库与Android运行时
C 和 C++ 编写的原生库以及Android运行时环境 - 硬件抽象层
提供硬件调用的抽象接口,给上层提供访问硬件的能力 - Linux内核层
Android系统的核心,基于Linux内核,使用各种驱动进行硬件资源的调配
Harmony 系统架构
- 应用层
应用以及第三方应用 - 框架层
提供了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 知识整理