赞
踩
当新建完毕一个鸿蒙项目之后,自带有HelloWorld的代码。
所以,我们真正学习的是下面的四个知识点:
1,如何运行项目
2,页面中的包含关系
3,配置文件:config.json
4,了解程序的启动流程
1,登陆账号
2,选择开启模拟器
我这里选择P40当模拟器开启
如果时间过了之后,重新开启一个就可以了。
3,运行项目
什么是页面呢?当打开手机中的一个软件之后,展示的东西,就是页面
MainAbility是项目启动的第一个界面。
在界面里面不是直接显示内容的。在界面里面展示的是子界面,我们也称之为切片,或者片段。
在子界面里面才是显示内容的。
而展示的HelloWord是一段文本,这个文本就是放在MainAbilitySlice里面进行展示的。
关系如下:
MainAbility (界面)包含一个或多个MainAbilitySlice(子界面)
MainAbilitySlice(子界面)包含要显示的内容
图解如下:
疑问:
为什么要有子页面的存在呢?直接放最外面的页面添加文本信息不是更简单么?
包含关系:
最外面是:Ability
Ability中是一个或多个子页面 :AbilitySlice
子页面中有要展示的内容:图片,文本等信息
所有的模块,界面等信息,都会在这个文件中进行配置。鸿蒙应用启动之后,先解析config.json文件。
config.json:分为三个部分:
app 、deviceConfig 、module
1,app是整个项目的配置,包含了厂商信息、版本号等。
2,deviceConfig:表示应用在设备上的配置信息。比如:是否允许应用使用网络流量、是否支持在设备未解锁状态直接启动等
3,module:表示整个代码的配置信息。
比如:程序在运行时候的所有界面,以及第一个要启动的界面是谁。
整个项目的配置信息
内容详解:
1,bundleName,包名
2,vendor,是应用开发厂商的描述,也就是开发公司的名字。
3,version:
包含:name、code。 比如:程序在运行时候的所有界面,以及第一个要启动的界面是谁。
{
"app": {
"bundleName": "com.huan.myapplication",
"vendor": "huan",
"version": {
"code": 1000000,
"name": "1.0.0"
}
}
}
应用在设备上的配置信息 比如,应用需要获取手机里面的一些权限,就可以写在deviceConfig里面。如果不需要任何权限就可以空着不写。
{
"deviceConfig": {},
}
代码中的配置信息
内容详解:
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" } ] } }
当程序刚开始启动的时候,会解析config.json中的信息,获取到第一个要加载的界面,也就是mainAbility,通过包名 + 类名定位到要运行的类MainAbility,所以界面启动,在这个界面里面又加载了MainAbilitySlice切片,在改切片中展示的内容为Layout包中的ability_main。 name是用户看到的版本号。code是用户看不到的,只能公司内部人员使用的版本号。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。