HarmonyOS 开发:我想先告诉你这些(二)

1,819 阅读4分钟

本文概述

  • 工欲善其事必先利其器,在正式进入HarmonyOS 之前,结合自身经验对华为开发工具 Dev Eco Studio 作简要介绍。
  • 文章涵盖工具安装、如何在其上运行应用及开发注意事项 此部分初学者可暂时跳过

鸿蒙开发工具基础

基本概述

  • 华为Dev Eco StudioAndroid Studio 一样,均基于IDEA 高度定制,二者极为相似,对 Android 开发人员极为友好
  • 预览方式:支持previewer(热重载特性)、本地模拟器、远程模拟器(需登录开发者账号)、真机调试

安装Dev Eco

  • 在官网下载安装包:developer.huawei.com/consumer/cn… image.png

  • 安装路径不能有空格出现,否则将引起非常奇怪的问题

    • 后续Node.js 等工具包安装都不能有空格,推荐安装过程连接网线 image.png

在Dec Eco Studio上运行应用

Previewer 方式

  • 本地预览:适用于简单页面

    • 优点:快速、轻量,并支持交互逻辑
    • 场景:作简略布局开发时预览,但需真机部署以确定最终效果
  • 缺点:

    • 不稳定:会莫名崩溃,重启即可

    • 功能受限:例如无法支持视频播放,其底层是使用PC 模拟出手机的功能 image.png

真机部署运行:极为推荐

  • 物料准备:华为真机,

  • 真机设置:打开开发者模式 + 开启USB 调试 + USB 连接选择 传输文件 image.png

  • Dev Eco 将自动识别:点击右侧运行即可 image.png

本地模拟器运行

  • 概述:对内存要求较高,极易造成设备卡死

  • 打开模拟器管理器: image.png

  • 准备新建模拟器: image.png

  • 点击下一步即可: image.png

  • 选择API 版本:选择最新,若未下载,点击下载即可 image.png

  • 为模拟器命名 image.png

  • 启动模拟器 image.png

远程模拟器运行

  • 优点:支持多款设备,需登录华为账号

  • 缺点:受网络及访问人数影响,且多为鸿蒙3.0 image.png

鸿蒙开发注意事项

基本信息:

  • API 选择:9
  • 真机部署:鸿蒙真机要求系统版本至少都是4.0
  • 项目路径不能包含中文字符,否则,会打不开

运行问题

  • 单独运行某一个文件:

    • 因为我们选中了这个文件,并且依托于文件最上方的 @Entry ,进一步可以渲染组件

    • 图示:实质上,我借助了Previewer 工具 image.png

  • 以项目为单位进行运行(适用于Stage 模型 + ArkTS 语言) :真机部署 + 模拟器运行

    • 找到目标页面索引: image.png

    • 替换掉: image.png

  • 以项目为单位(适用于FA 模型 + JS 语言) :真机部署 + 模拟器运行

    • 不推荐:不支持API 9
    • 想启动那个页面就把那个页面放在最前面 image.png

Dev Eco 使用技巧

  • 查看组件源码:鼠标选中具体控件,CTRL + 鼠标左键即可进入

  • 查看组件使用API :将鼠标悬停于具体控件,点击 show in API Reference ,建议将其弄成一个独立窗口来查看

    • 这是我见过最适合中国宝宝体质的开发文档 image.png
  • 命名规范:避免不同文件冲突,造成预览出错等问题

    • 原因:不同文件夹的页面,最终会打包到同一级目录下,若命名相同,则会造成冲突
    • 推荐方法:当前类名/组件名 + 变量名,这样一般都不会冲突
  • 经验之谈:

    • 问题场景:

      • 如果你想要新建一个ArkTS 文件,但是不小心新建成了Page,则会造成软件报错,此时你去删除这个Page.ets文件,就算是delete Anyway 也是删不干净的
    • 错误原因:

      • 对ArkTS 文件一般用于处理数据逻辑交互,例如新建DataBean,其中往往不会有build() 方法。

      • 但是,之前的误操作会在resources/base/profile/main_pages.json 中会残留页面索引,导致此时软件仍认为这个ArkTS 文件是一个页面,但是由于其没有build() ,因此报错 image.png

      • 解决办法:删除残留的页面索引即可

鸿蒙工程目录简介

  • AppScope:代表整个工程的全局资源文件

    • 示意图: image.png

    • 进行应用签名 + 认证:获取包名 + 类名 image.png

  • Entry 部分:整个应用的入口,存放核心代码

    • 橙色为Entry 域下的所有文件,红色为此工程默认启动页面 image.png
  • oh:工程的依赖,是按照JS 来玩的 image.png

  • build:主要是上线时配置 image.png

  • 配置插件:工程级别的编译配置脚本,基于任务管理机制 image.png

  • 记录一些东西的:不常用 image.png