鸿蒙OS从开源到现在还没有去瞅一下长什么样子。于是在中午午休之前去官网看了一下,另外发现了鸿蒙学堂(戳这里)这个好去处,上面有很多开发文档,可以窥探下鸿蒙OS的应用是如何进行开发。
1. 应用开发
浏览了一下鸿蒙应用开发文档,出现了很多未见过的术语,首先映入眼帘的就是Ability
。什么是Ability
?带着这个疑惑继续向下看,又看到了Page Ability
、Service Ability
、Data Ability
和Intent
。
根据文档描述,其中Page Ability
可以与用户进行交互,有界面,有着自己的生命周期,还可以由多个AbilitySlice
组成。这货不就是安卓中的Activity
么。这么一想,AbilitySlice
的功能就是安卓中的Fragment
。剩下的Service Ability
就类似安卓中后台服务Service
,俗称没有界面的Page Ability
,而Data Ability
就是安卓中的Content Provider
。Intent
还是Intent
,用来在上述组件间传输信息。安卓中的四大组件出现了三个,剩下的广播接收去了哪呢?
向下继续翻阅了下,找到了一个叫做公共事件服务
,这个模块为应用程序提供订阅、发布、退订公共事件的能力
。没错,这个模块就是承担着安卓系统中广播
的角色。
这么一想,鸿蒙应用开发中的很多概念都是从安卓中借鉴和延伸过去的,毕竟安卓系统是使用广泛的开发操作系统,有着优秀的架构设计。
而除了借鉴了一些安卓的模块概念之外,鸿蒙应用中存在着特有的设计,例如分布式任务调度。这个功能在原有的安卓框架基础了做了延伸,以前应用只能通过Intent
打开自己应用内部、同个手机上的别的应用的功能,而根据鸿蒙官网描述,可以实现Ability
跨设备的启动/关闭、连接及断开连接以及迁移等能力,实现跨设备的组件管理
。也就说可以支持上述组件跨设备的调用和进行迁移,实现多个终端进行联动。
2. 代码开源
鸿蒙捐献给原子开源基金会的代码托管在码云上(戳这里)。鸿蒙组织下有着上百个代码仓库,让人眼花缭乱。只能从组织首页的README开始看起。
简单过了下所有的简介,其中没有我所关心的鸿蒙Framework层的实现,只找到liteos
的内核代码,估计暂时Framework层的代码还没有开源。改天有空再继续看下liteos的实现。
顺便发现了文档的拼写错误,把“HTML”拼写成了“HML”,提交了个轻量的PR,不过需要签署CLA才能提交代码。按照指导签署了CLA,但是CI一直提示没有签署,不知道是什么鬼,或许是人工审核的吧,有空再继续跟进下。
19号的时候终于回我了,HML指的是Harmony Markup Language,看起来没啥毛病。那就是首页的HTML有毛病了。CLA也提示已经签署了,终于可以愉快的玩耍了。
为啥你的org域名可以备案
可能买的比较早吧,当时是要备案才能绑定到服务器ip上。