鸿蒙体验篇

前言

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

相关推荐
陌离11 小时前
Go-Gui:一套 无限接近 现代化UI的 GPU绘制界面组件框架
前端
咚咚咚小柒11 小时前
【前端】LangChain.js学习
前端·javascript·人工智能·typescript·langchain·vue·ai编程
2401_8858850412 小时前
巴林语音通知接口如何对接?系统告警语音API接入教程
android·前端·网络·python·语音识别
java1234_小锋12 小时前
【技术专题】CSS3 网页技术 - CSS3 盒模型
前端·css·css3
计算机魔术师12 小时前
手握芯片、又要吞下开源分发入口,英伟达被盯上了
前端
段一凡-华北理工大学12 小时前
高炉能源系统智能化:热风炉、煤气与极致能效~系列文章07:高炉煤气:产生规律与全厂用户平衡
java·前端·能源
前端架构师-老李13 小时前
HTML与CSS基础第四课—strong、em、b、i 各表示什么
前端·css·html
king王一帅13 小时前
AI 时代一群人在卷笔记软件,我想先把 Markdown 编辑器的底层做好
前端·ai编程·markdown
用户114818678948413 小时前
盲水印:DCT-QIM 从原理到踩坑
前端