目录

一、启动你好,世界!工程:

第一步:登录华为账号:

第二步:选择虚拟设备启动:

第三步:启动工程:

二、页面中的包含关系:

包含关系:

三、config.json配置文件:

程序运行过程:

解析配置文件:

加载主页面:

加载子页面:

加载XML中内容,展示页面:


一、启动你好,世界!工程:

第一步:登录华为账号:

创建完工程之后,登录华为账号:

第二步:选择虚拟设备启动:

第三步:启动工程:

打开,连接上虚拟设备之后,启动项目工程:

运行成功:


二、页面中的包含关系:


一个独立的功能(能力),对应着一个Ability。

如果这个能力需要进行切换,那么就可以在Ability中,写多个子页面AbilitySlice进行切换。

包含关系:

Ability -> AbilitySlice -> 图片、文本信息

  • Ability中是一个或者多个子页面:AbilitySlice
  • 子页面中有要展示的内容:图片、文本信息等

三、config.json配置文件:

{
  //配置厂商信息、版本号等:
  "app": {
    "bundleName": "com.example.myapplication",
    "vendor": "example",
    "version": {
      "code": 1000000,
      "name": "1.0.0"
    }
  },

  //设备配置信息:
  "deviceConfig": {},

  //代码中配置:
  "module": {
    "package": "com.example.myapplication",
    "name": ".MyApplication",
    "mainAbility": "com.example.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.example.myapplication.MainAbility",
        "icon": "$media:icon",
        "description": "$string:mainability_description",
        "label": "$string:entry_MainAbility",
        "type": "page",
        "launchType": "standard"
      }
    ]
  }
}

程序运行过程:

解析配置文件:

加载主页面:

package com.example.myapplication;

import com.example.myapplication.slice.MainAbilitySlice;
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Intent;

//主页面:
public class MainAbility extends Ability {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);

        //加载子页面:
        super.setMainRoute(MainAbilitySlice.class.getName());
    }
}

加载子页面:

package com.example.myapplication.slice;

import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;

//子页面:
public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

加载XML中内容,展示页面:

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:alignment="center"
    ohos:orientation="vertical">

    <!--页面展示内容-->
    <Text
        ohos:id="$+id:text_helloworld"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:background_element="$graphic:background_ability_main"
        ohos:layout_alignment="horizontal_center"
        ohos:text="$string:mainability_HelloWorld"
        ohos:text_size="40vp"
        />

</DirectionalLayout>

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐