版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块1认识鸿蒙操作系统单击此处添加文本具体内容汇报人姓名汇报日期1鸿蒙操作系统的发展概况012鸿蒙操作系统的技术特性023鸿蒙操作系统的体系架构03目录4小结04目录
小结04.
鸿蒙操作系统的体系架构03.
鸿蒙操作系统的技术特性02.
鸿蒙操作系统的发展概况01.1.掌握鸿蒙操作系统的技术发展脉络,理解其生态布局的战略意义。2.掌握鸿蒙操作系统三大技术特性的核心逻辑与应用场景。3.掌握鸿蒙操作系统体系架构中分层设计、功能划分与协同机制。知识目标1.能够结合行业数据与技术趋势,分析鸿蒙操作系统的生态发展现状与未来方向。2.能够分析鸿蒙操作系统四层体系架构图,并说明各层的核心功能与交互逻辑。技能目标1.强化对国家信创战略的认知,培养对国产操作系统生态发展的使命感与参与意识。2.培养严格遵循开发规范的习惯,在架构设计与技术选型中践行严谨、科学的研发态度。3.增强对新兴技术生态的适应能力,养成持续追踪前沿技术动态的学习意识。素质目标学习目标1鸿蒙操作系统的发展概况011鸿蒙操作系统的发展概况华为鸿蒙操作系统主要面向C端用户,是支撑华为"1+8+N"产品线的核心平台。在该战略中,"1"代表手机主入口,"8"涵盖华为自主研发的平板、PC、智慧屏、智能手表、耳机、AI音箱、车机及AR/VR设备。通过手机的核心优势向外辐射,生态链中的"N"则由合作伙伴提供的智能设备构成,依托以用户为中心的全场景布局,覆盖家庭场景下的视听娱乐、社交互动、教育健康等解决方案,有效满足消费升级需求。2020年9月10日,推出HarmonyOS2.0重大升级。添加标题2022年6月15日,开放HarmonyOS3.0Beta公测。添加标题2023年3月31日,AITO问界全系完成HarmonyOS3.0车载系统OTA更新。添加标题2024年1月18日,发布HarmonyOSNEXT鸿蒙星河版(开发者预览版),生态设备达8亿台。添加标题2019年8月9日,华为发布鸿蒙OS1.0,宣布开源。添加标题2020年12月,开放HarmonyOS2.0Beta,启动应用生态适配。添加标题2022年7月27日,发布HarmonyOS3.0;搭载2.0设备超3亿,Connect产品发货1.7亿。添加标题2023年8月4日,发布HarmonyOS4.0,新增元服务及方舟引擎。添加标题01020304050607081鸿蒙操作系统的发展概况HarmonyOS的发展历程2021年9月30日,OpenHarmony3.0LTS发布。2020年9月10日,OpenHarmony1.0发布。2024年9月29日,OpenHarmony5.0Release发布,API12Release。2021年6月1日,OpenHarmony2.0Canary发布。2023年6月3日,OpenHarmony4.0Beta1发布,API10。2023年10月26日,OpenHarmony4.0Release发布,API10。2024年3月30日,OpenHarmony4.1Release发布,API11Release。OpenHarmony发展历程:1鸿蒙操作系统的发展概况1鸿蒙操作系统的发展概况思政小课堂:华为鸿蒙操作系统的诞生与发展深刻诠释了“关键技术必须牢牢掌握在自己手中”的时代命题。2019年,面对美国技术封锁与安卓系统“断供”危机,华为并未退缩,依托多年技术积累全力研发鸿蒙系统。其首创的分布式架构突破单一设备限制,实现跨终端无缝协同,既避免了受制于人的“卡脖子”风险,更开辟了万物互联的产业新赛道。鸿蒙以开放协作精神,联合国内超千家企业共建生态系统,带动国产软硬件产业链转型升级。这不仅彰显了“科技自立自强”的国家战略定力,更启示青年学子:唯有以创新为刃、以合作为盾,才能在全球化博弈中突破封锁,筑牢民族科技发展的战略基石。2鸿蒙操作系统的技术特性022.1硬件互助,资源共享硬件互助是鸿蒙智联生态设备的一个关键特性,它指的是多种设备之间能够实现硬件互助、资源共享,从而实现跨终端无缝协同体验。这一特性依赖于HarmonyOS的分布式设备虚拟化、分布式数据管理、分布式任务调度等关键技术,使得不同设备可以根据消费者不同需求、不同场景协同联动,形成超极终端,实现硬件资源的共享和优化利用。例如,通过硬件互助,具有高算力的设备可以协助低算力的设备完成计算密集型任务,从而提高整体系统的效率和性能。2.1硬件互助,资源共享分布式软总线总线作为计算机的核心拓扑架构,承担着信息交换主干通道的关键职能,通过数据/地址/控制信号的系统化传输路径实现CPU、内存与I/O设备的有机整合。在微型计算机体系结构中,总线以三层结构(系统总线/扩展总线/设备总线)在物理层面串联主机核心模组,外设则经由标准化接口协议接入总线网络。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。分布式软总线是多设备终端的统一基座,为设备间的无缝互联提供了统一的分布式通信能力,能够快速发现并连接设备,高效地传输任务和数据。相较于传统计算机中的硬总线,鸿蒙操作系统中的分布式软总线是一条虚拟的、“无形”的总线。可以连接同处于一个局域网内部的所有鸿蒙设备,并且具有自发现、自组网、高带宽、低时延等特点。2.1硬件互助,资源共享分布式软总线2.1硬件互助,资源共享分布式数据管理鸿蒙操作系统通过引入分布式数据管理框架,实现了数据的分布式存储和同步。该框架包括数据分片、数据同步、数据一致性等核心功能。数据分片可以将大规模的数据切分成小块,分配到不同的设备上进行存储和处理。数据同步可以确保不同设备之间的数据实时同步,保持数据的一致性。2.1硬件互助,资源共享分布式数据管理分布式任务调度通过统一的操作系统实现多设备间的无缝连接和协同工作。分布式任务调度是鸿蒙操作系统核心特性之一,用于优化和管理在多个设备之间分布式计算任务的执行。分布式任务调度是在多个节点或设备上分配和管理计算任务的过程,这种调度机制使得不同设备可以协同工作,共享资源,从而提升整体系统的性能和效率。系统能够根据不同设备的能力、负载和网络状况,智能地分配和调度任务。2.1硬件互助,资源共享2.1硬件互助,资源共享分布式任务调度2.1硬件互助,资源共享设备虚拟化分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,将周边设备作为手机能力的延伸,共同形成一个超级虚拟终端。2.2一次开发,多端部署鸿蒙操作系统创新性地推出了“一次开发,多端兼容”的解决方案,凭借一套核心设计,即可快速构建出适用于多设备的应用,显著提升开发效率,降低跨平台适配的复杂度。鸿蒙操作系统使得开发者能够使用一套代码基础来构建能在多种不同设备上运行的应用程序,这些设备包括智能手机、平板电脑、智能手表、智能电视、汽车等。2.2一次开发,多端部署在2023年华为开发者大会上,华为展示了其自研应用“玩机技巧”基于这一理念的优秀实践。“玩机技巧”作为华为终端用户常用的应用,通过“一次开发,多端兼容”,部署在手机、折叠屏、平板等多设备上,不仅获得了体验提升,开发代码量也下降了约40%。支持各组件的选择(组件可有可无):根据硬件的形态和需求,可以选择所需的组件。支持组件内功能集的配置(组件可大可小):根据硬件的资源情况和功能需求,可以选择配置组件中的功能集。例如,选择配置图形框架组件中的部分控件。支持组件间依赖的关联(平台可大可小):根据编译链关系,可以自动生成组件化的依赖关系。例如,选择图形框架组件,将会自动选择依赖的图形引擎组件等。2.3可分可合,弹性部署3鸿蒙操作系统的体系架构033鸿蒙操作系统的体系架构3.1内核层微内核架构鸿蒙操作系统采用了前沿的微内核架构,其核心设计极为精炼,专注于提供诸如进程调度、内存分配等基本系统服务,旨在实现极致的安全防护和极低的延迟反应。这一革新性的架构方法,颠覆了传统操作系统宏内核的集成式服务模式,代之以高度灵活且彼此独立的模块化结构。3.1内核层多内核机制除了微内核,还包括Linux宏内核、LiteOS等,以适应不同设备的需求,提供丰富的硬件驱动支持。鸿蒙操作系统所采用的多内核机制,是一种高度灵活且前瞻性的设计策略,旨在通过整合不同类型的内核来满足广泛设备与应用场景的需求。3.2系统服务层该层包含以下几个部分:(1)系统基本能力子系统集:为分布式应用在多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、公共基础库、多模输入、图形、安全、AI等子系统组成。(2)基础软件服务子系统集:提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX(DesignForX)、MSDP(组播源发现协议)等子系统组成。(3)增强软件服务子系统集:提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。(4)硬件服务子系统集:提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。3.3框架层鸿蒙操作系统的框架层(FrameworkLayer)是其架构中的重要组成部分,它直接服务于应用开发,为开发者提供了创建和运行应用程序的基础设施。框架层的设计旨在简化开发流程,提高代码复用率,并确保应用能够在多种类型的设备上保持一致性和互操作性。3.4应用层鸿蒙操作系统的应用层(ApplicationLayer)是整个系统架构中最接近用户的层次,它直接面向最终用户,包含了所有用户可见的应用程序和服务。这一层主要由系统应用和第三方应用组成,为用户提供丰富的功能和服务体验。4小结044小结鸿蒙操作系统对于我国信息技术创新领域具有重大意义。本模块介绍了鸿蒙操作系统的2个分支:HarmonyOS和OpenHarmony,分别介绍了他们的发展历程。为了应对多设备融合场景下的多重挑战,鸿蒙操作系统在新的技术特性上作出重大突破。通过“硬件互助,资源共享”使得不同设备可以根据消费者不同需求、不同场景协同联动,形成超极终端,实现硬件资源的共享和优化利用;通过“一次开发,多端部署”,使得开发者能够使用一套代码基础来构建能在多种不同设备上运行的应用程序;通过“可分可合,弹性部署”,使得多种终端设备按需弹性部署,能够适配不同类别的硬件资源和功能需求。本模块最后介绍了鸿蒙操作系统的体系架构,这种分布式架构将各种设备(如手机、平板电脑、智能家居设备等)通过互联网连接起来,实现数据的共享与交换。鸿蒙操作系统遵循分层架构设计原则,从下向上分为4层:依次为内核层、系统服务层、架构层和应用层。谢谢模块2搭建鸿蒙开发环境5鸿蒙设备模拟器056鸿蒙应用的工程目录结构067调试鸿蒙应用程序078小结08目录1下载和安装DevEcoStudio012第一个Harmony工程023DevEcoStudio的操作03044SDK设置1.掌握DevEcoStudio开发工具的下载、安装与配置流程,熟练开发工具的操作。2.掌握鸿蒙应用的工程目录结构,熟悉SDK设置、设备模拟器的使用。3.掌握鸿蒙应用开发的调试技术。知识目标1.能够独立完成DevEcoStudio开发环境的搭建与配置。2.能够熟练使用DevEcoStudio创建HarmonyOS工程,并能熟悉代码编辑和项目管理。3.能够使用设备模拟器调试应用程序,结合日志信息、断点调试技术定位代码问题。技能目标1.强化规范操作意识,在开发环境搭建与工程管理中培养严谨的工具使用习惯。2.提升独立解决问题能力,在调试和模拟器应用场景中锻炼逻辑分析与故障排查思维。3.形成工程化实践素养,树立分层管理、模块化设计的研发理念。素质目标学习目标1下载和安装DevEcoStudio011.1下载/consumer/cn/download/下载最新版的DevEcoStudio。注意在下载前需要注册并登录成为华为官方开发者,方可下载。1.1下载登录成功后,进入下载页面。未来华为官方随着鸿蒙操作系统版本的更新,DevEcoStudio也会更新得更为频繁,但是大体上不同版本的DevEcoStudio变化不大,对于开发者来说的主体功能也趋于稳定。1.1下载DevEcoStudio的安装要求参数建议说明操作系统Windows1064位、Windows1164位内存16GB及以上硬盘100GB及以上,笔者建议固态硬盘1.2安装根据DevEcoStudio安装向导,选择安装目录点击“下一步”,进入“安装选项”设置,勾选“创建桌面快捷方式DevEcostudio”表示在windows桌面上将创建快捷方式,以方便开发者打开开发工具。勾选“addHDC_SERVER_PORTtoEnviroment”表示设置hdc工具端口号,主要目的是方便使用hdc工具对鸿蒙设备进行调试。1.2安装HDC(OpenHarmonyDeviceConnector)是为鸿蒙开发/测试人员提供的用于设备调试的命令行工具,类似Android端的ADB工具。进入正式安装,这个过程要花一些时间,请耐心等待。1.3首界面及配置首次打开DevEcoStudio,可以看到图所示。默认选择“Donotimportsettings”,表示不要导入配置,我们可以自行配置。点击“ok”按钮。1.3首界面及配置进入阅读开发工具协议界面,如图2-11所示,点击“Agree”,表示同意协议。1.3首界面及配置进入DevEcoStudio的“欢迎界面”,如图所示。左侧列表“Projects”默认被选中,此时右侧显示的是关于工程的3种操作方法:“CreateProject(创建工程)”、“Open..(打开工程)”、“GetfromVCS(从版本控制软件获取工程)”。1.3首界面及配置左侧列表“Customize”表示定制开发工具,开发者可以根据自己喜好设置开发工具,如图所示。“ColorTheme”表示设置主题,可以设置不同颜色主题,如亮色主题、暗色主题(默认)。“Accessibility→IDEfont”表示设置易用性→界面字号。“Keymap”表示设置键盘方案,默认是“Windows”方案。1.3首界面及配置左侧“Diagnose”表示诊断当前开发环境的可用性,如图所示。在右侧的列表中“CheckItem”表示检测项。“Result”表示检测是否通过,打勾表示通过检查,需要所有检测项都打勾才能正常使用DevEcoStudio。“DescriptionorSuggestion”表示当前检测项的检查结果描述。可以看到检测的项目有:操作系统版本、内存大小、互联网连接情况、ohpm可访问情况、Git版本管理软件安装情况。2第一个Harmony工程022第一个Harmony工程下面我们来创建第一个Harmony工程。按照每个编程课程的惯例我们来实现一个“helloworld”在鸿蒙手机界面上。在DevEcoStudio的欢迎界面点击“CreateProject”按钮,如图所示。2第一个Harmony工程进入“CreateProject”对话框后,我们按照图所示,分步操作。第一步,选择“AbilityTemplate”(能力模板),当前模板分为两类:Application(应用)和AtomicService(元服务),这里我们选择Application;第二步,从“TemplateMarket”(模板市场)中选择“EmptyAbility”(空能力模板),鼠标经过该模板时可以看到这个模板适用于哪些设备,这些设备以图形形式展示,如图所示,表示当前工程适用于手机、平台、PC、车机设备。除了空模板外,还有其他模板,如C++原生开发模板、Library库文件开发等;第三步,点击“next”进入配置工程环节。2第一个Harmony工程在“配置工程”界面中,如图所示。“Projectname”表示工程名称,通常工程名称要表达出工程开发的内容,如“HelloWorld”表示学习开发第一个工程。2第一个Harmony工程“Bundlename”表示包名称,一般采用域名倒置的规则来编写,且只能小写,一般需要具有唯一性,在App安装到鸿蒙操作系统后,将注册到应用管理中。这里“com.example.helloworld”中“com”表示组织类型为公司,“example”表示组织名称,“helloworld”表示应用名称。“Savelocation”表示工程文件保存的位置,没有特殊要求,可以保持默认即可。“CompatibleSDK”表示当前项目向下兼容的SDK版本号。HarmonyOS4.0.0对应API10,HarmonyOS4.1.0对应API11,HarmonyOS5.0.0对应API12。2第一个Harmony工程“Modulename”表示模块名称,“entry”表示入口模块,没有特殊要求,可以保持默认即可。“DeviceType”表示适配的设备类型,后面列举了Phone(手机)、Tablet(平台)、2in1(二合一)、Car(汽车),勾选后表示开发的应用可以适配到这些设备。其中,2in1设备融合了屏幕触摸和键盘鼠标的使用状态,屏幕尺寸较大,需要有固定的工作台,键盘鼠标和触控板是优先交互手段,既可以办公也可以娱乐。2第一个Harmony工程点击“Finish”按钮,进入DevEcoStudio开发界面。首次创建的工程会从网络下载相关的依赖,请保持网络连接正常,等待右下角进度条完成即可。如图所示。。3DevEcoStudio的操作043DevEcoStudio的操作下面我们来认识一下DevEcoStudio的界面。如图开发界面的各个区域。3.1菜单栏菜单区域提供了DevEcoStudio的所有功能。“File”菜单的主要功能有:创建工程(New)、打开工程(Open...)、配置DevEcoStudio(Settings...)、工程结构(ProjectStructure...)、同步刷新工程(SyncandRefreshProject)、清除缓存(InvalidateCache)。3.1菜单栏打开“File”→“配置DevEcoStudio(Settings...)”菜单,进入配置界面,如图所示。默认进入的是“Appearance”选项,此处用于设置DevEcoStudio的外观。Theme用于设置主题,开发者可以选择亮色主题和暗色主题。Zoom表示界面字号的放大倍数,默认是100%。还可以通过“Usecustomfont”设置用户喜欢的字体、字号。UIOptions表示设置开发工具的一些操作习惯,如是否合并菜单和窗口标题、是否记忆用户的菜单操作等。3.1菜单栏OpenHarmonySDK用于设置开发工具依赖的SDK,可以实现SDK管理。后面我们重点来描述。Keymap用于设置DevEcoStudio的操作快捷键。Editor用于设置编码区域的外观和操作习惯。例如设置使用鼠标滚轮滚动可以改变字号大小。其中的Font选项用于设置代码区域字体、字号、行高。ColorScheme用于设置代码颜色方案,如注释颜色、选中的变量名颜色、未引用的变量颜色等。“Edit”菜单用于编码过程中针对文本字符的各项操作,如复制、粘贴、撤销、重做、搜索、替换、缩进,通常我们在编码时通过各类快捷键完成操作。“View”菜单用于管理开发界面中各个外观、功能面板和窗口。3.1菜单栏“Navigate”菜单用于对项目内文件的各项操作,如导航到上一个文件、导航到下一个文件,搜索文件、类、符号、文本等。“Code”菜单用于编码过程中针对代码逻辑的各种操作,例如重写方法、实现方法、代理方法、自动生成代码、注释代码、代码逻辑块之间的导航等。“Refactor”菜单表示重构代码,如修改文件名、修改变量名、修改类名、迁移包和类等。“Run”菜单表示运行工程或模块的各种相关操作,如运行模块、调试模块、运行项目、调试项目、附加调试器到正在运行的进程等。“VCS”(“Git”)菜单用于代码的版本控制的各项操作。例如设置当前工程代码的版本控制软件为Git,其菜单名称就会由“VCS”切换为“Git”。菜单下就是Git的相关操作。3.1菜单栏“Window”菜单表示当前开发工具的窗口管理。例如窗口布局、激活工具窗口、后台任务运行时是否显示、多个工程不同窗口之间的切换等。“Help”菜单提供了一些有关DevEcoStudio的操作链接、当前IDE的版本信息查看等功能。3.2工程目录管理器工程目录管理器非常像Windows操作系统的资源管理器,展示了整个工程的目录结构,通常一个工程可以包含多个模块,其中包含了idea开发工具的配置文件、工程全局配置文件、模块代码、各类配置文件。工程目录面板提供了多个视图方式展示工程,如图所示。系统默认提供的是“Project”视图,此种视图能较为清晰的展示工程目录和文件结构。开发者可点选工程目录中的任意文件,该文件将展示在右侧代码编写区域,开发者可以对其进行修改。如图所示。3.3代码编写在代码编写区域可以查看和编写对应文件的代码字符。DevEcoStudio支持使用多种语言进行应用/服务的开发,包括ArkTS、JS和C/C++。代码编写区域左侧的“1,2,3……”表示代码的行号,便于定位代码位置。在编辑区域中,用户可以按住Ctrl键同时,鼠标左键单击代码中引用的类、方法、参数、变量,光标将跳转到定义处。也可以点击类、变量的定义处,如果只有一处引用,则直接跳转到引用处;如果多处引用,会弹窗提供要查看的引用位置。如图所示。3.3代码编写使用代码格式化功能时,您可以使用快捷键Ctrl+Alt+L。当编辑区域代码过多时,为了方便阅读代码区域也支持代码折叠和展开。对于选中的代码块或在代码光标所在行,使用快捷键Ctrl+/可以进行注释。再次使用快捷键Ctrl+/可以取消注释。3.3代码编写可以打开面板“Structure”查看当前代码区域文件的代码结构树,其中列举了变量、函数、方法等,点选它们可以直接跳转到对应代码,可以将代码结构树看成是代码文件的目录。鼠标可以悬停在代码中类、接口、组件上,会迅速弹窗显示当前类、接口、组件的API信息,点击弹窗右下角的“ShowinAPIReference”。可以快速查看详细的API文档,了解API的使用方法,如图所示。3.4工具栏DevEcoStudio把常用的使用高频的功能放置在工具栏中。①表示Product信息,可以查看工程的基本信息。②表示工程中打算运行的模块,当前选中的是entry模块,一个工程允许多个模块,这些模块可以是可运行的程序,也可以是创建的库模块。③表示可以使用的设备列表,NoDevices表示当前没有可用的设备,开发者可以建立设备或连接设备,建立好的设备或连接好的设备会显示在下拉列表中。其中有不同的分类:OpenHarmonyDevices、HarmonyOSDevices、HuaweiPreviewer,还包含了设备管理器(DeviceManager)。使用设备管理器可以创建设备模拟器。3.4工具栏④工具按钮依次表示运行(Run)、调试(Debug)、执行覆盖率测试(Run‘Entry’withCoverage)、应用改变(ApplyChanges)、附加调试器到进程(AttachDebuggertoProcess)、停止(Stop)。⑤当VCS选择Git作为版本管理软件时,工具栏则显示的Git的操作命令:UpdateProject(更新工程相当于pull命令)、Commit(提交)、Push(上推)、ShowHistory(显示代码提交历史)、Rollback(回滚)。⑥工程结构(ProjectStructure),可查看工程的SDK版本、依赖项、签名信息(用于工程打包发布);也可以查看工程中模块(Module)信息,通常一个工程可以包含多个模块。⑦全局搜索,可以通过弹出的窗口对整个工程内所有文件进行搜索。⑧IDE和工程的配置,可以通过该按钮对IDE进行配置等同于菜单“File”→“Settings”,也可以直接设置IDE的主题、IDE的快捷键、IDE的插件。⑨登录华为账号,在选择远程模拟器和应用程序打包时需登录华为开发者账号。3.5常用功能面板在DevEcoStudio界面的下半部分为开发工程中常用的功能面板:版本控制(VersionControl)、问题(Problems)、命令终端(Terminal)、日志(Log)、分析器(Profiler)、构建(Build)等。版本控制(VersionControl)面板:以可视化的方式展示了使用Git版本控制软件管理代码的基本情况,包含提交历史、本地仓库、远程仓库等基本信息。如图2-34所示。3.5常用功能面板问题(Problems)面板:在工程构建、代码编写、编译过程中出现各类问题将集中展示在这个面板中,便于开发者进行错误定位。如图所示。3.5常用功能面板命令终端(Terminal)面板:类似于windows操作系统下的PowerShell,用于执行各类终端命令。如为当前模块安装第三方依赖使用命令“ohpminstall@ohos/axios”。3.5常用功能面板日志(Log)面板:调试程序时,可以使用console.log()、()等函数向控制台输出日志,便于程序运行时观察变量的状态值。3.5常用功能面板分析器(Profiler)面板:当应用程序或服务遭遇性能瓶颈,常见的症状包括反应迟钝、动画延迟、运行停滞、程序崩溃以及过度消耗电量。为了预防这些状况的发生,开发人员应当运用性能分析工具来识别哪些资源(如CPU、RAM、GPU、网络连接和电池)正被过度使用。DevEcoStudio内嵌了Profiler这一性能监控工具,它能提供即时的性能指标数据,并以图表形式直观展示,使开发者能够迅速掌握应用程序或服务在CPU使用率、内存分配、网络带宽和电池能耗等方面的详细信息。使用分析器时,需要使用USB连接真实的鸿蒙设备。3.5常用功能面板构建(Build)面板:当第一次创建工程时DevEcoStudio会在Build面板中Sync选项卡中显示构建进度和构建信息。当工程编译时会在Build面板中BuildOutput选项卡中显示编译过程输出的信息和编译进度。4SDK设置044SDK设置SDK,SoftwareDevelopmentKit的缩写,中文意思就是“软件开发工具包”,第一次安装DevEcoStudio后,为了保证DevEcoStudio正常使用,需要正确安装和设置SDK。打开菜单“File”→“Settings”。找到OpenHarmonySDK,如图所示。点击右侧的Edit,安装OpenHarmonySDK,请保持网络连接畅通。4SDK设置OpenHarmonySDK设置完毕5鸿蒙设备模拟器055鸿蒙设备模拟器为了让DevEcoStudio创建的代码能运行起来,我们还需要一个可以运行程序的手机,可以使用DevEcoStudio创建一个鸿蒙设备模拟器。打开工具栏中“NoDevices”的下拉列表,选择“DeviceManager”。如图所示。5鸿蒙设备模拟器在DeviceManager窗口左侧列举了设备类型:全部(All)、手机(Phone)、折叠屏(Foldable)、平板(Tablet);窗口右侧列举了已经创建的鸿蒙设备模拟器,描述了设备类型(Type)、设备名称(Name)、像素密度(Density)、版本(Version)、CPU架构(CPU/ABI)、所占磁盘空间(SizeonDisk)、设备状态(Status)、对设备的操作行为(Actions)。5鸿蒙设备模拟器点击右下角的“NewEmulator”按钮创建一个全新的模拟器。进入模拟器操作系统的选择界面,如图所示。点击向下的箭头图标,开始下载模拟器的操作系统镜像文件,并安装到模拟器中,如图所示。5鸿蒙设备模拟器进入模拟器配置界面如图所示。在当前窗口可以设置模拟器的名字、设置模拟器的运行内存、设置模拟器的存储空间。通常运行内存至少要在4GB以上,如果开发者电脑配置的内存较大,可以将运行内存适当设置大一些。点击“Finish”按钮,至此我们创建了一个全新的鸿蒙设备模拟器。5鸿蒙设备模拟器回到DeviceManager界面。在界面中找到“Actions”列,点击向下的箭头,展开下拉菜单,如图所示。图中绿色播放器状按钮表示运行模拟器,也是最常用的按钮。WipeUserData表示擦除模拟器中用户数据,当模拟器用段时间后所占磁盘空间会越来越大,使用该功能可以让模拟器回到一个全新的状态,当然用户的数据也会丢失,开发者可以根据需要操作;ShowonDisk表示查看模拟器文件的磁盘位置;Generatelogs记录设备运行的日志;Delete删除当前模拟器。5鸿蒙设备模拟器我们可以将第一次创建的“HelloWorld”工程运行到当前模拟器。点击工具栏中“run‘Entry’”按钮,看到运行效果如图所示。6鸿蒙应用的工程目录结构066鸿蒙应用的工程目录结构6鸿蒙应用的工程目录结构bundleName:表示工程的包名称,工程创建时开发者可以进行设置,一般为域名倒置。vendor:开发者名称,一般可为公司名称。versionCode:当前应用的内部版本号。versionName:三段式版本号,应用对外发布时使用。icon:应用程序图标,将会影响应用在“系统配置”→“应用管理”中的图标。这里引用了工程资源中的图片。label:应用程序名称,将会影响应用在“系统配置”→“应用管理”中的名称。这里引用了工程资源中的文本。1.AppScope→app.json56鸿蒙应用的工程目录结构2.entry工程下的模块,且为入口模块,当前工程中代码、资源等内容都放置在这个目录下,后续的开发工作编写代码和使用的资源都会在这个目录下进行。3.entry→build主要包含了代码和资源编译后自动生成的文件,其中的.hap文件将会被安装到模拟器中。4.entry→src主要包含了代码和资源文件,也包括测试文件。5.entry→src→main→ets主要用于存放ArkTS源码和TypeScript源码。6.entry→src→main→ets→entryability用于存放应用或服务的入口文件EntryAbility.ets。6鸿蒙应用的工程目录结构7.entry→src→main→ets→pages用于存放应用或服务的页面文件。8.entry→src→main→resources用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。9.entry→src→main→resources→base→profile→main_pages.json用于描述当前模块中包含的页面,所有新建的页面都要在此登记注册,且区分大小写。6鸿蒙应用的工程目录结构10.entry→src→main→module.json5Stage模型模块配置文件,主要包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。具体参见教材。11..gitignore这个文件是用作将指定的目录或文件排除在版本控制之外,属于git版本控制软件的一部分。12.entry→build-profile.json5(模块级别)描述了当前模块的编译信息,可以设置buildOption、targets等。具体参见教材。13.entry→hvigorfile.ts适用于hvigor构建工具使用的模块级编译构建任务的脚本。6鸿蒙应用的工程目录结构14.hvigorhvigor构建工具的配置文件。15.oh_modules当前工程依赖的模块。16.build-profile.json5(工程级别)描述了配置信息,包括签名、产品配置等。具体参见教材。17.oh-package.json5(工程级别)用于配置工程的依赖项。具体参见教材。7调试鸿蒙应用程序077.1调试界面传统APP开发中最麻烦的就是界面开发,需要开发者将界面编写完毕后发布到模拟器才能看到结果。DevEcoStudio提供了Previewer面板,可以进行实时预览开发者开发的界面,其优点:第一,不用等界面开发完毕才能看到结果;第二,不用编译发送到模拟器,直接预览,大大节约开发时间。【例2-1】使用Previewer实时预览面板。7.2使用日志工具当程序正在运行时,为了跟踪程序的运行过程以及变量不同时期的不同状态值,我们可以使用HarmonyOS开发框架提供的hilog对象在Log面板中输出日志,从而了解程序运行过程。hilog日志分为5个级别,越往下去输出的日志信息级别越高:debug:调试信息;info:普通信息;warn:警告信息;error:错误信息;fatal:致命错误信息。以()为例,其函数的定义为:7.2使用日志工具function(domain:number,tag:string,format:string,...args:any[]):voiddomain表示服务域,是一个16进制整数范围从0x0到0xFFF;tag表示日志标签,在Log面板中用于日志过滤;format表示日志的格式字符串;args表示日志参数。【例2-2】使用()方法输出日志并在Log面板中查看日志。步骤1:打开ets/entryability/EntryAbility.ets文件,可以看到第9行、第13行、第18行、第25行等都使用了日志输出函数(),且第二个参数tag值为“testTag”。7.2使用日志工具步骤2:运行app,待程序完全在模拟器上运行起来后,打开Log面板,如图所示。7.2使用日志工具①表示选择跟踪的设备;②表示选择过滤方式,默认是显示选中的app;③选中应用程序相关的包名;④输出日志的级别,默认为Debug,级别最低,表示显示所有级别日志,这里的原则是高于或等于过滤条件设置的日志级别的日志都将显示在下面;⑤输入步骤1中“testTag”表示下面日志将按tag过滤。经过多个条件的设置,我们就看到了图中的输出结果。在Log面板中可以看到日志输出的时间、日志标签、进程id、日志级别(其中I表示info)、日志描述。7.3设置断点与Debug模式DevEcoStudio提供了非常好用的断点调试工具。开发者可以在代码编辑行左侧点击所在行设置断点,可以在工具栏点击“Debugapp”按钮启动Debug模式调试程序。【例2-3】为了演示Debug模式调试,这里我们在界面上设置一个按钮,并每点击一次按钮上数字就增长1。关于相关语法我们将在下一章讲解,这里只关注Debug模式的使用。步骤1:打开ets/pages/Index.ets,编写如下代码。7.3设置断点与Debug模式7.3设置断点与Debug模式步骤3:使用Debug模式运行app,如图所示。7.3设置断点与Debug模式步骤4:断点跟踪变量count的变化,我们在模拟器中点击按钮,程序会在第14行停下来,如图所示。可以看到程序执行到14行暂停运行。DevEcoStudio开发工具提供了实时的变量值提示,在图2-60中鼠标悬停在count上,可以看到提示当前count值为0,也能看到其他变量的值提示。在底部面板可以看到Debug面板已经被激活,①resume表示程序继续往下执行,如遇到新的断点又会自动停下,7.3设置断点与Debug模式如果没有断点程序则继续往下执行直到结束。②stop表示终止程序执行。③stepover表示逐行往下执行,便于更细致观察代码执行情况。④stepinto表示遇到调用的方法将进入方法内部逐行执行,便于观察定义的方法内部执行情况。⑤stepout表示进入方法内部后,再跳出方法返回到调用方法处。⑥runtoCursor表示代码继续运行到光标处。在Debug的面板中可以看到有两块区域:线程切换区域和变量跟踪区域。线程切换区域用于程序中包含多个线程的情况,开发者需要切换不同线程查看不同线程中变量状态。变量跟踪区域用于展示程序运行过程中各种变量的状态值,从而诊断程序运行的逻辑正确性。7.3设置断点与Debug模式思政小课堂:调试鸿蒙应用程序时,“设置断点”不仅是技术操作,更映射出“问题导向、脚踏实地”的实践哲学。开发者在Debug模式中反复追溯代码逻辑、逐行定位隐患的过程,恰似青年直面成长中的深层矛盾——唯有以“断点”截停浮躁,冷静分析系统症结,才能剥离表象直击本质。华为鸿蒙团队在系统研发中曾因分布式交互的复杂性遭遇调试困境,工程师们不惧千万次断点跟踪,最终打破跨国技术垄断。这启示我们:创新突破的密钥,既需“代码级”的细致思维,更需“系统级”的全局韧性。技术攻关与人生精进同理,当以耐心和理性为调试工具,在破与立中锤炼解决问题的中国智慧。8小结088小结本模块首先讲解了下载和安装DevEcoStudio,重点剖析了安装过程中如何使用诊断工具解决安装过程中可能出现的问题。完成开发环境搭建后,通过创建首个Harmony工程“HelloWorld”,系统展示了开发工具的基础操作逻辑,为开发者提供了快速入门路径。为提升DevEcoStudio的使用效率,后续内容深入介绍了DevEcoStudio的菜单、工程目录管理器、代码编写区以及工具栏和常用工具面板。为了让开发者正确地使用OpenHarmony的各个版本,本模块还详细介绍了SDK的设置,通过SDK的管理,开发者可以为自己的工程设置正确的版本号,保证开发的应用程序具有良好的兼容性和稳定性。检验一个鸿蒙应用程序能否运行的最终方法就是让程序运行在鸿蒙设备模拟器上,本模块详细介绍了设备模拟器的创建、运行、擦除数据、删除等操作。此外,还详细地介绍了Harmony工程目录的结构,以便让开发者能够正确地理解和修改工程中每个文件,从而正确地开发鸿蒙应用程序。最后,本模块详细地介绍了鸿蒙应用程序的3种调试方法:调试界面、使用日志工具、断点调试。8小结单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简意赅的阐述您的观点。您的内容已经简明扼要,字字珠玑,但信息却千丝万缕、错综复杂,需要用更多的文字来表述;但请您尽可能提炼思想的精髓,否则容易造成观者的阅读压力,适得其反。正如我们都希望改变世界,希望给别人带去光明,但更多时候我们只需要播下一颗种子,自然有微风吹拂,雨露滋养。恰如其分的表达观点,往往事半功倍。当您的内容到达这个限度时,或许已经不纯粹作用于演示,极大可能运用于阅读领域;无论是传播观点、知识分享还是汇报工作,内容的详尽固然重要,但请一定注意信息框架的清晰。谢谢模块3ArkTS语言汇报人姓名5小结05目录1ArkTS简介012ArkTS的基本知识023ArkTS的类和接口03044模块化1.掌握ArkTS语言特性及其与TypeScript、JavaScript的关系。2.掌握ArkTS基础语法规则。3.掌握面向对象编程机制及模块化开发的实现方式。知识目标1.能够运用ArkTS语法规则独立编写基础代码。2.能够基于类和接口进行面向对象开发,设计灵活可扩展的代码结构。3.能够通过模块化的导出、导入机制管理工程代码。技能目标1.培养规范性编码意识,提升代码可读性与健壮性。2.建立模块化设计思维,在工程实践中培养结构化编程素养。3.提升技术迁移能力,基于TypeScript/JavaScript知识快速适应ArkTS语言,形成跨语言技术学习路径。素质目标学习目标1ArkTS简介011ArkTS简介ArkTS语言是一款面向对象的编程语言,华为公司于2020年发布。它具备了目前很多主流终端设备开发语言像Dart、Kotlin、Swift等编程语言的特性,支持多范式编程,包括面向对象编程、函数式编程和响应式编程。ArkTS语言的主要特点是语法简洁、易于学习、理解和使用。它使用类和对象来组织代码,支持类继承和多态性,所以它非常适合开发大型、复杂的软件系统。ArkTS语言提供了声明式UI范式、状态管理支持等相应的能力,让开发者可以以更简洁、更自然的方式开发应用。它在保持TypeScript基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开发期能检测更多错误,提升代码健壮性,实现更好的运行性能。1ArkTS简介ArkTS、TypeScript和JavaScript之间的关系JavaScript是属于Web前端的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。TypeScript是一种强类型编程语言,是JavaScript的一个超集,它扩展了JavaScript的语法,在JavaScript的基础上添加静态类型定义构建而成,是一个开源的编程语言。1ArkTS简介思政小课堂:ArkTS语言的设计展现了“兼容并蓄、守正创新”的科技发展观。作为TypeScript的鸿蒙演进版本,ArkTS既继承JavaScript生态的开放基因,又通过静态类型强化保障系统稳定性,更针对分布式场景扩展能力边界。这映射出中国科技发展的双重智慧:一方面以包容姿态融入全球技术体系,快速吸收前沿成果;另一方面精准识别需求痛点,在核心技术层突破创新,避免“生态依赖陷阱”。鸿蒙团队通过从JavaScript到ArkTS的渐进升级证明:真正的技术自主绝非闭门造车,而是在充分消化国际经验后,结合本土场景锻造“自主可控、开放共生”的现代技术标准。这启示青年技术人:科技强国的路上既要善借“他山之石”,更要铸牢“中国芯”。1ArkTS简介ArkTS的扩展能力ArkTS提供了声明式UI描述、自定义组件和动态扩展UI元素的能力,再配合ArkUI开发框架中的系统组件及其相关的事件方法、属性方法等共同构成了UI开发的主体。1.基本语法ArkTS提供了渲染控制的能力:条件渲染、循环渲染。3.渲染控制ArkTS提供了多维度的状态管理机制。这种状态跟踪能力大大简化了开发过程中代码的编写,让开发者能够将精力集中到业务开发中,而不是冗余的语法代码中。2.状态管理2ArkTS的基本知识变量声明变量是程序中数据的临时存放场所,变量可以存放字符串、数字、对象等数据。ArkTS中声明语法如下:let变量名:类型名=变量值注意这里let为定义变量的关键字,类型写在变量名的右侧,用“:”隔开。2ArkTS的基本知识常量声明const变量名:类型名=变量值常量的意思是程序中不可变的变量,在定义时赋初值,后续则不能修改。其声明的语法如下:2ArkTS的基本知识022ArkTS的基本知识类型推断变量和常量的类型推断如果一个变量或常量包含了初始值,开发者就不需要显式指定其类型,因为ArkTS可以根据初始值进行类型推断。类型推断示例如下代码:letc=60console.log(typeofc)注意这里typeof表示获取变量c的类型,最终输出为number类型。01022ArkTS的基本知识类型:numbernumber表示数字类型,包括:整数、浮点数、正数、负数、Infinity(无穷)、NaN(不是一个数)等。【例3-1】number用法①表示将无穷大乘以0.1,其结果还是Infinity;②表示变量e不是一个数字,但是它的类型依然是number。2ArkTS的基本知识number程序运行效果:上面代码的输出结果,也就是如下内容:2ArkTS的基本知识类型:bigintbigint表示较大整数,因为number类型表示的整数最大为253,number类型在表示大整数时会造成精度丢失。在开发时可以按需使用bigInt类型来确保精度。【例3-2】bigint用法①表示定义一个变量a,类型由赋值确定,这里赋值为1000n,n表示数字类型定义为bigint;②此句错误,已经注释,a和b的类型不一致,a是bigint,b是number,两者不能比较;③输出变量a的类型。2ArkTS的基本知识类型:bigint上面代码的输出结果:2ArkTS的基本知识类型:booleanboolean表示逻辑值类型,结果只有true和false。【例3-3】boolean用法①表示将3>5的结果赋值给b,显然3没有大于5,3>5结果是false,所以b的值为false。查看Log面板,上面代码的输出结果:2ArkTS的基本知识类型:stringstring表示字符串类型,可以对字符串执行各类操作,例如拼接(+),切片(.slice)。在给string类型变量赋值时,使用单引号或双引号都可以,字符串字面量还有一特殊形式,是用反向单引号(`)括起来的模板字面量。【例3-4】string用法2ArkTS的基本知识类型:string①表示将字符串a和’’、字符串b三者拼接在一起,新的字符串赋值给c;②使用字符串的slice函数对字符串进行切片,也就是取子串。slice函数包含2个参数:参数1表示取的起始点索引位(注意第0位表示实际第一个位置);参数2表示取的结束点索引位(注意结束点位置不在子串内)。这里取第5-7位,不包含第7位,也就是第5位、第6位,表示空格(第5位)和字母t(第6位);③使用模板字面量,${d}表示对变量d的引用,再填充进模板字面量中,这里不需要使用“+”来拼接,使用起来更为方便。上面代码的输出结果:2ArkTS的基本知识类型:voidvoid是在函数声明时使用,表示该函数没有返回值。【例3-5】void用法在structIndex{}外部添加类MyClass,代码如下:①表示声明一个类名称为MyClass,T表示泛型参数,在实例化该类时可以具体指定T的类型,关于类和泛型本模块后续将详细讲解,这里是为了说明void类型的用法;在Button的onClick()方法中添加如下代码:2ArkTS的基本知识类型:void①表示声明一个类MyClass的实例,指定myClass泛型参数时将原有大写T替换成void,表示该MyClass实例传入的泛型参数值为void;“newMyClass<void>()”表示MyClass类的实例;②表示输出变量myClass的类型;上面代码的输出结果:2ArkTS的基本知识类型:Object和objectObject类型是所有引用类型的基类型。该类型的变量可以赋值为任意类型,基本类型的值赋值给它,会发生自动装箱。所谓装箱是指基本数据类型自动转换为对应的包装类对象。object类型用于表示除基本类型(number、string、boolean、bigint)之外的类型。【例3-6】Object和object用法2ArkTS的基本知识类型:Object和object①表示声明一个Object类型的变量,指向一个引用类型的值;②表示声明一个Object类型的变量,指向一个基本类型的值,自动发生装箱;③object类型变量不能接收一个基本类型的值,因此需要注释此行;④声明一个object类型的变量,指向一个引用类型的值;上面代码的输出结果:2ArkTS的基本知识类型:arrayarray是表示一组指定元素类型的数据组成的对象,由数据类型和方括号([])组成。它支持拼接、推入、搜索和切片等操作。数组的长度由数组中元素个数来确定,数组的第一个元素的索引从0开始。【例3-7】array用法2ArkTS的基本知识类型:array①表示定义一个数组a,其内部元素类型为number,并将其赋值为1,2,3;②表示定义一个数组b,其内部元素类型为string,并将其赋值为'abc','def';③表示定义一个数组c,其内部元素类型由ArkTS自己进行类型推导,并将其赋值为'a','b';④输出a,b,c三个数组的值到日志面板;⑤向数组a内部推入新的元素4到数组尾部;⑥输出a,b二个数组,以及a[0]的值到日志面板,a[0]表示数组a的第一个元素。上面代码的输出结果:2ArkTS的基本知识类型:enumenum用于列举类型中包含的各个值,是一种无序数据结构。【例3-8】enum用法步骤1:继续修改Index.ets页面,在structIndex{}外部添加枚举Season,代码如下2ArkTS的基本知识类型:enum①表示定义枚举类型,其名称为Season,其值有4个,分别为Spring、Summer、Autumn、Winter;步骤2:再在Index.ets页面中,添加Button的onClick()代码如下:①表示定义一个变量a,类型为枚举类型Season,并赋值为Spring;②输出a。这里输出为0,表示Spring对应的内部键值为0,也就是枚举值的第一个。上面代码的输出结果:2ArkTS的基本知识类型:UnionUnion表示多个类型组成的引用类型。【例3-9】Union用法步骤1:继续修改Index.ets页面,在structIndex{}外部添加typeMyType,代码如下①表示定义联合类型MyTpye,这个类型包含了string和number;步骤2:再在Index.ets页面中,添加Button的onClick()代码如下:2ArkTS的基本知识类型:Union①表示声明一个变量a,类型为联合类型MyType,并赋值为5,由于a既可以为string也可以为number,所以这里允许赋值为5;②声明一个变量b,它的类型为string和number的联合类型,这种方式是不用指定联合类型名称直接声明联合类型的变量,并赋值为“hellounion!”字符串。上面代码的输出结果:2ArkTS的基本知识类型:AliasesAliases表示为已有类型或匿名类型提供别名。【例3-10】Aliases用法步骤1:继续修改Index.ets页面,在structIndex{}外部添加typeMyString和MyMatrix,代码如下:①表示为string类型取了一个新的名字MyString,后面所有用到string的地方可以使用MyString代替;②表示为二维数组number[][]类型取了一个新的名字MyMatrix;步骤2:再在Index.ets页面中,添加Button的onClick()代码如下:2ArkTS的基本知识类型:Aliases①使用类型别名MyString声明变量myString,并赋初值“helloaliases”;②使用类型别名MyMatrix声明变量myMatrix,并赋初值[[1,2],[3,4]]。上面代码的输出结果:result:
helloaliases!1,2,3,42ArkTS的基本知识运算符:赋值运算符表3-1赋值运算符操作符描述举例=简单的赋值运算符,将右操作数的值赋给左侧操作数C=A+B将把A+B得到的值赋给C+=加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数C+=A等价于C=C+A-=减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数C-=A等价于C=C-A*=乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数C*=A等价于C=C*A2ArkTS的基本知识运算符:赋值运算符表3-1赋值运算符(续)操作符描述举例/=除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数C/=A,C与A同类型时等价于C=C/A%=取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数C%=A等价于C=C%A<<=左移位赋值运算符C<<=2等价于C=C<<2>>=右移位赋值运算符,带符号扩展C>>=2等价于C=C>>2>>>=右移位赋值运算符,左边补0C>>>=2等价于C=C>>>2&=按位与赋值运算符C&=2等价于C=C&2^=按位异或赋值操作符C^=2等价于C=C^2|=按位或赋值操作符C|=2等价于C=C|22ArkTS的基本知识运算符:比较运算符表3-2比较运算符操作符描述举例===检查如果两个操作数严格相等,则返回true;对于不同类型的操作数认为是不相等的。(A===B)为false。==检查如果两个操作数的值是否相等,如果相等则条件为真。(A==B)为false。!==检查如果两个操作数严格不相等,则返回true;对于不同类型的操作数认为是不相等的。(A!==B)为true。!=检查如果两个操作数的值是否相等,如果值不相等则条件为真。(A!=B)为true。当需要将一个操作数与另一个操作数比较大小时,就需要使用比较运算符。下表number类型A为10,number类型B为20。2ArkTS的基本知识运算符:比较运算符表3-2比较运算符(续)操作符描述举例>检查左操作数的值是否大于右操作数的值,如果是那么条件为真。(A>B)为false。<检查左操作数的值是否小于右操作数的值,如果是那么条件为真。(A<B)为true。>=检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。(A>=B)为false。<=检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。(A<=B)为true。2ArkTS的基本知识运算符:算术运算符一元运算符有:-、+、--、++。二元运算符有:+、-、*、/、%。2ArkTS的基本知识运算符:位运算符位运算符作用在所有的位上,并且按位运算。下表3-3中,假定A=60(00111100),B=13(00001101)。表3-3位运算符操作符描述举例&如果相对应位都是1,则结果为1,否则为0(A&B),得到12,即00001100|如果相对应位都是
0,则结果为0,否则为1(A|B)得到61,即00111101^如果相对应位值相同,则结果为0,否则为1(A^B)得到49,即00110001〜按位取反运算符翻转操作数的每一位,即0变成1,1变成0。(〜A)得到-61,即11000011<<按位左移运算符。左操作数按位左移右操作数指定的位数。A<<2得到240,即11110000>>按位右移运算符。左操作数按位右移右操作数指定的位数。A>>2得到15即1111>>>按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。A>>>2得到15即000011112ArkTS的基本知识运算符:逻辑运算符逻辑运算符是编程中用于对布尔值(true或false)进行逻辑运算的操作符。逻辑运算符的核心作用是对表达式的结果进行逻辑判断,返回一个布尔值(true或false)。下表3-4中,假定A=true,B=false。表3-4逻辑运算符操作符描述举例&&称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。(A&&B)为false。||称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。(A||B)为true。!称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。!(A&&B)为true。2ArkTS的基本知识流程控制:if/else在某些情况下,只有满足某一条件才能执行一些操作,如果不满足条件则执行其他操作,就会用到if/else控制语句。if语句有2种语法形式:2ArkTS的基本知识流程控制:if/else【例3-11】if/else用法①a除以2取得的余数如果是0,则判断a为偶数,否则判断a为奇数。上面代码输出结果为:2ArkTS的基本知识流程控制:switch/case在某些情况下,每满足一种条件就执行一种代码,而分支情况较多,我们就可以使用switch/case这种形式来处理。switch/case的语法形式:2ArkTS的基本知识流程控制:switch/case【例3-12】使用switch/case分支语句,判断学生成绩对应的等级:A对应优秀;B对应良好;C对应合格;其他。上面代码输出结果为:2ArkTS的基本知识流程控制:for/whilefor语句的语法形式:2ArkTS的基本知识流程控制:for/whilewhile语句的语法形式:do-while语句的语法形式:2ArkTS的基本知识流程控制:for/while【例3-13】分别使用for、while语句,循环执行打印日志。2ArkTS的基本知识流程控制continue/breakcontinue语句用于停止当前一次循环,进入下一次循环。break语句用于停止当前循环或者switch的分支语句的执行。异常捕获(try、catch、finally)try代码块用于给可能出现异常的语句划定范围,catch代码块用于在划定范围出现异常时对异常进行捕获并进行异常处理,finally代码块表示无论是否发生异常都必须要执行的代码。语法如下:注意finally不是每次都必须出现。2ArkTS的基本知识流程控制主动抛出异常(Throw)Throw可以用于主动抛出异常,语法如下:2ArkTS的基本知识函数ArkTS可以像使用对象那样使用函数:将函数赋值给变量,可以将函数作为参数传递给其他函数,也可以将函数作为函数的返回值返回出去。下面给出函数的声明语法:1.声明和调用函数2ArkTS的基本知识函数【例3-14】声明一个两数相加的函数,并调用。步骤1:继续修改Index.ets页面,在structIndex{}外部添加functionadd(),代码如下:表示定义了一个函数名称为add,入参有2个,类型都是number,函数的返回值类型为number,函数的作用是将变量a和b相加,并将结果返回出去。步骤2:再在Index.ets页面中,添加Button的onClick()代码如下:①调用了这个函数,传入实参3和5,函数结果返回了8。2ArkTS的基本知识声明和调用函数2.可选参数和默认参数可以使用?把参数标记为可选的,所谓可选参数意思是这个参数在调用时可以传入实际值,也可以不传入实际值。【例3-15】声明一个含有可选参数的函数,并调用。步骤1:继续修改Index.ets页面,在structIndex{}外部添加functiongetPerson(),代码如下:2ArkTS的基本知识声明和调用函数①函数的参数gender右侧有一个?,表示这个gender在实际传参时可以不传;②gender===undefined表示判断gender有没有定义,undefined表示未定义,也就是gender没有赋值时,表达式的值为true;③模板字符串,使用``符号将模板字符串引起,其中${}表示在字符串中直接引用变量。模板字符串的好处就是省去了大量“+”拼接字符串的操作。步骤2:再在Index.ets页面中,添加Button的onClick()代码如下:2ArkTS的基本知识声明和调用函数①表示调用函数,没有给gender传值;②表示调用函数,给gender传值;以上代码执行结果如下:2ArkTS的基本知识声明和调用函数【例3-16】声明一个含有默认参数的函数,并调用。步骤1:继续修改Index.ets页面,在structIndex{}外部添加functiongetPerson2(),代码如下:①函数在声明时给参数gender赋了默认值‘男’,表示这个gender在实际传参时可以不传;步骤2:再在Index.ets页面中,添加Button的onClick()代码如下:2ArkTS的基本知识声明和调用函数①表示调用函数,没有给gender传值;②表示调用函数,给gender传值;以上代码执行结果如下:2ArkTS的基本知识函数的返回类型1.无返回类型当函数没有返回值时,要么不写返回类型,要么使用void关键词表示无返回。【例3-17】无返回类型函数,并调用。步骤1:继续修改Index.ets页面,在structIndex{}外部添加functiontest()和test2(),代码如下:2ArkTS的基本知识函数的返回类型①不写返回类型表示无返回值;②返回类型指明为void表示无返回值。步骤2:再在Index.ets页面中,添加Button的onClick()代码如下:2ArkTS的基本知识函数的返回类型2.类型推断函数的返回类型可根据return语句返回的内容进行推断,因此返回类型也可以不写。【例3-18】返回类型由类型推断而来的函数,并调用。步骤1:继续修改Index.ets页面,在structIndex{}外部添加functiontest3()和sum(),代码如下:2ArkTS的基本知识函数的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026农行常见面试题目及答案
- 2026平衡资本面试题及答案
- 2026券商期货面试题及答案
- 2026入额法官面试题及答案
- 2026社保代理面试题目及答案
- 2026生物学模拟面试题及答案
- 2026年通辽二级建造师考试试题及答案
- 江西科技学院考试试题及答案
- 提升职场英语口语能力的日常训练方法试题及答案及答案
- 2026年建筑工程质量安全管理规范考试及答案
- 大班社会认识职业课件
- 《电梯基本结构》课件
- 工艺管道安装监理实施细则
- 青海省西宁市城中区2023-2024学年小升初考试数学试卷含解析
- TCNIA-电池级碳酸钠
- 2024年浙江省温州市龙湾区委龙湾区人民政府信访局招聘编外1人【重点基础提升】模拟试题(共500题)附带答案详解
- 劳动实践活动实施方案及流程
- 老年人护理风险管理
- 内蒙古科技大学往年C语言程序设计期末模拟及答案
- 2024届山东省青岛市青岛第二中学化学高二第二学期期末学业质量监测试题含解析
- 光伏居间合同
评论
0/150
提交评论