本手册涉及鸿蒙应用开发的各个方面,从入门开发到应用上架放弃完整流程。附带有学习指引链接,从浩瀚的开发文档中抽丝剥茧,提纲挈领,史上最快入门到上手开发手册!
开发语言
1. ArkTs
ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,扩展了声明式UI、状态管理等相应的能力,让开发者可以以更简洁、更自然的方式开发高性能应用。TS是JavaScript(简称JS)的超集,ArkTS则是TS的超集。ArkTS会结合应用开发和运行的需求持续演进,包括但不限于引入分布式开发范式、并行和并发能力增强、类型系统增强等方面的语言特性。
2. ArkTs声明式开发方式
声明式UI描述、自定义组件、动态扩展UI元素、状态管理和渲染控制。状态管理作为基于ArkTS的声明式开发范式的特色,通过功能不同的装饰器给开发者提供了清晰的页面更新渲染流程和管道。状态管理包括UI组件状态和应用程序状态,两者协作可以使开发者完整地构建整个应用的数据更新和UI渲染。包含布局、组件、页面路由和组件导航、图形、动画、交互事件。
****Stage模型与FA模型最大的区别在于:Stage模型中,多个应用组件共享同一个ArkTS引擎实例;而FA模型中,每个应用组件独享一个ArkTS引擎实例。因此在Stage模型中,应用组件之间可以方便的共享对象和状态,同时减少复杂应用运行对内存的占用。Stage模型作为主推的应用模型,开发者通过它能够更加便利地开发出分布式场景下的复杂应用。
开发流程:
开发工具
编辑器:DevEco Studio 使用指南
编译工具:hvigor
SDK:最新API 版本是10,目前大多数三方库和官方示例都支持API 10.
包管理器:ohpm,类似于npm,项目中引入三方库或单独的模块需要先ohpm install。
运行环境:模拟器(不支持最新API10),真机(据说最新的华为鸿蒙手机可能支持原生鸿蒙APP),开发板(支持最新API10,但需要购买)
HarmonyOs和OpenHarmony 选谁?
HarmonyOs 是在OpenHarmony 基础上加上华为HMS Core形成的具有华为服务和特性的OS。就像小米MI UI是基于Android 系统裁剪而来的一样。HarmonyOs只支持华为手机,而OpenHarmony是开源的,任何手机厂商,汽车车机,智能设备,甚至闸机系统,门禁系统等都能内置剪裁、修改。并且OpenHarmony比HarmonyOS 释放版本更快。所以,学习鸿蒙最好基于OpenHarmony来学,这样适用性更广。
工程结构
AppScope > app.json5:应用的全局配置信息。
entry:OpenHarmony工程模块,编译构建生成一个HAP包。
src > main > ets:用于存放ArkTS源码。
src > main > ets > entryability:应用/服务的入口。
src > main > ets > pages:应用/服务包含的页面。
src > main > resources:
src > main > module.json5:模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。
build-profile.json5:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。
hvigorfile.ts:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
obfuscation-rules.txt:混淆规则文件。混淆开启后,在使用Release模式进行编译时,会对代码进行编译、混淆及压缩处理,保护代码资产。
oh_modules:用于存放三方库依赖信息。
build-profile.json5:应用级配置信息,包括签名signingConfigs、产品配置products等。
hvigorfile.ts:应用级编译构建任务脚本。
调试方式
调试工具:hdc
应用调试:
developer.huawei.com/consumer/cn…
应用测试
自动化测试框架:gitee.com/openharmony…
打包及上架
发布流程:
developer.huawei.com/consumer/cn…
充分利用开发社区
鸿蒙社区开发示例:gitee.com/openharmony…
在线视频:(会得到华为总裁签发的证书,算是小小的学习鼓励吧……)
developer.huawei.com/consumer/cn…
折线图原理:mp.weixin.qq.com/s/w0urn8NEj…
学习路径
1. TypeScript
3. UI开发(布局,组件,图形、动画、手势)
4. Web(原生与H5交互)
6. 网络管理
9. 后台任务
10. 通知
11. 应用统计埋点
学习情况:
Demo 代码:gitee.com/zhangkqq/ha…