主页 > 大数据 > 如何学会开发 HarmonyOS?

如何学会开发 HarmonyOS?

一、如何学会开发 HarmonyOS?

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_APPHiLog.DEBUGhttp://HiLog.INFOHiLog.WARNHiLog.ERRORHiLog.FATAL
  • domain服务域,采用十六进制整数形式,如:
  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, "致命");
    }
    ...
}

运行效果如下图所示:

运行效果

更多精彩,敬请期待……

二、数据开发前景?

前景非常不错的。现在就会处于大数据时代啊,对大数据开发工程师的需求真的挺大的,总的来说,只要本领过硬,发展前景非常nice的。大数据开发是这个时代刚兴起不久的行业,经常进行数据更新,从长远来看,大数据行业只要存在,就需要大数据开发工程师

三、python后端开发学会需要多久?

学会python后端开发至少需要半年,不够天赋不够的人可能需要更长时间。

四、BI开发和数据开发的区别?

bi是对数据进行分析统计。数据开发是对隐藏的数据进行分析开发。

五、大数据自学能学会吗?

大数据是一系列技术的统称,经过多年的发展,大数据已经形成了从数据采集、整理、传输、存储、安全、分析、呈现和应用等一系列环节。

零基础学习大数据。如果你想学习这个最后找工作,我希望你慎重考虑。

一,如果你是计算机专业的,不管毕业与否,自学这个,比较好入门,并且以后找工作也算是专业对口。

二,如果你不是计算机专业,并且已经大学毕业了,自学就很费劲了,也更费时间,你没有一个详细的学习规划简直太浪费时间精力,最好是能报个班,有个系统的学习规划要比一个人在家里啃书自学强的多。

大数据前景很好,目前国内大数据人才缺乏,大数据的应用十分广泛,大数据不仅包括企业内部应用系统的数据分析,还包括与行业、产业的深度融合。

六、游戏开发需要学多久才能学会?

游戏开发需要游戏引擎,编程语言,美工等,如果你想快速开发一款游戏,你可以使用unity游戏引擎,Python编程语言等,如果你想开发一款高质量的游戏,你可以使用epic游戏引擎,C类的编程语言等

希望您能采纳我的建议

七、d小程序开发多久能学会?

如果是要开发功能齐全的小程序,那至少需要学习一个月,期间需要掌握一定的写代码能力,才能实现那些功能。

如果只是一个简单展示功能的小程序,通过腾讯提供的小程序模板,一天就能做出来的。

如果是要开发功能齐全的小程序,那至少需要学习一个月,期间需要掌握一定的写代码能力,才能实现那些功能。

八、大数据开发和架构开发区别?

区别如下:

第一,名称不一样,分别叫大数据开发和架构开发,

第二,内容不一样,大数据开发侧重于收集海量的数据并汇聚到电脑之中,同时,对大数据进行分析分类整理,形成一系列可以云计算的函数关系,架构师主要是对数据的结构进行编辑程序,数据没有大数据那样量大。

九、如何提升数据开发质量?

第一步对数据质量进行评估。评估当前的数据质量状态是第一步。对数据质量进行评估能帮助企业准确地了解数据的内容、质量和结构。主管人员参与数据质量评估以及分析在数据检查过程中发现的问题对于数据质量评估来说都很重要。在最有效的数据质量评估中,所有问题都将按照对业务影响从大到小的顺序列出,这将帮助IT机构节省项目成本。

第二步,制订数据质量计划。彻底了解企业数据的内容和质量后,接下来的步骤是制订一个计划,来修改当前的错误并避免未来错误的发生。有效的计划不但可以提高企业当前所有应用程序中数据的质量,还将制定一些方式以确保新应用程序从一开始就遵循数据质量规则。

第三步,选择和实施数据质量策略。选择改善企业数据质量的策略,要求决策者权衡每个数据质量计划的成本以及该策略产生的影响。目前的策略类型有两种: 在企业输入数据时提高数据质量的方法 称为“上游”方法,而从运营系统提取数据的应用程序(如数据仓库)中改善数据质量的方法是“下游”方法。

十、大数据开发是什么?

大数据作为时下火热的IT行业的词汇,随之而来的数据开发、数据仓库、数据安全、数据分析、数据挖掘等等围绕大数据的商业价值的利用逐渐成为行业人士争相追捧的利润焦点。

随着大数据时代的来临,大数据开发也应运而生。

大数据开发其实分两种,第一类是编写一些Hadoop、Spark的应用程序,第二类是对大数据处理系统本身进行开发。

第一类工作感觉更适用于data analyst这种职位吧,而且现在hive Spark-SQL这种系统也提供SQL的接口。

第二类工作的话通常才大公司里才有,一般他们都会搞自己的系统或者再对开源的做些二次开发。

这种工作的话对理论和实践要求的都更深一些,也更有技术含量。

相关推荐