HarmonyOS应用开发001
前言
学习之前,需要有一定的开发基础(如:java、c#、c++、WEB前端的一些了解)。
HarmonyOS开发使用的ArkTS,ArkTS是在TS的基础之上进行封装的,而TS是由JS进行封装起来的,因此需要先熟悉thml,CSS,JS等相关知识。
前景
自HarmonyOS 4.0发布会后,各大厂一开始着手准备“纯血鸿蒙版”开发工作。
随着鸿蒙原生应用开发的日益兴盛,对鸿蒙开发人才的需求呈现井喷式增长。随着鸿蒙用户基数的持续扩大,众多关键应用和平台开始针对性地进行鸿蒙原生适配与开发。因此,各家企业纷纷抛出橄榄枝,热招鸿蒙相关技术人才,昭示着鸿蒙开发者的黄金时代已然来临。
浏览各大招聘网站,输入关键词“鸿蒙工程师”,便会发现百度、京东等知名互联网企业正积极招聘鸿蒙开发人才。百度公司开出的HarmonyOS开发工程师月薪区间可达20-40k,全年16薪;京东则为鸿蒙方向的前端架构师提供40-70k的丰厚待遇,而鸿蒙架构师的薪资更是令人艳羡,达到了60-90k的年薪,且同样是16薪制。更令人瞩目的是,华为对资深鸿蒙OS架构师的年薪设定在了百万级别,最高可达160万元。
还有鸿蒙系统是国家支持的系统,后面也不会对自家的系统进行打压行为。
面临的挑战:经过十多年的发展,传统移动互联网的增长红利已渐见顶。万物互联时代正在开启,应用的设备底座将从几十亿手机扩展到数百亿 IoT 设备。GSMA预测到2025年,全球物联网终端连接数量将达246亿个,其中消费
物联网终端连接数量将达110亿个(`注:数据来自于全球移动通信系统协会发布的《2020年移动经济》报告)。
IDC预计到2025年,中国物联网总连接量将达到102.7亿个(注:数据来自于IDC发布的《中国物联网连接规模预测,2020—2025》报告)。全新的全场景设备体验,正深入改变消费者的使用习惯。同时应用开发者也面临设备底座从手机单设备到全场景多设备的转变,通过全场景多设备作为全新的底座,为消费者带来万物互联时代更为高效、便捷的体验。
新的场景同时也带来了新的挑战。开发者不仅需要支持更加多样化的设备,还需要支持跨设备的协作。不同设备类型意味着不同的传感器能力、硬件能力、屏幕尺寸、操作系统和开发语言,还意味着差异化的交互方式。同时跨设备协作也让开发者面临分布式开发带来的各种复杂性,例如跨设备的网络通信、数据同步等。若采取传统开发模式,适配和管理工作量将非常巨大。当前移动应用开发中遇到的主要挑战包括:
1.针对不同设备上的不同操作系统,重复开发,维护多套版本。
2.多种语言栈,对人员技能要求高。多种开发框架,不同的编程范式。
3.命令式编程,需关注细节,变更频繁,维护成本高。
鸿蒙系统基于此应用而生。
一、技术特性
1.硬件互助,资源共享 :多种设备之间能够实现硬件互助、资源共享,依赖的关键技术包括分布式软总线、分布式设备虚拟化、分
布式数据管理、分布式任务调度等。
2. 一次开发,多端部署: HarmonyOS 提供了用户程序框架、Ability 框架以及 UI 框架,支持应用开发过程中多终端的业务逻辑和界
面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率。
3. 统一 OS,弹性部署:HarmonyOS 通过组件化和小型化等设计方法,支持多种终端设备按需弹性部署,能够适配不同类别的硬
件资源和功能需求。支撑通过编译链关系去自动生成组件化的依赖关系,形成组件树依赖图,支撑产品系统的
便捷开发,降低硬件设备的开发门槛。
二、使用工具
1、安装工具:下载安装DevEco Studio
2. [官网](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/arkts-get-started-0000001504769321-V2)
1.项目目录结构
代码如下(示例):
AppScope 中存放应用全局所需要的资源文件。
entry 是应用的主模块,存放 HarmonyOS 应用的代码、资源等。
oh_modules 是工程的依赖包,存放工程依赖的源文件。
build-profile.json5 是工程级配置信息,包括签名、产品配置等。
hvigorfile.ts 是工程级编译构建任务脚本,hvigor是基于任务管理机制实现的一款全新的自动化构建工
具,主要提供任务注册编排,工程模型管理、配置管理等核心能力。
oh-package.json5是工程级依赖配置文件,用于记录引入包的配置信息。
在 AppScope,其中有 resources 文件夹和配置文件app.json5。AppScope > resources > base中包含
element 和media 两个文件夹,
其中 element 文件夹主要存放公共的字符串、布局文件等资源。
media 存放全局公共的多媒体资源文件
entry 主模块目录含义:
main 文件夹中,ets 文件夹用于存放 ets 代码,resources 文件存放模块内的多媒体及布局文件等,
module.json5文件为模块的配置文件。 包含当前模块的配置信息
ohosTest 是单元测试目录。
build-profile.json5 是模块级配置信息,包括编译构建配置项。
hvigorfile.ts 文件是模块级构建脚本。
oh-package.json5 是模块级依赖配置信息文件。
进入src > main > ets目录中,其分为 entryability、pages 两个文件夹。
entryability 存放 ability 文件,用于当前 ability 应用逻辑和生命周期管理。
pages 存放 UI 界面相关代码文件,初始会生成一个 Index 页面。
#配置跳转路径位置
src/main/resources/base/profile/main_pages.json 文件保存的是页面page的路径配置信息,所有
需要进行路由跳转的page页面都要在这里进行配置。