鸿蒙开发入门 | 开发第一个鸿蒙应用+页面跳转

简介: 准备好鸿蒙开发环境后,接下来就需要创建鸿蒙项目,掌握项目的创建过程以及配置。项目创建好后,需要把项目运行在模拟器上,鸿蒙的模拟和安卓模拟器有些不同,鸿蒙提供远程模拟器和本地模拟器,通过登录华为账号登录在线模拟器,使用DevEco Studio可将项目部署到远程模拟器中。

分析


使用DevEco Studio集成工具开发第一个鸿蒙应用,完成鸿蒙应用创建、鸿蒙模拟器创建、部署应用到模拟器。


1、开发第一个鸿蒙应用


1●创建鸿蒙应用

打开DevEco Studio,在欢迎页单击Create HarmonyOS Project,创建一个新工程,如图1所示。

image.png

■ 图1 Create HarmonyOS Project


根据工程创建向导,选择需要的Ability工程模板,然后单击Next按钮。关于工程模板的介绍和支持的设备类型,请参考支持的设备模板和编程语言,如图2所示。

image.png

■ 图2工程创建向导


填写工程相关信息,Device Type选择Phone,其他保持默认值即可,单击Finish按钮,如图3所示。关于各个参数的详细介绍,请参考创建一个新的工程。

image.png

■ 图3 填写工程相关信息


工程创建完成后,DevEco Studio会自动进行工程的同步,同步成功如图4所示。

image.png

■图4 工程自动同步


2●部署鸿蒙应用到模拟器

DevEco Studio提供远程模拟器和本地模拟器,我们以远程模拟器为例进行说明。在DevEco Studio菜单栏,单击Tools→Device Manager,如图5所示。

image.png

■ 图5 打开设备管理器


在Remote Emulator页中单击Login按钮,在浏览器中弹出华为开发者联盟账号登录界面,请输入已实名认证的华为开发者联盟账号的用户名和密码进行登录(查看远程模拟器登录常见问题),如图6所示。

image.png

■ 图6 登录华为开发者联盟账号


说明: 推荐使用Chrome浏览器,如果使用Safari、360等其他浏览器,要取消阻止跨站跟踪和阻止所有Cookie功能。


登录后,请单击界面上的“允许”按钮进行授权,如图7所示。

image.png

■ 图7 华为账号授权


在设备列表中,选择设备P40,并单击按钮

image.png

,运行模拟器,如图8所示。

image.png

■ 图8 运行模拟器


单击DevEco Studio工具栏中的按钮

image.png

运行工程,或使用默认快捷键Shift+F10运行工程,如图9所示。

image.png

■ 图9 运行工程到模拟器


DevEco Studio会启动应用的编译构建,完成后应用即可运行在模拟器上,如图10所示。

image.png

■ 图10 工程运行成功页面


2、实战演练——页面跳转


鸿蒙操作系统提供了两种FA(Feature Ability)的UI开发框架: Java UI框架和JS UI框架,如表1所示。

Java UI框架提供了细粒度的UI编程接口,UI元素更丰富,使应用开发更加灵活。

JS UI框架提供了相对高层的UI描述,使应用开发更加简单。


■ 表1Java UI框架和JS UI框架的对比

image.png

已成功运行了第一个鸿蒙操作系统应用,接下来通过Java UI方式和 JS UI方式分别实现页面跳转,来了解鸿蒙操作系统应用的开发过程。


1●Java UI方式实现页面跳转

1. 编写第一个页面

在Java UI框架中,提供了两种编写布局的方式: 在XML中声明UI布局和在代码中创建布局。这两种方式创建出的布局没有本质差别,为了熟悉两种方式,将通过XML的方式编写第一个页面,通过代码的方式编写第二个页面。


在Project窗口中单击entry→src→main→resources→base→layout,打开ability_main.xml文件,如图11所示。

image.png

■ 图11 打开ability_main.xml文件


在Project窗口中单击entry→src→main→resources→base→element,打开string.json文件,可在此文件内声明所需引用的资源内容。关于取值为string类型的文本属性,可以直接设置文本字符串,也可以引用string资源(推荐使用)。string.json的示例代码如下。


程序清单1: chart10\HMDemoJava\entry\src\main\resources\base\element\string.json

image.png

第一个页面内有一个文本和一个按钮,使用DependentLayout布局,通过Text和Button组件来实现,其中,vp和fp分别表示虚拟像素和字体像素。本次示例展示两个组件的显示文本分别采用直接设置文本字符串、引用string资源(推荐使用)的方式。ability_main.xml的示例代码如下。


程序清单2: chart10\HMDemoJava\entry\src\main\resources\base\layout\ability_main.xml

image.png

按钮的背景是蓝色胶囊样式,可以通过graphic目录下的XML文件来设置。

右击graphic文件夹,选择New→File,命名为“background_button.xml”,按Enter键,生成文件如图12所示。

image.png

■ 图12 创建background_button.xml文件


程序清单3: chart10\HMDemoJava\entry\src\main\

image.png

在layout目录下的ability_main.xml文件中,使用background_element="$graphic: background_button"的方式引用background_button.xml文件,如图13所示。

image.png

■ 图13 引用background_button.xml文件


在XML文件中添加组件后,需要在Java代码中加载XML布局。

在Project窗口中选择entry→src→main→java→com.example.myapplication→slice,打开MainAbilitySlice.java文件,使用setUIContent()方法加载ability_main.xml布局。此外,运行代码前需采用import(可使用Alt+Enter快捷键)引入对应类,否则会产生报错提示。

说明: 鸿蒙操作系统提供了Ability和AbilitySlice两个基础类,一个有界面的Ability可以由一个或多个AbilitySlice构成,AbilitySlice主要用于承载单个页面的具体逻辑实现和界面UI,是应用显示、运行和跳转的最小单元。


程序清单4: chart10\HMDemoJava\entry\src\main\resources\base\

image.png

使用预览器或模拟器运行项目,效果如图14所示。

image.png

■ 图14 运行项目效果(一)


2. 创建另一个页面

前面用XML的方式编写了一个包含文本和按钮的页面。为了帮助开发者熟悉在代码中创建布局的方式,接下来使用代码的方式编写第二个页面。

在Project窗口中打开entry→src→main→java→com.example.myapplication,右击slice文件夹,选择New→Java Class,命名为SecondAbilitySlice,按Enter键。

第二个页面上有一个文本。打开SecondAbilitySlice.java文件,添加一个Text,示例代码如下。


程序清单5: chart10\HMDemoJava\entry\src\main\java\com\example\

b4e6a009f4592957b2600d49c6c1dee6.png


3. 实现页面跳转

打开第一个页面的MainAbilitySlice.java文件,添加按钮的响应逻辑,实现单击按钮跳转到下一页,示例代码如下。


程序清单6: chart10\HMDemoJava\entry\src\main\java\com\example\

image.png

再次运行项目,效果如图15所示。

image.png

■ 图15 运行项目效果(二)


2●JS UI方式实现页面跳转

1. 编写第一个页面

第一个页面内有一个文本和一个按钮,通过Text和Button组件来实现。

在Project窗口中选择entry→src→main→js→default→pages.index,打开index.hml文件,添加一个文本和一个按钮,示例代码如下。


程序清单7: chart10\HMDemoJS\entry\src\main\js\default\pages\index\index.hml

image.png

打开index.css文件,设置文本和按钮的样式,示例代码如下。


程序清单8: chart10\HMDemoJS\entry\src\main\js\default\pages\index\index.css

image.png

使用预览器或模拟器运行项目,效果如图16所示。

image.png

■ 图16 运行项目效果(三)


2. 创建另一个页面

在Project窗口中打开entry→src→main→js→default,右击pages.index文件夹,选择New→JS Page,命名为details,按Enter键。


创建完成后,可以看到pages.index文件夹下的文件目录结构如图17所示。

image.png

■ 图17 pages.index目录结构


打开details.hml文件,添加一个文本,示例代码如下。

程序清单9: chart10\HMDemoJS\entry\src\main\js\default\

image.png

打开details.css文件,设置文本的样式,示例代码如下。


程序清单10: chart10\HMDemoJS\entry\src\main\js\default\pages\index\details\details.hml

image.png


3. 实现页面跳转

打开第一个页面的index.js文件,导入router模块,页面路由router根据页面的uri来找到目标页面,从而实现跳转。示例代码如下。


程序清单11: chart10HMDemoJS\entry\src\main\js\default\pages\index\index.js

image.png

再次运行项目,效果如图18所示。

image.png

■ 图18运行项目效果(四)


目录
相关文章
|
5天前
鸿蒙开发:V2版本装饰器@Once
@Once装饰器只能与@Param搭配使用,仅此一个组合,无其他使用方式,还有就是,必须在V2版本,也就是@ComponentV2装饰的自定义组件中,否则会报异常。
鸿蒙开发:V2版本装饰器@Once
|
3天前
|
安全 API
鸿蒙开发:实现AOP代码插桩能力
正确的运用AOP,可以提升代码的模块化、复用性、可维护性和灵活性,同时降低了耦合度,使系统更易于扩展和维护。
27 13
鸿蒙开发:实现AOP代码插桩能力
|
6天前
鸿蒙开发:熟知@BuilderParam装饰器
在实际的开发中,我们经常会遇到自定义组件的情况,比如通用的列表组件,选项卡组件等等,由于使用方的样式不一,子组件是动态变化的,针对这一情况,就不得不让使用方把子组件视图传递过来,如何来接收这个UI视图,这就是@BuilderParam装饰器的作用。
鸿蒙开发:熟知@BuilderParam装饰器
|
13天前
|
前端开发 JavaScript 开发工具
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
71 5
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
5天前
|
安全
鸿蒙开发:校验构造传参装饰器@Require
@Require装饰器依赖ArkTs的类型检查,仅在编译阶段拦截类型错误和缺失参数,对于运行时才能确定的动态值,如从网络请求获取的数据,仍需在生命周期函数中进行二次校验。
40 18
|
1天前
鸿蒙开发:wrapBuilder来封装全局@Builder
首先第一点,在同一个UI组件内,同一个wrapBuilder只能初始化一次,第二点就是WrappedBuilder对象的builder属性方法只能在struct内部使用。
|
6天前
|
API 开发者
鸿蒙开发:V2版本装饰器之@Monitor装饰器
如果要实现@Monitor监听,其变量一定要被@Local、@Param、@Provider、@Consumer、@Computed装饰,未被修饰则无法被监听,还有,如果监听对象的变化,则不建议在一个类中对同一个属性进行多次@Monitor的监听,多次监听,只有最后一个定义的监听方法才会有效。
|
7天前
|
Android开发 UED iOS开发
Harmony os next~UI开发与ArkUI框架
鸿蒙OS的UI开发基于ArkUI框架,采用声明式编程,简化开发流程。五大核心组件(Text、Button、List、Grid、Flex)助力高效布局,支持数据绑定与动态更新。事件响应机制灵敏,适合构建交互丰富的应用。实战技巧包括规范命名、样式复用和调试方法。掌握这些,轻松开发鸿蒙应用。下期预告:分布式开发,记得带上烤冷面!
20 0
|
7天前
|
XML 存储 大数据
Harmony os next~HarmonyOS Ability与页面跳转开发详解
HarmonyOS采用分布式架构,其Ability体系包括Page、Service、Data和Form四大类型Ability。Page Ability支持多页面跳转与数据传递,Service Ability用于后台任务,Data Ability提供数据共享接口,Form Ability实现轻量化卡片服务。本文详细解析了各Ability的开发方法、生命周期管理、跨Ability通信及最佳实践,帮助开发者掌握HarmonyOS应用开发的核心技能。
51 0
|
9天前
|
传感器 人工智能 搜索推荐
探索HarmonyOS在智慧出行领域的AI类目标签应用
在科技飞速发展的今天,智慧出行成为交通领域的重要发展方向。HarmonyOS凭借强大的系统能力,为智慧出行注入新活力,特别是在AI类目标签技术的应用上。通过精准分类和标签化处理车辆、路况及出行者数据,AI类目标签技术提升了出行体验与交通管理效率。HarmonyOS的分布式软总线技术和隐私保护机制,确保了设备间的无缝连接与数据安全。实际应用中,该技术助力智能交通管理和个性化出行服务,为解决交通拥堵、优化资源配置提供了新思路。开发者也迎来了广阔的机遇与挑战,共同推动智慧出行的美好未来。

热门文章

最新文章

  • 1
    原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力
  • 2
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 3
    EMAS 性能分析全面适配HarmonyOS NEXT,开启原生应用性能优化新纪元
  • 4
    鸿蒙开发:了解@Builder装饰器
  • 5
    【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
  • 6
    【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
  • 7
    Harmony os next~HarmonyOS Ability与页面跳转开发详解
  • 8
    HarmonyOS使用系统图标
  • 9
    【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
  • 10
    鸿蒙H5离线包技术分享