前言
鸿蒙5.0版本将不再兼容安卓系统。 从鸿蒙兼容Anroid到完全不兼容,作为一个前端开发工程师,不站任何立场,因为新的事物总能促进人探索的欲望(属于创造再就业机会了) 本篇文章只是个人记录学习过程。
官方地址
开发工具下载地址 说真的,不愧是百度,开发者中心找了半天
配置开发工具
如果有过开发经验的同学,下载安装配置,基本就是一路Next
Create Projcet
因为需要从头学起,我这里选择了一个空的项目
- 低代码开发: 提供一系列UI控件库,可以拖拽绘制UI
- 应用模式:直观区别,两种项目的结构目录不同 ,建议使用
Stage
模型
对比 | FA模型 | Stage模型 |
---|---|---|
开发方式 | 提供类Web的API,UI开发与Stage模型一致。 | 提供面向对象的开发方式,UI开发与FA模型一致。 |
引擎实例 | 每个进程内的每个Ability实例独享一个JS VM引擎实例。 | 每个进程内的多个Ability实例共享一个JS VM引擎实例。 |
进程内对象共享 | 不支持。 | 支持。 |
包描述文件 | 使用config.json描述HAP包和组件信息,组件必须使用固定的文件名。 | 使用module.json5描述HAP包和组件信息,可以指定入口文件名。 |
组件 | 提供PageAbility(页面展示),ServiceAbility(服务),DataAbility(数据分享)以及FormAbility(卡片)。 | 提供Ability(页面展示)、Extension(基于场景的服务扩展)。 |
HelloWord
项目结构
下面结构说明来源于华为官方
-
AppScope:应用的全局配置信息。
- app.json5
- resources app全局资源文件夹(icon,label)
-
entry:HarmonyOS工程模块,编译构建生成一个HAP包。
- src > main > ets:用于存放ArkTS源码。
- src > main > ets > entryability:应用/服务的入口。
- src > main > ets > pages:应用/服务包含的页面。
- src > main > resources :用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见资源分类与访问。
- src > main > module.json5 :Stage模型模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见module.json5配置文件。
- build-profile.json5:当前的模块信息、编译信息配置项,包括buildOption、targets配置等。其中targets中可配置当前运行环境,默认为HarmonyOS。
- hvigorfile.ts:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
-
oh_modules:用于存放三方库依赖信息。
-
build-profile.json5:应用级配置信息,包括签名、产品配置等。
-
hvigorfile.ts:应用级编译构建任务脚本。
虚拟机
- 远端设备: 登陆华为账号注册后,可以直接选择使用,但大多数都被占用...至今还没使用过
- 本地虚拟机:类似Android 虚拟机,大约2G,Eco 启动项目时,命令行显示 hdc **,hdc是一个用于连接和管理鸿蒙设备的命令行工具,(我尝试用adb devices命令还是可以查到虚拟机设备,不确定两者关系)
hap安装包
编译好的debug包,在outputs文件下,解压缩后发现,里面已经没了原有的apk文件(之前可以适配Android系统),
- ets: 编译后的源码文件
- modules.abc:源码编译之后的方舟字节码
- sourceMaps.map:配置项,个人理解为是abc文件的一个索引文件
- resources: 资源文件
- module.json/pack.info :Hap 包的配置文件
- ets:编译后的源码文件
- resources.index: 资源目录的索引文件