深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
获取完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
Stage 模型与 FA 模型的区别
当我们创建 Harmony 工程的时候,会让我们选择工程的模型。
Harmony 的工程模型,分别为 Stage 模型与 FA 模型。
- FA 模型:Harmony 初期的模型,仅适用简单的应用开发,比如笔记本、闹钟之类的软件。因为在 FA 模型,每个应用组件独享一个虚拟机,占用的运行内存会更多
- Stage 模型:官方推荐的模型,相比于 FA 模型它适用于复杂应用开发。在 Stage 模型中多个应用组件共享同一个虚拟机,可以减少运行内存的占用,同时为了降低性能的损耗,保障用户体验,Harmony 对后台应用会有严格的管理机制
Harmony 后台管理机制
Harmony 对后台应用会有严格的管理机制,普通应用是不能随意驻留在后台,除非你的应用是国民级别的应用,Harmony 对后台应用会进行有序的治理,系统定义了四类后台任务。
- **短时任务:**适用于实时性要求高、耗时不长的任务,例如应用更新时退至后台后继续更新,保存更新时的数据和状态。
- **长时任务:**适用于长时间运行在后台、用户可感知的任务,例如后台播放音乐、导航、设备连接等,使用长时任务避免应用进程被挂起。
- **延迟任务:**适用于实时性要求不高、可延迟执行的任务。应用退至后台后被放入执行队列,系统会根据内存、功耗等统一调度,例如有网络时不定期主动获取邮件。
- **代理提醒:**代理提醒是指应用退后台或进程终止后,系统会代理应用做相应的提醒。适用于定时提醒类业务,当前支持的提醒类型包括倒计时、日历和闹钟三类。
配置环境变量
无论是开发 Android 还是开发 HarmonyOS,第一步都是要配置好环境变量,方便后期使用。
在命令行中配置 hdc
hdc 等同于 adb 是 HarmonyOS 为开发人员提供的用于调试的命令行工具,通过该工具可以在 windows/linux/mac 系统上与真实设备或者模拟器进行交互。
Mac 在不同的系统中使用不同的 shell, 使用下面命令查看自己使用的是哪一个 shell。
echo $SHELL
- 如果输出结果为
/bin/bash
,你的配置文件是.bash_profile
,打开文件命令vi .bash_profile
- 如果输出结果为
/bin/zsh
,你的配置文件是.zshrc
, 打开文件命令vi .zshrc
打开配置文件,将下面的内容添加到文件末尾。记得将「用户名目录」修改为你电脑的用户名。
export HARMONY_HOME=/Users/用户名目录/Library/Huawei
export HARMONY_SDK_HOME=
H
A
R
M
O
N
Y
H
O
M
E
/
s
d
k
e
x
p
o
r
t
P
A
T
H
=
HARMONY_HOME/sdk export PATH=
HARMONYHOME/sdkexportPATH=HARMONY_SDK_HOME/hmscore/3.1.0/toolchains:$PATH
保存文件,执行下面命令立即生效。
- 如果配置文件是
.bash_profile
,执行source ~/.bash_profile
- 如果配置文件是
.zshrc
,执行source ~/.zshrc
最后验证 hdc 是否配置成功。
hdc -v
hdc 和 adb 一样也有一堆命令,后期我会总结好分享给大家。
在命令行中配置 ohpm
OHPM CLI 作为鸿蒙生态三方库的包管理工具,支持 OpenHarmony 共享包的发布、安装和依赖管理。这个工具在开发中经常会用到,比如在模块中依赖三方库,我们可以使用 ohpm 下载安装第三方库。所以配置好 ohpm 环境变量,方便我们在开发中使用。
打开配置文件
- 如果配置文件是
.bash_profile
,执行vi ~/.bash_profile
- 如果配置文件是
.zshrc
,执行vi ~/.zshrc
将下面的内容,添加到配置文件末尾。记得将「用户名目录」修改为你电脑的用户名。
export HARMONY_HOME=/Users/用户名目录/Library/Huawei/
export PATH=
H
A
R
M
O
N
Y
H
O
M
E
/
o
h
p
m
/
b
i
n
:
HARMONY_HOME/ohpm/bin:
HARMONYHOME/ohpm/bin:PATH
保存文件,执行下面命令立即生效。
- 如果配置文件是
.bash_profile
,执行source ~/.bash_profile
- 如果配置文件是
.zshrc
,执行source ~/.zshrc
最后验证 ohpm
是否配置成功。
ohpm -v
但是在下载安装 ohpm 工具包和使用 ohpm 时可能会出现不同的错误,这里列了几个常见的错误。
ohpm install failed
Error: execute install task failed, component ohpm.zip.
Error: execute ‘ohpm install’ failed.
这是由于 NPM 以前版本中的一个 bug 导致,运行下面的命令即可解决。
sudo chown -R 501:20 “/Users/替换为你mac的用户名/.npm”
ohpm registry is empty
创建 Harmony 项目之后 build 时可能出现 ohpm registry is empty 的错误。
ohpm ERROR: The registry is empty - edit .ohpmrc file or use “ohpm config set registry your_registry” command to set registry.
ohpm ERROR: Install failed
想解决这个问题,我们需要在 DevEco Studio 中配置 ohpm
仓库的地址,按照下面的路径打开 Ohpm
窗口。
DevEco Studio -> Perferences -> Build, Execution, Deployment -> Ohpm
点击 Optimize Config
会弹出了一个界面。
在 ohpm registry
中输入 ohpm
仓库的地址并勾选。
https://repo.harmonyos.com/ohpm/
保存成功之后,重新 build 项目即可成功。
真机和模拟器无法运行
首先检查你的 DevEco Studio 版本是否是 3.1 Release,这个版本可能存在一些问题。
真机无法连接
我用 usb 连接真机,在 DevEco Studio 设备管理器中无法显示,用命令查看已经连接上了,我猜测是这个版本的问题,于是我尝试降级到 DevEco Studio 3.1 Beta2 正常了。
本地模拟器无法运行
从 DevEco Studio 3.1 开始支持两个模拟器,API 版本分别为 6、9,无论哪个模拟器都无法运行。
于是我查看了 鸿蒙的开发文档 DevEco Studio >=3.1
本地模拟器仅支持以下系统中运行。
- Windows 系统:内存推荐为 16GB 及以上。
- macOS 系统:内存推荐为 8GB 及以上。如果是 ARM 版本的 macOS,macOS 版本需在 12.2 及以上,否则将无法运行本地模拟器。
但是我的 macOS 的版本是 12.5.1 不仅本地模拟器无法运行,而且真机连接了也无法显示。
我猜测这个问题应该也是 DevEco Studio 版本的原因,于是我尝试降级到 DevEco Studio 3.1 Beta2,成功运行 DevEco Studio 支持的模拟器。
但是这里需要注意的是如果你的 macOS >=10.14 and macOS < 12.2
只能运行 API 版本是 6 的模拟器。
如果有遇到和我一样问题的小伙伴,可以采用临时方案,尝试降级 DevEco Studio 版,等待官方解决吧。
如何解决安装错误
好不容易解决了开发工具的问题,满心欢喜想运行鸿蒙应用体验一下,结果安装应用时报错了,让我喝杯茶压压惊。
这是因为运行的设备(模拟器和真机)和 SDK 版本的不匹配,因此会报 INSTALL_PARSE_FAILED_USESDK_ERROR
错误。
想解决这个问题,需要将 compileSdkVersion
和 compatibleSdkVersion
以及 SDK 版本需要与运行设备的 apiVersion
对应起来。
但是我们不能简单修改配置文件中 compileSdkVersion
和 c ompatibleSdkVersion
的版本号,因为使用不同的 HarmonyOS Sdk
版本,创建的 HarmonyOS 工程的目录结构和开发语言都不相同。
API Version 4~7
构建体系是由 Gradle 构建工具和构建插件组成,不要基于这个版本去开发,不然后期从 Gradle 迁移到 Hvigor 是件非常痛苦的事API Version 8~9
构建体系是由 Hvigor 构建工具和构建插件组成
开发语言也不一样:
API Version >= 9
仅仅支持 ArkTSAPI Version == 8
支持 ArkTS 和 JSAPI Version == 7
支持 ArkTS 、 JS 和 JavaAPI Version < 7
支持 JS 和 Java
所以我们不能简单的修改 compileSdkVersion
和 compatibleSdkVersion
的版本,对于我们初学者,如果出现这个问题,建议重新创建一个新的工程。
新建项目时 Compile Sdk
应该选择与你运行的设备(模拟器和真机) apiVersion
相对应的版本号。
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
b-1715484694530)]
[外链图片转存中…(img-Db8NGMBM-1715484694530)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新