HarmonyOS开发详解(⼆)——鸿蒙开发体系详解及⼊门实
例演⽰运⾏
本篇⽂章的计划,先体系的介绍⼀下鸿蒙开发相关的体系内容,希望通过本篇内容构建对鸿蒙开发体系的了解,最后再来⼀个最简单⼊门例⼦。既是⾃我的学习,也希望对你了解鸿蒙开发的全貌有帮助。
这样安排⽽没有直接写⼀个Helloworld例⼦的原因,很多朋友刚开始学的时候直接上⼿helloworld例⼦,虽然感觉动⼿⼊门了,但⼜感觉好像还是不太了解。因此在开始之前先整体的了解⼀下鸿蒙开发相关的体系内容,做到能够“窥全⾝、知全貌”⽽后再⼊门,这种⽅式我觉得对于构建学习体系和深⼊学习会有极⼤的好处。
再啰嗦⼀句,对于很多学习编程的朋友建议⼀定要注重这种全貌、原理的研究,不然你只会在框架⼤楼⾥砌墙,⽽不会设计⼤楼的全貌,那这样你就真的只是⼀个会码代码的农民。
1、HarmonyOS开发概述
1.1HarmonyOS开发概要
针对HarmonyOS开发按不同的⾓度划分,可以有不同的分发:
1、从宏观⼤类上分为三类:1)通⽤开发(可安装应⽤app,兼容安卓和鸿蒙)、2)原⼦化服务(鸿蒙⾃⼰特有的免安装应⽤服务)、3)智能设备开发(智慧屏、穿戴设备,华为最新的⼿表已经⽀持安装应⽤了,可以说想象⽆限,未来可以当做微型⼿机)。
2、如果从开发语⾔上分:Java、JavaScript(⽀持传统js和带界⾯的低代码量开发)、eTS(华为⾃定义的⼀种声明式语⾔,代码简练更符合开发习惯,华为⾃⼰宣传更贴近⾃然语义,更⾼效、简洁,跨平台,粗看代码⾮常简练、易懂);
3、从开发内容上分:
1)Ablility框架:包含Ability(各种能⼒)、公共事件与通知(订阅、发布、通知等消息)、后台任务调度和管控(前台、后台、挂起等)、线程管理(创建、等待、回收)、线程间通信(⽐如下载完任务完成,通知其他线程应⽤)、剪切板。
⽽这其中最核⼼、最重要的,并会⼀直伴随鸿蒙开发的要属于:Ability。从字⾯看鸿蒙把各种设备的任何功能都抽象为⼀种能⼒Ability(能⼒,视频能⼒、美颜能⼒、夜视能⼒,和上⽂的FA、PA相对应)。
Ability本⾝⼜分为Page Ability(带界⾯的相关能⼒)、Service Ability(服务能⼒,⽐如美颜功能)、
Data Ability(数据能⼒,应⽤间、设备间数据共享);最后还包含⼀个Intent,它是对象之间传递信息的载体,当⼀个Ability导航/切换到另⼀个(⽐如外卖饿了吗⾥⾯联系商家,饿了吗的商家展⽰Ability,跳转到电话Ability)通过Intent实现——通过Intent可以指定启动⽬标(这⾥就是启动电话),并携带相关数据(这⾥就是商家的电话直接带过去)。
Ability可以说只要开发任何内容就必须⽤到,不得不关⼼(像线程、任务调度虽然重要,但不见得必须得⽤吧)。
2)UI(界⾯开发):提供JavaUI(粒度更细、更灵活)、ArkUI(⽅⾈开发框架,⽀持两种模式:基于JS扩展的类Web开发范式,基于TS(华为⾃⼰定义的开发语⾔模式,华为⾃⼰简称TS)扩展的声明式开发范式;这⾥先简单的理解成⽅⾈开发框架提供两种类似于Java Web开发,但是采⽤JS和TS的开发⽅式;后续再详细解释)、多模输⼊(⿏标、键盘、触摸、语⾳等)。
3)多媒体:视频、相机、图像、⾳频、媒体会话等 相关数据的管理
4)安全:权限管理(权限定义、申请、控制)、⽣物特征识别(⼈脸、指纹等识别)
5)AI:⽂字、图⽚、⽂档、语⾳等识别、转换,⼆维码⽣成等;
6)⽹络与连接:NFC(查询是否⽀持、状态、卡模拟、消息通知)、WLAN、⽹络管理、电话服务等
7)数据管理:关系型数据库、对象映射数据库、分布式数据和⽂件服务(创建、打开、关闭、增删改、数据同步)、数据存储、融合搜索
8)设备管理:穿戴设备、智慧屏、传感器(环境、运动等)、位置、设备标识等;
9)原⼦化服务:服务特点(免安装、快捷直达、轻量、夸设备、独⽴)、服务发现、展⽰、分享、流转;
4、从专题的⾓度划分:服务卡⽚(⼀种FA页⾯,直接展⽰应⽤核⼼内容,并⽀持快速进⼊应⽤)、流转(夸设备流转、多端协同)、华为分享(分享、接收、传输)、平⾏视界(双视窗⽀持等)
1.2 HarmonyOS app组织结构
HarmonyOS应⽤分为两⼤类:安装的App和免安装原⼦化服务应⽤。
⽤户应⽤程序以App Pack形式发布,它包含⼀个或者多个HAP(Harmony Ability Package)以及描述每个HAP属性的pack.info 组成。HAP是上⽂提到的Ability的部署包,鸿蒙的应⽤是围绕⼀个个Ability(能⼒/功能)组件展开的。⼀个HAP由代码、资源、第三⽅库及配置组件组成。
HAP⼜分为两种类型:entry和feature。
entry:是应⽤的主模块,⾥⾯可以包含⼀个或者多个entry(它是⼀种HAP)类型的HAP,来⽀持不同规格的设备(如屏幕规格、API版本等)。
feature:应⽤动态特性模块(它也是⼀种HAP,相⽐于entry表达的固定的屏幕尺⼨,feature代表的是动态调度特性),⼀个APP 可以包含N(N>=0)个feature的HAP。
只有包含Ability的HAP才能独⽴运⾏。
此外还有⼀种HAR(HarmonyOS Ability Resources)可以构建应⽤所需的所有内容,但是HAR不能独⽴安装,只能作为应⽤模块的依赖,⽽被引⽤。
1.3其他内容
1、开发⼯具:华为提供IntelliJ IDEA Community开源版本打造的HUAWEI DevEco Studio,与HarmonyOS的各种开发、调试做了深度融合,提供很多⽅便、好⽤的功能;另外提供DevEco Service提供安全测试、云测试、远程真机测试;真的试考虑很周全,免去项⽬开发完毕再扫描漏洞、再做压⼒并发测试,最良⼼的还提供远程真机测试。。。
2、测试:DevEco提供性能、安全、兼容、稳定性、功耗、流转等测试,并提供单元测试框架、分布式UI测试框架、综合评分等。
3、穿戴设备:1)智能穿戴设备指搭载HarmonyOS的⼿表,⽬前只有HUAWEI Watch 3,可以去⼿表商城看下,就⼤概知道⽀持哪些功能和应⽤场景(⽀持多种场景互动、应⽤安装); 2)轻量智能穿戴设备,⽬前⽀持HUAWEI WATCH GT 2 Pro(消息通知、与⼿机内容互动,⾃⾝⾮鸿蒙因此应⽤很弱)。
穿戴设备单独列出来,⼆者(智能、轻量智能到底有啥区别区别困惑了我好久)的核⼼区别,⼀个是HarmonyOS,⼀个⾮鸿蒙,在最新的WATCH 3中已经⽀持⾼德地图、喜马拉雅、新浪新闻、腾讯体育、航旅纵横等;在⼿表上可以安装应⽤真的让⼈很⼼动,未来鸿蒙才是趋势。下图是华为Watch 3鸿蒙⼿表中各种app,看得直流⼝⽔,真⾹...
4、OpenHarmony与HarmonyOS的关系
在这⾥讲⼀下⼆者的区别。
OpenHarmony是鸿蒙操作系统的开源版本,免费开源,⽽Harmony OS本⾝是闭源的;⼆者的关系:OpenHarmony相当于安卓,Harmony OS相当于⼩⽶的UI、华为的EMUI之间的关系;如果你对Linux
⽐较了解,OpenHarmony相当于Linux的内
核,HarmonyOS相当于红帽、Ubuntu等发⾏版。任何的⼚家都可以⽤OpenHarmony,但是其他⼿机⼚商应该是⽆法直接使⽤Harmony OS的;⾄少因为前者开源谁都可以⽆条件使⽤,后者是华为的需要和华为签订某些协议才有可能使⽤。
OpenHarmony是基础,我们前⾯讲到的底层⼤部分特性是OpenHarmony的特性,Harmony OS在OpenHarmony的基础上开发⽽来;OpenHarmony基本上没法直接使⽤(即使提供的界⾯也是最简陋、最基础的东西),只有在其基础上开发定制才能得到可以使⽤的HarmonyOS。OpenHarmony虽然⽀持万物互联(各种类型的设备,冰箱、热⽔器、洗⾐机、⾖浆机等),但是华为没有那么多的精⼒(以冰箱为例,华为对使⽤冰箱场景既不专业,也可避免与冰箱⼚商竞争)。华为在OpenHarmony基础上开发的HarmonyOS只涵盖⾃⼰的擅长的核⼼领域:⼿机、电视、穿戴设备等,⽽其他领域的万物协同、智慧应⽤就由各⾃⼚家来开发;⽐如美的基于OpenHarmony打造的美的物联⽹操作系统。这样就分⼯明确、彼此互补——共同构建⼀个真正万物互联的⽣态。感兴趣的同学可以思考⼀下美的没什么要做?可以简单的说让美的的设备使⽤更简单却更聪明。
因为美的物联⽹操作系统和HarmonyOS同源,所以数据协同、系统同步、互联等天⽣的容易;这才是鸿蒙最厉害,最有未来的地⽅。
以上内容是粗略对HarmonyOS开发内容⽐较重要部分的梳理,难免有理解不准和错误的地⽅;接下来就进⼊helloworld例⼦。
2、开发前准备(环境配置)
2.1例⼦概述
1、HarmonyOS⽀持多种开发模式和语⾔,具体包括eTS、Java、JS(⽀持传统JS代码和低代码量代码),官⽅提供了4个例⼦,这⾥就以JS为例,只有能跑起来⼊了门,看看都⼤同⼩异;
ubuntu使用入门教程2、最好有Java、JS、移动端其中之⼀的开发基础,如果没有建议从JS开始练习吧,应该最容易上⼿。
3、官⽹的HelloWold例⼦是A页⾯点击跳转到B页⾯;同时可以参考官⽹的HelloWorld例⼦ :
2.2环境准备
2.2.1 注册成为个⼈/团队开发者
在开发、创建、发布应⽤前,需要去华为开发者联盟官⽹注册成为开发者,可以选择个⼈开发者和企业开发者,权益有些差别;注册以后都必须实名认证,按着要求填即可,具体可以参考官⽅⽂档:
2.2.2 Devco Studio 开发⼯具下载及安装
1、去官⽹下载开发⼯具DevEco Studio 3,下载地址:
2、得到⼀个exe⽂件,启动下⼀步、下⼀步⾃动安装
3、配置开发环境
1)设置npm registry:第⼀次启动进⼊配置向导页⾯,DevEco Studio已经内置对应仓地址,这⾥点击下⼀步即可;
2)DevEco Studio向导指引开发者下载SDK,默认下载OpenHarmony SDK。剩下根据引导下⼀步、同意等即可完成安装。
但是默认的OpenHarmony SDK并不是我们需要的SDK,我们需要的是Harmony SDK。
在DevEco Studio的欢迎界⾯,点击欢迎页中的Configure(六边形的图标) > Settings > SDK Manager > HarmonyOS Legacy SDK,然后点击Edit设置HarmonyOS SDK存储路径。
注意:默认路径应该和上⼀步的OpenHarmony⼀样,必须要更改⼀下,不然OpenHarmony就会被删除。另外SDK以及其他的⼀些内容较⼤,不建议⽅C盘。
根据⾃⼰勾选的API版本和语⾔安装完成界⾯
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论