鸿蒙体验篇

前言

鸿蒙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: 资源目录的索引文件

参考资料

开发者学堂
开发文档
探究Hap包结构

相关推荐
轻口味29 分钟前
命名空间与模块化概述
开发语言·前端·javascript
前端小小王1 小时前
React Hooks
前端·javascript·react.js
迷途小码农零零发1 小时前
react中使用ResizeObserver来观察元素的size变化
前端·javascript·react.js
娃哈哈哈哈呀2 小时前
vue中的css深度选择器v-deep 配合!important
前端·css·vue.js
旭东怪2 小时前
EasyPoi 使用$fe:模板语法生成Word动态行
java·前端·word
ekskef_sef4 小时前
32岁前端干了8年,是继续做前端开发,还是转其它工作
前端
sunshine6414 小时前
【CSS】实现tag选中对钩样式
前端·css·css3
真滴book理喻4 小时前
Vue(四)
前端·javascript·vue.js
蜜獾云4 小时前
npm淘宝镜像
前端·npm·node.js