鸿蒙体验篇

前言

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

相关推荐
匹马夕阳18 分钟前
Vue 3中导航守卫(Navigation Guard)结合Axios实现token认证机制
前端·javascript·vue.js
你熬夜了吗?20 分钟前
日历热力图,月度数据可视化图表(日活跃图、格子图)vue组件
前端·vue.js·信息可视化
桂月二二6 小时前
探索前端开发中的 Web Vitals —— 提升用户体验的关键技术
前端·ux
hunter2062068 小时前
ubuntu向一个pc主机通过web发送数据,pc端通过工具直接查看收到的数据
linux·前端·ubuntu
qzhqbb8 小时前
web服务器 网站部署的架构
服务器·前端·架构
刻刻帝的海角8 小时前
CSS 颜色
前端·css
九酒8 小时前
从UI稿到代码优化,看Trae AI 编辑器如何帮助开发者提效
前端·trae
浪浪山小白兔9 小时前
HTML5 新表单属性详解
前端·html·html5
lee5769 小时前
npm run dev 时直接打开Chrome浏览器
前端·chrome·npm
2401_897579659 小时前
AI赋能Flutter开发:ScriptEcho助你高效构建跨端应用
前端·人工智能·flutter