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

    浏览量

    6491
  • 鸿蒙
    +关注

    关注

    60

    文章

    2858

    浏览量

    45351
  • HarmonyOS
    +关注

    关注

    80

    文章

    2146

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

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

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

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

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

    在中国操作系统发展史上,“开发者”似乎从来都是一个边缘角色。他们是开源社区中最活跃的群体,却也是最常被忽视的那群人。具体到开源鸿蒙社区,其生态构建初期,诸多开发者曾坦言,“鸿蒙很好,但
    的头像 发表于 06-10 17:12 1454次阅读
    从“<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 643次阅读
    开源<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>必备!OpenHarmony替换Full SDK全攻略

    开源鸿蒙开发新体验,开鸿Bot系列今日开启预售!

    今日,深开鸿正式宣布,开鸿Bot系列产品——开鸿BotBook与开鸿BotMini全面开启预售。该系列面向开源鸿蒙开发者量身打造,搭载基于OpenHarmony深度定制的KaihongOS桌面
    发表于 05-16 14:13

    &quot;开机即战&quot;时代来临!开鸿Bot系列创新开源鸿蒙开发新范式

    近日, 深圳开鸿数字产业发展有限公司(以下简称“深开鸿”)正式宣布将推出全国首款面向开源鸿蒙开发者的电脑系列——开鸿Bot系列,并率先开启BotBook与BotMini两款形态的预售。这一系列产品将
    的头像 发表于 05-16 12:59 558次阅读
    &quot;开机即战&quot;时代来临!开鸿Bot系列创新开源<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>新范式

    DevEco Studio AI辅助开发工具两大升级功能 鸿蒙应用开发效率再提升

    随着搭载HarmonyOS 5的Pura X发布,鸿蒙生态进入快车道,各应用正在加速适配开发,越来越多开发者加入到鸿蒙应用开发浪潮中。为提升
    发表于 04-18 14:43

    【「极速探索HarmonyOS NEXT 」阅读体验】 一本书开启了鸿蒙开发的整个生态资源

    接前面我的阅读体验关于文章的介绍,这几天拜读了《极速探索HarmonyOS NEXT ** **纯血鸿蒙应用开发实践》这本书,书中的内容很精彩,但是书的篇幅毕竟有限,于是很想在阅读书的同时,了解书中
    发表于 03-06 11:44

    【「极速探索HarmonyOS NEXT 」阅读体验】 初印象:一本纯血鸿蒙应用开发入门的好书

    非常有幸的于近日收到了电子发烧友寄来的《 极速探索HarmonyOS NEXT **** 纯血鸿蒙应用开发实践》这本由清华大学出版社出版的一本纯血鸿蒙应用开发学习的一本好书。 书籍一共
    发表于 03-04 12:41

    DevEco Studio构建分析工具Build Analyzer 为原生鸿蒙应用开发提速

    在原生鸿蒙应用开发过程中,随着项目复杂度的增加,开发者花费在构建上的时间越来越长,导致开发效率降低。为了帮助开发者解决构建效率的问题,华为在
    发表于 02-17 18:06

    名单公布!【书籍评测活动NO.56】极速探索HarmonyOS NEXT:纯血鸿蒙应用开发实践

    开发的核心技术,以及鸿蒙应用在实际开发中的应用方法。 本书共分为四篇,共计16章,分别为鸿蒙开发基础篇、
    发表于 01-20 16:53

    《HarmonyOS第一课》焕新升级,赋能开发者快速掌握鸿蒙应用开发

    《HarmonyOS第一课》焕新升级,赋能开发者快速掌握鸿蒙应用开发 随着HarmonyOS NEXT发布,鸿蒙生态日益壮大,广大开发者对于
    发表于 01-02 14:24