第3章_开发第一个HarmonyOS应用
第3章 开发第一个 HarmonyOS 应用HarmonyOS 学习系统 | 阶段一入门筑基期建议学习时长1-2 周学习目标序号能力1掌握 DevEco Studio 工程创建的完整流程2理解 Empty Ability 模板的代码结构3学会使用模拟器、真机、预览器三种方式运行应用4了解应用签名的基本流程核心图解内容讲解3.1 创建工程你打开外卖 AppDevEco Studio选好你想要的菜系设备类型手机/平板告诉店家你要什么规格Project Name、Package Name下单后厨房自动给你做好了自动生成工程代码。你不需要自己切菜炒菜点一下运行就能直接吃上模拟器运行。当然这顿饭是白米饭Empty Ability——什么菜都没有。接下来你需要在里面加菜写代码才能变成一顿丰盛的大餐。3.1.1 选择模板在 DevEco Studio 中单击Create HarmonyOS Project选择设备类型和模板。本阶段推荐选择Empty Ability(Java)模板该模板支持手机、平板、车机、智慧屏、智能穿戴设备等多种终端设备。3.1.2 配置项目信息配置项说明注意事项Project Name工程名称可以自定义Project Type工程类型选 Application独立应用Package Name包名必须全局唯一只能含字母、数字、下划线和点号Save Location存储路径不能包含中文字符Compatible API Version兼容的最低 SDK 版本根据目标设备选择Device Type设备类型至少选择 Phone3.1.3 自动生成的核心代码点击 Finish 后DevEco Studio 会自动生成示例代码和资源模板。以下是最核心的两个类// MainAbility.java - 应用入口设置默认路由publicclassMainAbilityextendsAbility{OverridepublicvoidonStart(Intentintent){super.onStart(intent);super.setMainRoute(MainAbilitySlice.class.getName());}}// MainAbilitySlice.java - 默认展示的页面publicclassMainAbilitySliceextendsAbilitySlice{OverridepublicvoidonStart(Intentintent){super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);}}MainAbility是应用的入口 Ability通过setMainRoute()方法指定默认展示的MainAbilitySlice。MainAbilitySlice则通过setUIContent()加载布局文件ability_main.xml。3.2 运行工程运行方式对比方式优点缺点适用场景远程模拟器无需硬件开箱即用需要网络性能一般日常开发调试本地真机性能真实体验流畅需要物理设备 USB最终测试验证远程真机云端真机无需购买需要网络需排队无真机时使用预览器启动极快实时刷新不支持完整功能调试UI 布局调试模拟器运行步骤单击工具栏运行按钮或 Shift F10弹出 “Select a device first” 提示通过Tools → Device Manager打开设备管理器使用华为开发者账号登录并授权选择 Phone 模拟器如 HUAWEI P40并启动再次运行工程应用将安装到模拟器上3.3 真机运行与签名本地真机连接Phone/Tablet 设备在设备中打开开发者模式设置 → 关于手机 → 连续点击版本号直至提示您正处于开发者模式使用 USB 连接设备和 PCUSB 连接方式选择传输文件打开设置 → 系统和更新 → 开发人员选项开启USB 调试TV 设备TV 和 PC 连接到同一网络获取 TV 的 IP 地址确保 5555 端口开放在 DevEco Studio 中Tools → IP Connect输入 IP 连接应用签名在真机或远程真机上运行应用需要进行签名进入File → Project Structure → Project → Signing Configs点击 Sign In登录 AppGallery Connect创建项目和应用返回签名配置界面自动获取签名信息点击 OK// 签名完成后在 build.gradle 中可看到签名配置// signingConfigs {// debug {// storeFile file(xxx.keystore)// storePassword xxx// keyAlias xxx// keyPassword xxx// }// }3.4 使用预览器预览器相比模拟器启动更快适合快速调试 UI 布局。打开方式菜单栏View → Tool Windows → Previewer编辑窗口右上角的侧边工具栏点击 Previewer 图标使用前确保HarmonyOS SDK → SDK Tools 中已下载 Previewer 资源。预览器支持 Java 预览器和 JS 预览器还可以同时预览多种设备上的效果非常适合多设备适配调试。3.5 工程文件结构详解创建工程后DevEco Studio 自动生成了完整的目录结构。理解这些文件的作用是后续开发的基础核心源码文件文件作用是否可修改MainAbility.java应用入口 Ability配置默认路由可以MainAbilitySlice.java默认展示的页面可以ability_main.xml主页面布局文件可以config.json应用配置文件核心可以build.gradle构建配置可以ResourceTable.java资源 ID 常量自动生成不建议自动生成的布局文件默认的ability_main.xml内容如下?xml version1.0 encodingutf-8?DirectionalLayoutxmlns:ohoshttp://schemas.huawei.com/res/ohosohos:heightmatch_parentohos:widthmatch_parentohos:orientationverticalohos:padding16vpTextohos:id$id:text_helloworldohos:heightmatch_contentohos:widthmatch_contentohos:layout_alignmenthorizontal_centerohos:textHello Worldohos:text_size40fpohos:top_margin100vp//DirectionalLayout注意几个关键点命名空间是http://schemas.huawei.com/res/ohos不是 Android 的android命名空间ID 定义语法是$id:xxx加号表示自动注册 ID 到 ResourceTable尺寸单位是vp虚拟像素和fp字体像素match_parent和match_content类似于 Android 的match_parent和wrap_contentconfig.json 中的关键配置新创建的工程中config.json 的 module 对象已自动配置了 Ability 信息{module:{package:com.example.myapp,name:entry,deviceType:[phone],distro:{deliveryWithInstall:true,moduleName:entry,moduleType:entry},abilities:[{skills:[{entities:[entity.system.home],actions:[action.system.home]}],name:MainAbility,icon:$media:icon,description:$string:mainability_description,label:$string:entry_MainAbility,type:page,launchType:standard}]}}其中skills数组定义了应用的启动条件entity.system.homeaction.system.home表示这是一个桌面应用会在桌面上显示图标。代码速查卡API/操作功能示例setMainRoute()设置默认路由super.setMainRoute(MainAbilitySlice.class.getName())setUIContent()加载布局super.setUIContent(ResourceTable.Layout_ability_main)addActionRoute()添加附加路由addActionRoute(action.pay, PayAbilitySlice.class.getName())Shift F10运行应用需先启动设备View → Previewer打开预览器实时预览 UI与 Android/iOS 对比特性HarmonyOSAndroidiOS应用包格式HAP (.hap)APK (.apk)IPA (.ipa)入口配置config.json abilities[]AndroidManifest.xml activityInfo.plist布局文件格式XML (ohos 命名空间)XML (android 命名空间)Storyboard / XIB签名方式AppGallery Connectkeystore 文件Apple 证书模拟器类型远程模拟器本地 AVD 模拟器Xcode 模拟器⚠️ 踩坑回忆录第一次创建项目时我选了 “Empty Feature Ability(Java)” 模板结果发现在 Device Type 里只勾了 Phone后来想加个 Tablet 支持却不知道怎么改。后来才知道可以在 config.json 的module.deviceType里手动添加。还有一次我把包名从com.example.helloworld改成了中文拼音com.我的应用.demo结果编译直接失败——包名只能包含字母、数字、下划线和点号这是硬性要求。还有一个容易忽略的坑远程模拟器需要华为账号登录授权后才能使用而且需要网络连接。如果你在公司内网环境下可能需要先配置好代理才能正常启动模拟器。必做实操任务序号任务难度1使用 Empty Ability(Java) 模板创建 Hello World 应用★☆☆2修改布局文件中的文本内容在预览器中查看效果★☆☆3在远程模拟器中运行应用★★☆4修改 Project Name 和 Device Type观察 config.json 的变化★★☆5尝试完成真机签名配置如有真机★★★学习检查清单能独立创建 Empty Ability(Java) 工程能说出 MainAbility 和 MainAbilitySlice 的关系能在模拟器/预览器中运行应用了解真机运行和签名的完整流程知道 Package Name 的命名规则和限制能区分远程模拟器、本地真机、远程真机、预览器四种运行方式进阶方向尝试使用不同的 Ability 模板创建工程在 config.json 中修改应用图标和名称了解 Gradle 构建脚本的基本结构

相关新闻

宠物托管服务平台开发排名,上门服务轨迹追踪开发

宠物托管服务平台开发排名,上门服务轨迹追踪开发

宠物托管服务平台开发排名,上门服务轨迹追踪开发宠物上门托管、上门喂养、临时陪护服务的核心信任壁垒,在于服务过程的可视化与可溯源。不同于到店消费服务,上门服务全程发生在用户私人住宅场景,用户无法实时掌握服务人员上门进度…

2026/7/25 17:05:08 阅读更多 →
命令行工具:从基础原理到高效实践指南

命令行工具:从基础原理到高效实践指南

1. 命令行工具的本质与价值在计算机世界里,Command(命令行)就像一把瑞士军刀——它可能没有图形界面那么花哨,但当你真正掌握后,会发现它能以惊人的效率完成各种复杂任务。我至今记得第一次用grep命令在几秒内从数万行…

2026/7/27 6:29:32 阅读更多 →
AI如何重塑学术写作:书匠策AI的核心技术与应用

AI如何重塑学术写作:书匠策AI的核心技术与应用

1. 项目概述:AI如何重塑学术写作体验"书匠策AI"这个名称已经揭示了产品的核心定位——成为学术写作领域的智能导航系统。不同于市面上简单的查重或格式调整工具,它更像是一位经验丰富的学术向导,能够全程陪伴研究者完成从选题到成稿…

2026/7/26 5:30:08 阅读更多 →

最新新闻

Claude 4.8 Debug能力实测:跨文件调用链追踪与根因分析

Claude 4.8 Debug能力实测:跨文件调用链追踪与根因分析

debug最痛苦的不是改代码,是找不到问题在哪。一个请求从controller进来,经过service处理,调了repository查库,中间还穿插了缓存和消息队列,最后返回的数据是错的——你得一层一层追,每层都可能埋着bug。这种…

2026/7/27 19:09:04 阅读更多 →
Google Zero趋势下SEO策略转型:从爬虫优化到用户与AI服务

Google Zero趋势下SEO策略转型:从爬虫优化到用户与AI服务

这类标题一出来,最容易让人焦虑。但与其被“协议已死”这种说法带着走,不如先搞清楚它到底在说什么。我一般会先拆解几个核心问题:这个“Google Zero”指的是什么?它怎么影响网站流量?作为内容发布者或开发者&#xff…

2026/7/27 19:09:04 阅读更多 →
终极指南:5分钟掌握HunterPie游戏数据覆盖工具

终极指南:5分钟掌握HunterPie游戏数据覆盖工具

终极指南:5分钟掌握HunterPie游戏数据覆盖工具 【免费下载链接】HunterPie-legacy A complete, modern and clean overlay with Discord Rich Presence integration for Monster Hunter: World. 项目地址: https://gitcode.com/gh_mirrors/hu/HunterPie-legacy …

2026/7/27 19:09:04 阅读更多 →
TI TPS20xx电源分配开关评估模块硬件设计解析与实战指南

TI TPS20xx电源分配开关评估模块硬件设计解析与实战指南

1. 项目概述与核心价值在硬件开发,尤其是嵌入式系统和板级电源设计中,电源分配开关(Power Distribution Switch)是一个看似不起眼、实则至关重要的角色。它远不止是一个简单的电子开关,而是一个集成了电流限制、过温保…

2026/7/27 19:09:04 阅读更多 →
向量数据库实战:选型、调优与落地~系列文章22:生产环境避坑指南:数据一致性、故障恢复、版本升级的血泪教训

向量数据库实战:选型、调优与落地~系列文章22:生产环境避坑指南:数据一致性、故障恢复、版本升级的血泪教训

生产环境避坑指南:数据一致性、故障恢复、版本升级的血泪教训 🩸🔥 本文是《向量数据库实战:选型、调优与落地》专栏第 22 篇 ⏱️ 阅读时间:约 14 分钟🎯 开篇:生产环境才是真正的战场 Demo 跑…

2026/7/27 19:09:04 阅读更多 →
为什么选择gh_mirrors/graphql/GraphQL?PHP GraphQL实现的优势与最佳实践

为什么选择gh_mirrors/graphql/GraphQL?PHP GraphQL实现的优势与最佳实践

为什么选择gh_mirrors/graphql/GraphQL?PHP GraphQL实现的优势与最佳实践 【免费下载链接】GraphQL Pure PHP realization of GraphQL protocol 项目地址: https://gitcode.com/gh_mirrors/graphql/GraphQL 在现代Web开发中,高效的数据查询与API设…

2026/7/27 19:08:04 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻