• 作者:老汪软件技巧
  • 发表时间: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 的应用。

_基于鸿蒙系统的app开发_基于鸿蒙系统的毕业设计

环境搭建

华为账号注册

操作系统 支持 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