MENU

(一)鸿蒙初探

2020 年 10 月 18 日 • 鸿蒙OS

鸿蒙OS从开源到现在还没有去瞅一下长什么样子。于是在中午午休之前去官网看了一下,另外发现了鸿蒙学堂(戳这里)这个好去处,上面有很多开发文档,可以窥探下鸿蒙OS的应用是如何进行开发。

1. 应用开发

浏览了一下鸿蒙应用开发文档,出现了很多未见过的术语,首先映入眼帘的就是Ability。什么是Ability?带着这个疑惑继续向下看,又看到了Page AbilityService AbilityData AbilityIntent

QQ截图20201018223409.jpg

根据文档描述,其中Page Ability可以与用户进行交互,有界面,有着自己的生命周期,还可以由多个AbilitySlice组成。这货不就是安卓中的Activity么。这么一想,AbilitySlice的功能就是安卓中的Fragment。剩下的Service Ability就类似安卓中后台服务Service,俗称没有界面的Page Ability,而Data Ability就是安卓中的Content ProviderIntent还是Intent,用来在上述组件间传输信息。安卓中的四大组件出现了三个,剩下的广播接收去了哪呢?

向下继续翻阅了下,找到了一个叫做公共事件服务,这个模块为应用程序提供订阅、发布、退订公共事件的能力。没错,这个模块就是承担着安卓系统中广播的角色。

这么一想,鸿蒙应用开发中的很多概念都是从安卓中借鉴和延伸过去的,毕竟安卓系统是使用广泛的开发操作系统,有着优秀的架构设计。

而除了借鉴了一些安卓的模块概念之外,鸿蒙应用中存在着特有的设计,例如分布式任务调度。这个功能在原有的安卓框架基础了做了延伸,以前应用只能通过Intent打开自己应用内部、同个手机上的别的应用的功能,而根据鸿蒙官网描述,可以实现Ability 跨设备的启动/关闭、连接及断开连接以及迁移等能力,实现跨设备的组件管理。也就说可以支持上述组件跨设备的调用和进行迁移,实现多个终端进行联动。

2. 代码开源

鸿蒙捐献给原子开源基金会的代码托管在码云上(戳这里)。鸿蒙组织下有着上百个代码仓库,让人眼花缭乱。只能从组织首页的README开始看起。

简单过了下所有的简介,其中没有我所关心的鸿蒙Framework层的实现,只找到liteos的内核代码,估计暂时Framework层的代码还没有开源。改天有空再继续看下liteos的实现。

顺便发现了文档的拼写错误,把“HTML”拼写成了“HML”,提交了个轻量的PR,不过需要签署CLA才能提交代码。按照指导签署了CLA,但是CI一直提示没有签署,不知道是什么鬼,或许是人工审核的吧,有空再继续跟进下。

QQ截图20201018225404.jpg


19号的时候终于回我了,HML指的是Harmony Markup Language,看起来没啥毛病。那就是首页的HTML有毛病了。CLA也提示已经签署了,终于可以愉快的玩耍了。

回复.jpg

最后编辑于: 2020 年 10 月 24 日
添加新评论

已有 2 条评论
  1. 不错 不错

    为啥你的org域名可以备案

    1. @不错可能买的比较早吧,当时是要备案才能绑定到服务器ip上。