鸿蒙体验篇

前言

鸿蒙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包结构

相关推荐
北海-cherish2 小时前
vue中的 watchEffect、watchAsyncEffect、watchPostEffect的区别
前端·javascript·vue.js
2501_915909063 小时前
HTML5 与 HTTPS,页面能力、必要性、常见问题与实战排查
前端·ios·小程序·https·uni-app·iphone·html5
white-persist4 小时前
Python实例方法与Python类的构造方法全解析
开发语言·前端·python·原型模式
新中地GIS开发老师5 小时前
Cesium 军事标绘入门:用 Cesium-Plot-JS 快速实现标绘功能
前端·javascript·arcgis·cesium·gis开发·地理信息科学
Superxpang5 小时前
前端性能优化
前端·javascript·vue.js·性能优化
Rysxt_5 小时前
Element Plus 入门教程:从零开始构建 Vue 3 界面
前端·javascript·vue.js
隐含5 小时前
对于el-table中自定义表头中添加el-popover会弹出两个的解决方案,分别针对固定列和非固定列来隐藏最后一个浮框。
前端·javascript·vue.js
大鱼前端5 小时前
Turbopack vs Webpack vs Vite:前端构建工具三分天下,谁将胜出?
前端·webpack·turbopack
你的人类朋友5 小时前
先用js快速开发,后续引入ts是否是一个好的实践?
前端·javascript·后端