如何学会开发 HarmonyOS?

admin 0 2024-07-12

一、如何学会开发 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小程序开发多久能学会?

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

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

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

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

区别如下:

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

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

九、大数据开发学历要求?

大数据开发是一个相对新兴的领域,对于学历的要求并不是非常高,但是需要具备一定的计算机知识和编程技能。

通常来说,大数据开发人员需要具备以下能力和知识:

1. 扎实的计算机基础知识,掌握数据结构、算法、操作系统、计算机网络等基本知识;

2. 掌握一种或多种编程语言,如Java、Python、Scala等,并能够熟练使用开发工具;

3. 熟悉数据存储和管理技术,如MySQL、NoSQL、Hadoop、Hive、HBase等;

4. 熟悉大数据处理和分析框架,如Spark、Flink、Storm等;

5. 具备数据挖掘和数据分析的基本知识,能够使用常用的数据挖掘和分析工具,如R、SAS等;

6. 良好的团队协作能力和沟通能力。

虽然大数据开发人员的学历要求并不是非常高,但是一些优秀的大数据开发人员通常具有本科或以上的计算机相关专业学历,这些人在学习过程中掌握了更多的基础知识和技能,有助于更好地理解和应用大数据开发技术。

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

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

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

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

王巍身高多少米?
七大数学思维?
相关文章