当前位置:   article > 正文

第一个鸿蒙入门应用HelloWorld_mainability

mainability

当新建完毕一个鸿蒙项目之后,自带有HelloWorld的代码。
所以,我们真正学习的是下面的四个知识点:
1,如何运行项目
2,页面中的包含关系
3,配置文件:config.json
4,了解程序的启动流程

如何运行项目

1,登陆账号

在这里插入图片描述

在这里插入图片描述

2,选择开启模拟器

我这里选择P40当模拟器开启

在这里插入图片描述

如果时间过了之后,重新开启一个就可以了。

3,运行项目

在这里插入图片描述

页面中包含的关系

什么是页面呢?当打开手机中的一个软件之后,展示的东西,就是页面

MainAbility是项目启动的第一个界面。
在界面里面不是直接显示内容的。在界面里面展示的是子界面,我们也称之为切片,或者片段。
在子界面里面才是显示内容的。

而展示的HelloWord是一段文本,这个文本就是放在MainAbilitySlice里面进行展示的。
关系如下:
MainAbility (界面)包含一个或多个MainAbilitySlice(子界面)
MainAbilitySlice(子界面)包含要显示的内容

图解如下:

在这里插入图片描述

疑问:
为什么要有子页面的存在呢?直接放最外面的页面添加文本信息不是更简单么?

在这里插入图片描述

包含关系:
最外面是:Ability
Ability中是一个或多个子页面 :AbilitySlice
子页面中有要展示的内容:图片,文本等信息

配置文件:config.json

所有的模块,界面等信息,都会在这个文件中进行配置。鸿蒙应用启动之后,先解析config.json文件。

config.json:分为三个部分:

app 、deviceConfig 、module

在这里插入图片描述
1,app是整个项目的配置,包含了厂商信息、版本号等。
2,deviceConfig:表示应用在设备上的配置信息。比如:是否允许应用使用网络流量、是否支持在设备未解锁状态直接启动等
3,module:表示整个代码的配置信息。
比如:程序在运行时候的所有界面,以及第一个要启动的界面是谁。

app:

整个项目的配置信息
内容详解:
1,bundleName,包名
2,vendor,是应用开发厂商的描述,也就是开发公司的名字。
3,version:
包含:name、code。 比如:程序在运行时候的所有界面,以及第一个要启动的界面是谁。

{
  "app": {
    "bundleName": "com.huan.myapplication",
    "vendor": "huan",
    "version": {
      "code": 1000000,
      "name": "1.0.0"
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

请添加图片描述

deviceConfig:

应用在设备上的配置信息 比如,应用需要获取手机里面的一些权限,就可以写在deviceConfig里面。如果不需要任何权限就可以空着不写。

{
	"deviceConfig": {},
}
  • 1
  • 2
  • 3

请添加图片描述

module:

代码中的配置信息
内容详解:
1,package 包名
2,name是hap包的名字
3,mainAbility表示HAP包的入口ability名称
4,deviceType表示项目可以在哪些设备上运行。
因为可能有多个设备,所以有个方括号,表示这些值可以写到一个数组中。 phone:手机
5,distro表示HAP包的描述信息
6,deliveryWithInstall 当前hap包是否可以支持随应用安装。一般都写成true。
7,moduleName:当前HAP的名称
8,moduleType:表示当前HAP的类型。entry也表示当前的hap是一个主要的模块,可以单独安装并运行
9,abilities:代码中每一个页面的配置信息。
关于页面ability的配置,后面我们会详细讲解。

{
  "module": {
    "package": "com.huan.myapplication",
    "name": ".MyApplication",
    "mainAbility": "com.huan.myapplication.MainAbility",
    "deviceType": [
      "phone"
    ],
    "distro": {
      "deliveryWithInstall": true,
      "moduleName": "entry",
      "moduleType": "entry",
      "installationFree": false
    },
    "abilities": [
      {
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ],
        "orientation": "unspecified",
        "name": "com.huan.myapplication.MainAbility",
        "icon": "$media:icon",
        "description": "$string:mainability_description",
        "label": "$string:entry_MainAbility",
        "type": "page",
        "launchType": "standard"
      }
    ]
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

请添加图片描述

程序的启动过程

当程序刚开始启动的时候,会解析config.json中的信息,获取到第一个要加载的界面,也就是mainAbility,通过包名 + 类名定位到要运行的类MainAbility,所以界面启动,在这个界面里面又加载了MainAbilitySlice切片,在改切片中展示的内容为Layout包中的ability_main。 name是用户看到的版本号。code是用户看不到的,只能公司内部人员使用的版本号。

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/318709
推荐阅读
  

闽ICP备14008679号