- 作者:老汪软件技巧
- 发表时间:2024-08-23 00:02
- 浏览量:
距离鸿蒙 OS 2.0 发布已经过去一些日子了,由于公司项目的事情比较多,一直没有怎么去关注,这位国产的HarmonyOS,闲暇之余,我看了下这个HarmonyOS,感觉还不错,支持java和JavaScript开发,对于做作为前端开发人员,也顺便了解下!
HarmonyOS 是什么?
在官网上是这样说的: HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。
HarmonyOS 特点分布式软总线
分布式软总线是多种终端设备的统一基座,为设备之间的互联互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据。
分布式设备虚拟化
分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势。
分布式数据管理
分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,应用跨设备运行时数据无缝衔接,为打造一致、流畅的用户体验创造了基础条件。
分布式任务调度
分布式任务调度基于分布式软总线、分布式数据管理、分布式Profile等技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。
一次开发,多端部署
HarmonyOS提供了用户程序框架、Ability框架以及UI框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率。一次开发、多端部署。
统一OS,弹性部署
HarmonyOS通过组件化和小型化等设计方法,支持多种终端设备按需弹性部署,能够适配不同类别的硬件资源和功能需求。支撑通过编译链关系去自动生成组件化的依赖关系,形成组件树依赖图,支撑产品系统的便捷开发,降低硬件设备的开发门槛。
但我看完这些的时候,感觉前端估计要占用安卓的市场啦!估计一部分安卓开发人员是不是要面临着危机;看到“一次开发,多端部署”这个时候感觉用html 开发一个页面,通过各种外壳包起来形成多端的应用,就像DCloud一样。其实我在想,到时候java 开发一个应用,这个功能和JavaScript 开发应用一样,在市场上会不会面临2个,到时候会不会出现各种五花八门的应用,增加市场的管理能力呢?哈哈,这不是我们考虑的问题啦!!来看看怎么来用JavaScript写第一个HarmonyOS 的应用。
环境搭建
华为账号注册
操作系统 支持 Windows10 64,至于Windows7是否支持,有win7的同学可以试下, mac系统支持,linux 不支持
开发工具 DevEco Studio 2.0 Beta1
nodejs 安装 [JavaScript 开发用到的],我的是v12.8.3
因为我的电脑本来就有java的环境,jdk1.8和gradle6.7,可以不装,DevEco Studio 2.0 Beta1里有,我装这些因为我已配好变量,大部分jar包和缓存都变更目录,防止系统盘吃紧的出现。
IDE DevEco Studio 2.0 Beta1 安装
跟普通软件一样,一步一步的走就行啦
首次启动配置,可以不配置,我这边为了更好的方便管理,所以我这边做了配置,这个ide 感觉跟idea 差不多。
创建项目选择设备:一共有 TV,Wearable,lite Wearable三种选择;我这边选择的第一个TV,模板选的第四个 list Feature Ability(js)选择配置自动下载和构建项目工程
项目工程结构
MyTV
├─ .gitignore git 排除的文件
├─ .idea 当前IDE生成的配置文件
│ ├─ codeStyles
│ │ └─ codeStyleConfig.xml
│ ├─ gradle.xml
│ └─ misc.xml
├─ entry 项目入口
│ ├─ .gitignore git 排除的文件
│ ├─ libs
│ ├─ node_modules node 依赖
│ ├─ package.json node 依赖包管理
│ └─ src 源代码
│ ├─ main
│ │ ├─ config.json 鸿蒙项目配置
│ │ ├─ java Java代码工程
│ │ │ └─ com
│ │ │ └─ example
│ │ │ └─ mytv
│ │ │ ├─ MainAbility.java Java启动入口
│ │ │ └─ MyTV.java Java初始化
│ │ ├─ js JS代码工程
│ │ │ └─ default 默认配置文件
│ │ │ ├─ app.js JS 项目入口
│ │ │ ├─ common 公共组件和文件
│ │ │ │ ├─ arrow.png
│ │ │ │ └─ logo.png
│ │ │ ├─ i18n 国际化
│ │ │ │ ├─ en-US.json
│ │ │ │ └─ zh-CN.json
│ │ │ └─ pages 页面存放文件夹
│ │ │ └─ index 首页文件夹
│ │ │ ├─ index.css 首页 css 样式
│ │ │ ├─ index.hml 首页 hml 结构
│ │ │ └─ index.js 首页 js 数据绑定代码
│ │ └─ resources 静态资源文件,图片、视频等
│ │ ├─ base
│ │ │ ├─ element
│ │ │ │ └─ string.json
│ │ │ └─ media
│ │ │ └─ icon.png
│ │ └─ rawfile
│ └─ test 单元测试文件夹
│ └─ java
│ └─ com
│ └─ example
│ └─ mytv
│ └─ MainAbilityTest.java
├─ gradle Java 和gradle 依赖管理工具配置
│ └─ wrapper
│ ├─ gradle-wrapper.jar
│ └─ gradle-wrapper.properties
├─ gradle.properties
├─ gradlew
└─ gradlew.bat