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

    浏览量

    6142
  • 鸿蒙
    +关注

    关注

    55

    文章

    1629

    浏览量

    42120
  • HarmonyOS
    +关注

    关注

    79

    文章

    1839

    浏览量

    29261
收藏 人收藏

    评论

    相关推荐

    鸿蒙开发实例【使用高德地图鸿蒙SDK】(一)

    使用高德地图鸿蒙SDK的快速入门指南。
    的头像 发表于 03-22 16:59 231次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>实例【使用高德地图<b class='flag-5'>鸿蒙</b>SDK】(一)

    鸿蒙开发实战:【Hdf Framework】

    该仓主要存放OpenHarmony驱动子系统核心源码信息(包括驱动框架、配置管理、配置解析、驱动通用框架模型、硬件通用平台能力接口等),旨在为开发者提供更精准、更高效的开发环境,力求做到一次开发,多系统部署。
    的头像 发表于 03-21 20:29 111次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>实战:【Hdf Framework】

    零基础小白适不适合学鸿蒙开发

    在互联网不断发展以及万物互联时代的开启过程中,鸿蒙操作系统的出现无疑是技术领域的一次重大突破。鸿蒙操作系统是一款“面向未来”的操作系统,它创造性地提出了三大技术理念:一次开发,多端部署;可分
    的头像 发表于 03-04 17:50 337次阅读
    零基础小白适不适合学<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>?

    未来从事鸿蒙开发?是否会有前景?

    鸿蒙的未来发展肯定很有前景的,鸿蒙作为新出的国产操作系统。它不仅只是手机操作系统,鸿蒙的出发点就是万物互联。包含原生应用开发、车载、智能设备、数码、智能家居家电等等。如此大的市场分布,
    发表于 02-19 21:31

    使用 Taro 开发鸿蒙原生应用 —— 快速上手,鸿蒙应用开发指南

    随着鸿蒙系统的不断完善,许多应用厂商都希望将自己的应用移植到鸿蒙平台上。最近,Taro 发布了 v4.0.0-beta.x 版本,支持使用 Taro 快速开发鸿蒙原生应用,也可将现有的
    的头像 发表于 02-02 16:09 384次阅读
    使用 Taro <b class='flag-5'>开发</b><b class='flag-5'>鸿蒙</b>原生应用 —— 快速上手,<b class='flag-5'>鸿蒙</b>应用<b class='flag-5'>开发</b>指南

    鸿蒙开发之发动画篇

    动画的原理是在一个时间段内,多次改变UI外观,由于人眼会产生视觉暂留,所以最终看到的就是一个“连续”的动画。UI的一次改变称为一个动画帧,对应一次屏幕刷新,而决定动画流畅度的一个重要指标就是帧率FPS(Frame Per Second),即每秒的动画帧数,帧率越高则动画就会越流畅。 ArkUI中,产生动画的方式是改变属性值且指定动画参数。动画参数包含了如动画时长、变化规律(即曲线)等参数。当属性值发生变化后,按照动画参数,从原来的状态过
    的头像 发表于 02-01 15:25 184次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>之发动画篇

    现在加入鸿蒙开发咋样

    现在加入鸿蒙开发咋样? 各位前辈, 现在加入鸿蒙开发还有前景吗?
    发表于 01-29 18:07

    鸿蒙开发之ArkTS基础知识

    一、ArkTS简介 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配了鸿蒙的ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发
    的头像 发表于 01-24 16:44 608次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>之ArkTS基础知识

    鸿蒙开发-ArkUI 组件基础

    1 组件介绍 组件(Component)是界面搭建与显示的最小单位,HarmonyOS ArkUI声明式开发范式为开发者提供了丰富多样的UI组件,我们可以使用这些组件轻松的编写出更加丰富、漂亮的界面
    发表于 01-17 19:31

    鸿蒙开发OpenHarmony组件复用案例

    ) } }, item => item) } } } 本文主要是对鸿蒙开发基础当中的OpenHarmony技术组件复用示例, 更多鸿蒙开发OpenHarmony技术可以在主页
    发表于 01-15 17:37

    鸿蒙开发基础-Web组件之cookie操作

    }) ... } ... 本文章主要是对鸿蒙开发当中ArkTS语言的基础应用实战,Web组件里的cookie操作。更多的鸿蒙应用开发技术,可以前往我的主页学习更多,下面是一张
    发表于 01-14 21:31

    鸿蒙开发环境搭建-高频环境问题解决

    并且点击->新建输入 C:\\\\Windows\\\\System32 本文是对鸿蒙开发中,环境搭建出现的一系列问题解决方案,更多鸿蒙开发问题技术可以主页查看更多。
    发表于 01-12 22:29

    为何大厂急招鸿蒙开发工程师?别有洞天

    正确看待鸿蒙不再兼容安卓版本,而大厂急招鸿蒙工程师这一举动已经是预料之中的。我们一步步来看鸿蒙是怎么发展过程的。为什么互联网大厂急招鸿蒙开发
    发表于 01-08 19:59

    鸿蒙开发南向环境搭建教学

    南向开发环境搭建教学,更多鸿蒙开发资料可以前往高清完整版 《鸿蒙开发4.0基础-高阶文档》找保存。(附鸿
    发表于 01-05 16:38

    【技术视界】鸿蒙开发套件之DevEco Profiler助您轻松分析应用性能问题

    的是华为性能调优工具专家的分享,希望能为您的应用性能优化带来启发~ 作者:shizhengtao,华为性能调优工具专家 应用的性能优化一直以来都是开发者所面临的一大难题,在2023HDC大会上全新亮相的HarmonyOS NEXT开发者预览版,其中
    的头像 发表于 09-15 12:15 441次阅读
    【技术视界】<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>套件之DevEco Profiler助您轻松分析应用性能问题