公告:九九网站目录为广大站长提供免费收录网站服务,会员可在线完成投稿无需添加友情链接。只收录内容正规合法的网站;快审网站软文10元

点击这里在线咨询客服
新站提交
  • 网站:8453
  • 待审:20
  • 小程序:9
  • 文章:3601
  • 会员:2183

 

1 HarmonyOS是什么

HarmonyOS是华为公司自主研发的,基于微内核的全场景分布式操纵系统。

1.1 微内核

相比基于Linux(宏内核)的Android操作系统,基于微内的HarmonyOS,更安全,更稳定,可维护性更好。

1.2 全场景

可应用于包含但不限于移动通信终端等在内的,各种各样的硬件设备上。

1.3 分布式

借助软总线将多个设备组成超级虚拟终端,实现不同设备间的互联互通和信息共享。HarmonyOS堪称物联网时代的操作系统。

2 HarmonyOS的架构

HarmonyOS总体架构

2.1 内核层

目前华为的大部分HarmonyOS设备依然基于Linux内核,LiteOS属于微内核,但仅限于华为的物联网产品。不同的系统内核借助内核抽象层(KAL)向上层提供统一的访问接口,以屏蔽系统内核间的差异性。

2.2 系统服务层

将一些非核心功能从系统内核中抽离出来,以体现微内核操作系统的设计原则。系统服务与(微)内核一起实现操作系统内核的功能。

2.2.1 方舟多语言运行时子系统

HarmonyOS通过方舟多语言运行时子系统,在操作系统的内核级别处理编译器产出的二进制指令,其性能高于依赖ART虚拟机执行代码的Android。

方舟多语言运行时子系统与ART虚拟机

2.3 应用框架层

为应用程序提供访问系统服务的接口。

应用程序与应用框架

HarmonyOS的应用框架就相当于Windows SDK或Unix/Linux系统调用。

应用框架与SDK或系统调用

3 HarmonyOS应用的开发模式

用Java创建界面,同时实现业务逻辑;用XML描述界面,用Java实现业务逻辑;以上两种模式,都可以在Java中通过JNI调用C或C++编写的库;用HML描述界面的结构,用CSS描述界面的外观,用JavaScript实现业务逻辑。XMLJavaC/C++HMLCSSJavaScript***********

4 HarmonyOS应用的组织结构

HarmonyOS上的应用由一到多个HAP (HarmonyOS Ability Package)组成。

HAP分为两种类型:

entry

入口包,相当于Windows上的exe文件feature

特征包,相当于Windows上的dll文件

应用需要为其适配的每种设备提供一个相应的入口包。只适配一种设备的应用只有一个入口包。无论哪种情况,特征包的数量都没有限制。

___________________________________________________________________________ | application.app | | _______________________________________________________________________ | | | entry.hap | feature1.hap | feature2.hap | feature3.hap | | | | _____________ | _____________ | _____________ | _____________ | | | | | abilities | | | abilities | | | | | | | | | | | | libs | | | libs | | | libs | | | resources | | | | | | resources | | | resources | | | | | | | | | | | | config.json | | | config.json | | | config.json | | | config.json | | | | | |_____________| | |_____________| | |_____________| | |_____________| | | | |_________________|_________________|_________________|_________________| | | | | pack.info | |___________________________________________________________________________|

其中:

application.app - 应用包(Application Package) | |__entry.hap - 入口包 | | | |__abilities - 界面或服务 | |__libs - 库 | |__resources - 资源 | |__config.json - 包配置 | |__feature1.hap - 特征包 | | | |__abilities - 界面或服务 | |__libs - 库 | |__resources - 资源 | |__config.json - 包配置 | |__feature2.hap - 库特征包 | | | |__libs - 库 | |__config.json - 包配置 | |__feature3.hap - 资源特征包 | | | |__resources - 资源 | |__config.json - 包配置 | |__pack.info - 包信息

5 Ability(能力)

Ability是应用所具备能力的抽象。

Ability

6 HarmonyOS应用的开发环境

6.1 node.js

https://nodejs.org

下载node.js

6.2 HUAWEI DevEco Studio

https://developer.harmonyos.com/en/develop/deveco-studio

下载HUAWEI DevEco Studio

6.3 HarmonyOS SDK

DevEco Studio

  Configure

    Settings

      HarmonyOS SDK
安装HarmonyOS SDK

7 第一个HarmonyOS应用

7.1 创建工程

DevEco Studio

  Create HarmonyOS Project

    Empty Ability(Java)

      Project Name: Hello

      Project Type: Application

      Package Name: com.<你的姓名全拼>.hello

      Save Location: <工程所在目录>\Hello

      Compatible API Version: SDK: API Version 5

      Device Type: Phone例程:Hello

...\Hello\entry\src\main\resources\zh\element\string.json

{ "string": [ { "name": "entry_MainAbility", "value": "你好" }, { "name": "mainability_description", "value": "你好" }, { "name": "mainability_HelloWorld", "value": "你好,鸿蒙" } ] }

...\Hello\entry\src\main\resources\en\element\string.json

{ "string": [ { "name": "entry_MainAbility", "value": "Hello" }, { "name": "mainability_description", "value": "Hello" }, { "name": "mainability_HelloWorld", "value": "Hello HarmonyOS" } ] }

7.2 在本地预览器中运行

在本地预览器(中文)中的显示效果
在本地预览器(英文)中的显示效果

7.3 在远程模拟器中运行

在远程模拟器(中文)中的显示效果
在远程模拟器(英文)中的显示效果

7.4 在真机设备中运行

在真机设备(中文)的显示效果
在真机设备(英文)中的显示效果

有关如何将自己开发的HarmonyOS应用,部署到真机设备并运行调试的方法,将在后续课程中为大家介绍。

8 控制台输出

HiLog用于通过控制台输出日志信息,包括如下静态方法:

debug()

输出调试信息info()

输出一般信息warn()

输出警告信息error()

输出错误信息fatal()

输出致命错误

这些方法的第一个参数是一个HiLogLabel类型的对象,表示日志标签,其构造方法包含如下三个参数:

type

日志类型,可取以下值:

HiLog.LOG_APP

HiLog.DEBUG

http://HiLog.INFO

HiLog.WARN

HiLog.ERROR

HiLog.FATALdomain

服务域,采用十六进制整数形式,如:
0x 0 0 1 0 1 \___/ \_/ | | 子系统 模块

tag

标签名称

通常将日志标签定义为类的静态成员变量。

在指定日志文本的格式化字符串中:

{private} (缺省)

表示私有输出{public}

表示公有输出

如:

HiLog.warn( label, "Failed to visit %{private}s, reason: %{public}d.", url, errno);
例程:HiLog

...\HiLog\entry\src\main\java\com\minwei\hilog\slice\MainAbilitySlice.java

public class MainAbilitySlice extends AbilitySlice { private static final HiLogLabel label = new HiLogLabel( HiLog.LOG_APP, 0x00101, "标签"); @Override public void onStart(Intent intent) { ... HiLog.debug(label, "调试"); HiLog.info(label, "信息"); HiLog.warn(label, "警告"); HiLog.error(label, "错误"); HiLog.fatal(label, "致命"); } ... }

运行效果如下图所示:

运行效果

更多精彩,敬请期待……

分享到:

  admin

注册时间:

网站:0 个   小程序:3 个  文章:0 篇

  • 453

    网站

  • 9

    小程序

  • 3601

    文章

  • 83

    会员

赶快注册账号,推广您的网站吧!
热门网站
最新入驻小程序

跳一跳2022-08-22

跳一跳是微信开发的一款小游戏,有

数独大挑战2018-06-03

数独一种数学游戏,玩家需要根据9

答题星2018-06-03

您可以通过答题星轻松地创建试卷

全阶人生考试2018-06-03

各种考试题,题库,初中,高中,大学四六

运动步数有氧达人2018-06-03

记录运动步数,积累氧气值。还可偷

每日养生app2018-06-03

每日养生,天天健康