鸿蒙系统开发-斗破之鸿蒙抽奖系统
鸿蒙开发者
书山有路勤为径
关注一下学知识
前言
近两年随着贸易战、科技战的打响,以美国为首的西方国家对华为的打压日益严重。作为民族的高科技企业,华为也一直承载着民族复兴的科技重担。
尽管面临重重封锁,华为依旧艰难的走出了属于自己的发展道路。在操作系统领域,华为发布了鸿蒙系统,吸引了世界的目光。我们相信,以分布式技术为特色的鸿蒙系统,将在5G互联、智能化、数字化的未来大放异彩,走出属于中国的一条科技大道。
我们坚信,华为能胜,中国也能胜,眼前的困难只是民族伟大复兴路上的小小障碍。
01
HarmonyOS简介
HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,即鸿蒙系统能够支持并运行在手机、平板、智能穿戴、智慧屏、车机等多种终端设备。
鸿蒙系统目前提供了支持多种开发语言的API,供开发者进行应用开发。支持的开发语言包括Java、XML(Extensible Markup Language)、C/C++ 、 JS(JavaScript)、CSS(Cascading Style Sheets)和HML(HarmonyOS Markup Language)。
对于应用APP的开发来说,最主要的当然是大龄选手Java和统一世界的JS(JavaScript)了。
02
技术架构
所谓工欲善其事必先了解其底层原理,如若想要从事鸿蒙相关的开发工作,了解鸿蒙的技术架构体系就是非常有必要了的。
鸿蒙系统整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。
系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。HarmonyOS技术架构如下所示:
主要分为4层架构:
内核层:通过内核子系统为不同设备选用适合的OS内核,如Linux内核、LiteOS内核等。通过硬件驱动框架(HDF),提供统一外设访问能力和驱动开发、管理等功能。
系统服务层:是HarmonyOS的核心能力集合,通过框架层对应用程序提供服务。通过4大子系统集为开发者提供:系统基本能力(UI、运行时等)、基础软件服务(通知、电话、多媒体等)、增强软件服务(IOT、穿戴、智慧屏等)、硬件服务(生物识别、位置服务等) 4大类型的服务体系。
框架层:可以认为这一个层级是将系统服务层提供的功能的入口。通过框架层,我们可以使用系统服务层提供的4大子系统集。包括应用开发常见的:UI框架(Java、JS)、Ability框架、以及各种软硬件服务对外开放的多语言API。我们可以简单认为框架层,就是一个API集合,提供了各种API供我们去使用。
应用层:应用层包括系统应用和第三方非系统应用。
HarmonyOS的应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。FA在进行用户交互时所需的后台数据访问也需要由对应的PA提供支撑。基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。
03
应用开发的基础
进行HarmonyOS应用开发,首先要了解Ability如何使用。
Ability是应用的重要组成部分,是应用所具备能力的抽象。Ability分为两种类型,Feature Ability和Particle Ability。FA有UI界面,而PA无UI界面。
- Feature Ability,代表有界面的Ability,用于与用户进行交互。
- Particle Ability,代表无界面的Ability,主要为Feature Ability提供支持,例如作为后台服务提供计算能力,或作为数据仓库提供数据访问能力。
然后我们在来看一看,一个鸿蒙APP的基础构成:
如图,APP是由一个或多个HAP(HarmonyOS Ability Package)以及描述每个HAP属性的pack.info组成。HAP是Ability的部署包,一个HAP是由代码、资源、第三方库及应用配置文件组成的模块包,可分为entry和feature两种模块类型
除此之外,在APP中也包含其它类型的组件:
- 库文件:应用依赖的第三方代码,如:so、jar、bin等二进制文件,存放在libs目录
- 资源文件:APP中的图片、音频等,存放于resources目录下
- 配置文件(config.json),是应用的Ability信息,用于声明应用的Ability以及所需权限等
- pack.info:描述应用软件包中每个HAP的组成,由IDE编译生成,应用市场可以根据该文件进行拆包和HAP的分类存储。
04
应用开发工具
工欲善其事必先利其器,要开发鸿蒙APP,趁手的IDE是必须的。
华为官方提供了鸿蒙应用开发的IDE工具:HUAWEI DevEco Studio
HUAWEI DevEco Studio(以下简称DevEco Studio)是基于IntelliJ IDEA Community开源版本打造,面向华为终端全场景多设备的一站式集成开发环境(IDE),为开发者提供工程模板创建、开发、编译、调试、发布等E2E的HarmonyOS应用开发服务。通过使用DevEco Studio,开发者可以更高效的开发具备HarmonyOS分布式能力的应用,进而提升创新效率。
作为一款开发工具,除了具有基本的代码开发、编译构建及调测等功能外,DevEco Studio还具有如下特点:
在使用上,如果是熟悉jetbrains公司旗下的IDE如IDEA等,上手起来会觉得十分的亲切。
DevEco Studio支持Windows和macOS系统
下载请点击:
05
常见问题
Q:
IDE是否支持中文界面
暂时不支持
Q:
适合哪些开发者学习?
目前开发鸿蒙APP可以使用Java或者JS语言。哪一个更熟悉就用哪一个。
Q:
为什么选用了JavaScript?
JS统一世界(开个玩笑),目前很多的前端开发者使用JS语言进行开发,有很大的群众基础鸿蒙系统开发,利于鸿蒙系统的推广。同时JS开发者一般都会有一定的移动开发经验,学习鸿蒙开发也会更加的容易。
Q:
JS和Java是主流开发语言?
针对应用开发,Java和JS是主流开发语言。
对于设备开发者,鸿蒙系统还支持C和C++
Q:
为什么选用了JavaScript?
JS统一世界(开个玩笑),目前很多的前端开发者使用JS语言进行开发,有很大的群众基础,利于鸿蒙系统的推广。同时JS开发者一般都会有一定的移动开发经验鸿蒙系统开发,学习鸿蒙开发也会更加的容易。
Q:
前端上手难度大不大?
不难,兼容标准的HTML5和CSS的语法
Q:
鸿蒙系统是否支持PC?
目前鸿蒙系统暂时不支持电脑端安装使用。
暂时没有适配PC系统的计划。
Q:
支持Python开发吗?
No
Q:
和安卓的区别?
作为移动操作系统,大体上是差不多的。不过鸿蒙系统比安卓系统多出了分布式(多场景)的能力。支持多设备,一次开发、多端部署。不论是手机、手表、门锁、智能家居、车机等均可以进行定制
Q:
懂Java但未做过移动开发,上手难吗?
有一定的学习成本,需要学习移动开发的一些概念
Q:
安卓程序员转行做鸿蒙开发上手快吗?
一个字:快。移动开发的经验可以套用,和安卓在开发上大体比较接近
Q:
为什么选用了JavaScript?
JS统一世界(开个玩笑),目前很多的前端开发者使用JS语言进行开发,有很大的群众基础,利于鸿蒙系统的推广。同时JS开发者一般都会有一定的移动开发经验,学习鸿蒙开发也会更加的容易。
06
其他
关于当前可以获得OTA推送升级鸿蒙2.0手机开发者Beta版本的支持手机有:
HUAWEI Mate 30、 HUAWEI Mate 30 Pro、 HUAWEI P40、 HUAWEI P40 Pro和HUAWEI MatePad Pro。