0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发教程

王程 来源:jf_75796907 作者:jf_75796907 2024-01-31 17:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

去年8 月份华为发布会上,华为发布了HarmonyOS NEXT预览版,宣布不再兼容安卓应用。大家期待的纯血鸿蒙终于要来临了,next 预览版本现在已经开放申请渠道了,Next 开发者预览版本目前只向三款手机开放, mate 60、mate60 pro 和 mate x5。

什么是鸿蒙,他是 android 套壳吗?

鸿蒙是华为自研的操作系统,发布之初发现它上面也能兼容安卓应用,大家纷纷猜想鸿蒙系统可能又是厂商自己经过改造 android 套个壳发布是自研系统,尤其是他刚开始出那个鸿蒙开发的时候,大家发现代码包括开发方式都跟安卓很像,xml 布局、获取控件等等。鸿蒙系统之所以能够兼容安卓是因为其采用了分布式技术架构,并且通过HarmonyOS Runtime虚拟机环境来支持运行基于Java语言开发的安卓应用程序。大家发现在鸿蒙 OS 上运行的应用比别的手机快呢,是因为鸿蒙 OS采用微内核+AOSP(安卓系统)双架构。对ART(Android Runtime)模式做了一个重要的优化升级。那就是方舟编译器替代了AOT(提前编译)编译器。方舟编译器是基于AOT编译器开发而来,但完全摆脱了java虚拟机的机制,将高级语言的字节码提前编译成二进制代码,让CPU直接运行二进制机器码,运行速度提升了60%。以往 android 那套 dex 机制反而落后。

微内核与宏内核

HarmonyOS NEXT完全舍弃 AOSP 直接采用微内核单架构。微内核和宏内核大家可以自己去深入了解一下。我就简单的描述一下,android 就是传统的宏内核,它将所有的核心功能(文件系统、内存管理、设备驱动等)都放在一个单一的执行空间内。这意味着所有的系统服务和功能都运行在内核的上下文中,彼此之间共享同一个地址空间,这样做的好处是所有的服务都在一起,交互更加直接,坏处就是一个服务崩溃会影响到其他所有 的服务。现在鸿蒙 4.0 其实完全跟 android 脱钩了,他只是有双架构支持一下跑一下 Android。鸿蒙采用的是微内核。尽可能的保持内核的功能最小化,只保留一些最基本的服务,其他的系统功能和服务都放在用户空间,这样做的好处就是他的稳定性和可靠性上来了。而且提供服务裁剪,在不同的设备上部署不同的服务,微内核虽然增加了一些性能开销。但是在这个性能过剩的时代里面。其实这个开销基本可以忽略

应用程序框架(Stage 模型)

wKgZomW6DmuAd-4zAAQoLjbXW7Y454.png

HAP:OpenHarmony应用编译、分发、加载的基本单位。与开发态的module一一对应。在应用内,moduleName是其唯一标识;

Bundle:通过appid标识的OpenHarmony应用,Bundle可以包含多个HAP,每个应用都有一个bundleName,但是bundleName并不能唯一标识一个应用,appid中包含bundleName以及其他的更多信息,能够唯一标识一个应用;

AbilityStage:对应HAP的运行期对象,在HAP首次加载到进程中时创建,运行期开发者可见;

Application:对应Bundle的运行期对象,运行期开发者不可见;

Context:提供运行期开发者可以调用的各种能力,Ability组件和各种ExtensionAbility都有各自不同的Context类,他们都继承自基类Context,基类提供包名、moduleName、路径等信息;

Ability:提供生命周期回调,持有AbilityContext,支持组件的跨端迁移和多端协同;

ExtensionAbility:基于场景的扩展能力统称,系统定义了多种场景的ExtensionAbility类,它们持有各自的ExtensionContext;WindowStage:本地窗口管理器;

Window:应用窗口,持有一个ArkUI引擎实例;

ArkUI Page:基于ArkUI开发的用户界面。

AbilityStage(开发者关注)

API9 之前是另外一种模型叫 FA 模型,这个我们先不讲。我们来看 Ability,它 是 应用程序框架中最基本的抽象单位,是能够完成独立功能的应用组件。一个应用可以是一个 Ablity 也可以是多个 Ability 组成。我们在开发的过程通常都是分功能模块来开发的,每一个功能模块就是一个 Ability。在鸿蒙开发里面每一个 module 都是可以单独打包成 HAP 文件独立运行,也可以多个 hap 打包成一个 app pack 来运行。举个例子,如果我们来开发抖音的短视频模块和电商模块。电商模块是比较独立的一个功能,那我们可以用两个 Ability 来完成一个抖音应用,也可以单独发布一个纯净版的短视频版 抖音,不包含电商的功能

很多人问过我 Android 的 Activity跟鸿蒙的 UIAbility 是不是类似的东西,其实他们两个的思想是类似的,都是用于用户界面展示和用户交互的组件,简单点理解可以认为ArkUI Pgae就相当于 Fragment,一个 Ability 就是一个 “Activity”,现在 Activity 放入一个 fragment就相当于Ability 在他的WindowStage创建的时候load 了一个ArkUI page

wKgaomW6DnSAe1j2AAWNst__3Lc301.png


Ability加载一个 page
Ability 的层级比 Activity在 android 应用里面的层级要高一个层级,我们都知道每一个 Activity 要在 manifest 里面去注册,而在我们的 Ability 里面,每一个 page 是要注册注册在我们自己模块下面的 main_pages.json下面的。Ability 的页面跳转是通过路由的方式来跳转的,通过导入 router 包,调用 router.pushUrl(“页面路由")来跳转。同时各个页面之前还可以进行数据通讯,这么一看,好像鸿蒙里面的 ArkUI Page 是不是也像一个 Activity。讲到这里,大家应该可能觉得Ablity 好像也承担了一部分 Android 里面 Application 的功能。所以归根到底它们俩不是同一个东西,正好印证了我们前面所说的 Ability 是完成独立功能的应用组件。而不仅仅只是一个页面,里面放了很多 View。有想了解更多的可以关注一下这篇文章,链接丢上来文章会被锁,大家可以搜索这个关键词

harmony(鸿蒙)Stage模型综述

Harmony OS与 OpenHarmony

引用一下 ChatGpt上面的解释

wKgaomW6DpeAMRD_AAg7r2juA34171.png

OpenHarmony是华为提取了Harmony OS 的基础功能进行开源的一个操作系统,是 Harmony OS 的基础版本。可以理解为它是 Android 的某一个版本,比如 Android 14.那么 Harmony OS 就是华为自己根据 Android 14 定制的一个服务于自己手机的一个操作系统,目前华为鸿蒙的专用开发工具 DevEco Studio自带 Harmony OS SDK。所以我们如果是基于华为设备进行开发的话,只需要关注Harmony OS 的开发即可。如果想使用 ArkUI-X构建跨平台应用可以下载官方OpenHarmony SDK进行开发

这一篇我们讲了一下鸿蒙系统为什么不是 Android 套壳还能跑 android 的原因,也介绍了一些初步的鸿蒙系统的一些知识,后续的文章我会正式开始更新 TS、ArkTS、ArkUI以及 ArkUI-X构建跨平台应用的相关文章,喜欢的朋友多多点赞。大家一起学习,一起进步

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AOSP
    +关注

    关注

    0

    文章

    16

    浏览量

    6545
  • 鸿蒙
    +关注

    关注

    60

    文章

    3060

    浏览量

    46268
  • HarmonyOS
    +关注

    关注

    80

    文章

    2157

    浏览量

    36408
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AT32开源鸿蒙开发环境搭建

    本帖最后由 jf_77210199 于 2026-1-19 09:49 编辑 AT32开源鸿蒙开发环境搭建 主要介绍两部分内容: 1、如何快速搭建起开源鸿蒙开发环境。 2、如
    发表于 01-16 13:56

    性能跃迁,鸿蒙开发新纪元!凌羽派RK3566鸿蒙开发板,开启全场景开发之旅

    【导语】还在为鸿蒙开发寻找强劲、稳定、高效的硬件平台?凌羽派RK3566鸿蒙开发板震撼登场!集高性能、全接口、强生态于一身,专为鸿蒙
    的头像 发表于 12-11 17:58 2826次阅读
    性能跃迁,<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>新纪元!凌羽派RK3566<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>板,开启全场景<b class='flag-5'>开发</b>之旅

    开源鸿蒙技术大会2025丨应用开发工程技术分论坛:诠释应用开发全链路技术,共探AI与大模型赋能新范式

    9月27日,开源鸿蒙技术大会2025应用开发工程技术分论坛在长沙圆满举办。本次分论坛由开源鸿蒙应用开发工程技术TSG主任任晗担任出品人,聚焦“应用
    的头像 发表于 11-10 18:20 1768次阅读
    开源<b class='flag-5'>鸿蒙</b>技术大会2025丨应用<b class='flag-5'>开发</b>工程技术分论坛:诠释应用<b class='flag-5'>开发</b>全链路技术,共探AI与大模型赋能新范式

    开源鸿蒙技术大会2025丨开源鸿蒙应用开发再提速,跨平台框架PMC(筹)正式启动孵化

    9月27日,开源鸿蒙技术大会2025在长沙国际会议中心盛大举办。大会现场,开源鸿蒙跨平台框架PMC(筹)正式启动孵化,标志着开源鸿蒙在应用开发基础设施建设层面迎来重大里程碑,也为整个行
    的头像 发表于 11-10 18:15 1671次阅读
    开源<b class='flag-5'>鸿蒙</b>技术大会2025丨开源<b class='flag-5'>鸿蒙</b>应用<b class='flag-5'>开发</b>再提速,跨平台框架PMC(筹)正式启动孵化

    QCon·上海站HarmonyOS开发者技术分论坛:共探鸿蒙开发新机遇

    当前,AI 技术重构开发逻辑、多设备协同成为技术主流,鸿蒙开发能力正迎来从“能用好用”到“实用便捷”的关键跃迁。10月24日,2025年QCon全球软件开发大会上海站HarmonyOS
    的头像 发表于 10-24 15:59 1054次阅读
    QCon·上海站HarmonyOS<b class='flag-5'>开发</b>者技术分论坛:共探<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>新机遇

    触觉智能RK3506开发板通过OpenHarmony 5.1 XTS认证,引领鸿蒙开发新标杆!

    触觉智能作为瑞芯微专业方案商与开源鸿蒙南向硬件厂家,旗下RK3506开发板及其核心板(模组)通过OpenHarmony5.1XTS认证!这一消息犹在行业内引起了广泛关注,标志着触觉智能在鸿蒙硬件生态
    的头像 发表于 08-14 23:49 2099次阅读
    触觉智能RK3506<b class='flag-5'>开发</b>板通过OpenHarmony 5.1 XTS认证,引领<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>新标杆!

    鸿蒙非侵入式弹窗新解法,企查查正式开源“QuickDialog”弹窗组件库

    、可复用的设计理念,有望成为鸿蒙应用开发中管理复杂弹窗场景的最佳实践方案之一。 在当前鸿蒙应用开发中,弹窗能力主要依赖 @CustomDialog 或 promptAction.ope
    的头像 发表于 07-31 10:40 919次阅读
    <b class='flag-5'>鸿蒙</b>非侵入式弹窗新解法,企查查正式开源“QuickDialog”弹窗组件库

    餐饮服务与软件创新的融合:解析海底捞APP的Flutter鸿蒙开发之路

    鸿蒙生态快速发展的背景下,作为餐饮行业数字化先锋的海底捞,其鸿蒙版应用集成在线排队、点餐等核心功能,覆盖全国超千家门店。自2024年4月海底捞与华为达成合作意愿, 6月底全面启动开发工作,9月实现
    的头像 发表于 07-30 15:35 659次阅读
    餐饮服务与软件创新的融合:解析海底捞APP的Flutter<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>之路

    鸿蒙中Stage模型与FA模型详解

    【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、前言 在HarmonyOS
    的头像 发表于 07-07 11:50 1170次阅读

    鸿蒙应用px,vp,fp概念详解

    【HarmonyOS 5】鸿蒙应用px,vp,fp概念详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、前言 目前的
    的头像 发表于 07-07 11:48 1659次阅读
    <b class='flag-5'>鸿蒙</b>应用px,vp,fp概念详解

    开鸿开发板深度体验:从开源鸿蒙开发到AI场景实践

    开鸿开发板KaihongBoard-3588S-SBCKaihongBoard-3576-SBC体验开源鸿蒙能力学习开源鸿蒙开发●●●搭载KaihongOS
    的头像 发表于 07-03 17:03 2094次阅读
    开鸿<b class='flag-5'>开发</b>板深度体验:从开源<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>到AI场景实践

    鸿蒙开发如何显示Markdown格式语法 -- markdown_hm介绍

    开发过程中,对于内容的展示通常有富文本和Markdown两种,后者更偏向于技术文档、说明书一类的内容展示。但是和富文本不同的是,没有一个原生组件可以用来解析展示Markdown语法的内容,所以
    发表于 06-30 18:47

    鸿蒙开发API9 到 API12,有哪些不同

    ​ ##HarmonyOS 应用开发## 虽然API9已经属于过时了,但是现在很多学校里教的还是基于API9的鸿蒙开发,当学生需要在毕业设计中使用API12进行开发时,还是需要先掌握一
    发表于 06-29 22:47

    从“开发者孤岛”到“生态星河”:开鸿Bot如何重构开源鸿蒙开发体验

    在中国操作系统发展史上,“开发者”似乎从来都是一个边缘角色。他们是开源社区中最活跃的群体,却也是最常被忽视的那群人。具体到开源鸿蒙社区,其生态构建初期,诸多开发者曾坦言,“鸿蒙很好,但
    的头像 发表于 06-10 17:12 1919次阅读
    从“<b class='flag-5'>开发</b>者孤岛”到“生态星河”:开鸿Bot如何重构开源<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>体验

    开源鸿蒙开发必备!OpenHarmony替换Full SDK全攻略

    本文介绍开源鸿蒙OpenHarmony替换FullSDK的方法,演示设备为触觉智能PurplePiOH鸿蒙开发板获取FullSD
    的头像 发表于 06-06 18:11 1116次阅读
    开源<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>必备!OpenHarmony替换Full SDK全攻略