大家好我是牛牛,一名软件开发从业者,无意中接触到了鸿蒙移动端开发,对鸿蒙操作系统产生了极大的兴趣,作者将从无到有开发出一款鸿蒙原生APP。每天写一篇关于鸿蒙开发的技术文章。欢迎大家踊跃订阅➕关注,文章中有什么 不妥之处可以在评论区中指出。
注意:最好是有开发经验的伙伴来阅读系列文章。零基础的同学可以先去了解一下TypeScript从最基本的开发语言进行学起
1.什么是鸿蒙HarmanyOS
HarmonyOS是华为新一代的智能终端操作系统,为不同设备的智能化、互联与协同提供了统一的语言,为用户带来简捷,流畅,连续,安全可靠的全场景交互体验。
HarmonyOS结合移动生态发展的趋势,提出了三大技术理念:一次开发,多端部署;可分可合,自由流转;统一生态,原生智能。核心技术理念详细内容可参考《鸿蒙生态应用开发白皮书》,此白皮书全面阐释了HarmonyOS生态下应用开发核心理念、关键能力以及创新体验,旨在帮助开发者快速、准确、全面的了解HarmonyOS开发套件给开发者提供的能力全景和未来的愿景。
内容源自于 鸿蒙开发者联盟
2.开发鸿蒙 HarmanyOS APP 要使用的开发语言
- ArkTs
- ArkUI
什么是 ArkTs?
ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,保持了TS的基本风格,同时通过规范定义强化开发期静态检查和分析,提升程序执行稳定性和性能。
- 具体详细内容参考官方说明:什么是 ArkTs
什么是 ArkUI?
ArkUI(方舟UI框架)为应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界面开发。
基本概念
-
UI: 即用户界面。开发者可以将应用的用户界面设计为多个功能页面,每个页面进行单独的文件管理,并通过页面路由API完成页面间的调度管理如跳转、回退等操作,以实现应用内的功能解耦。
-
组件: UI构建与显示的最小单位,如列表、网格、按钮、单选框、进度条、文本等。开发者通过多种组件的组合,构建出满足自身应用诉求的完整界面。
-
具体详细内容参考官方文档:什么是 ArkUI
3.安装HarmanyOS开发者工具 DevEco-Studio
华为官网下载:官网下载 需要登录
我的电脑是 Mac Arm 架构,所以我选择 Mac Arm 版本进行下载安装
解压下载的 zip 文件
双击安装包文件进行安装
等待一会在应用程序里面多出一个图标
等待安装
打开开发者工具
4.创建第一个鸿蒙项目之 HelloWorld
新建项目
选择 Application -> EmptyAbility -> Next
创建项目详细信息
- Project name: 项目名称,只能使用英文进行命名
- Bundle name: 项目的 ID 名称 建议使用公司域名作为前缀+项目名称,不能包含中文。
- Save loction: 项目的创建安装目录,可以进行自定义
- Compatible SDK: 项目所使用的 SDK 版本,这里使用 11 的版本。
- Modlue name: 项目的模块名,可以跟随项目的模块进行命名
- Device type: 项目可以编译运行在什么类型的设备 Phone:手机 Tablet:平板电脑 2in1: 平板和 PC
完成创建
打开预览器编译运行
经典的 HelloWorld 已经运行在了编辑器当中
5. ArkTS工程目录结构(Stage模型)
-
AppScope > app.json5:应用的全局配置信息,详见app.json5配置文件。
-
entry:HarmonyOS工程模块,编译构建生成一个HAP包。
- src > main > ets:用于存放ArkTS源码。
- src > main > ets > entryability:应用/服务的入口。
- src > main > ets > entrybackupability:应用提供扩展的备份恢复能力。
- src > main > ets > pages:应用/服务包含的页面。
- src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见资源分类与访问。
- src > main > module.json5:模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见module.json5配置文件。
- build-profile.json5:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。
- hvigorfile.ts:模块级编译构建任务脚本。
- obfuscation-rules.txt:混淆规则文件。混淆开启后,在使用Release模式进行编译时,会对代码进行编译、混淆及压缩处理,保护代码资产。详见开启代码混淆。
- oh-package.json5:用来描述包名、版本、入口文件(类型声明文件)和依赖项等信息。
-
oh_modules:用于存放三方库依赖信息。
-
build-profile.json5:应用级配置信息,包括签名signingConfigs、产品配置products等。其中products中可配置当前运行环境,默认为HarmonyOS。
-
hvigorfile.ts:应用级编译构建任务脚本。
-
oh-package.json5:主要用来描述全局配置,如:依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化配置(parameterFile)等。
第一期就到这里啦!下一期带大家认识一下 HelloWord 中的代码是怎么被编译渲染的。有想去的小伙伴也可以自行安装和创建进行研究一下。