HarmonyOS智慧农业管理应用开发教程--高高种地---第1篇:项目初始化与环境搭建

第1篇:项目初始化与环境搭建

教程目标

通过本篇教程,你将学会:

  • 安装和配置 DevEco Studio 开发环境
  • 配置 HarmonyOS SDK
  • 创建 HarmonyOS 应用项目
  • 理解项目结构
  • 配置应用权限

完成本教程后,你将能够成功创建并运行一个基础的 HarmonyOS 项目。


一、开发环境准备

1.1 系统要求

操作系统

  • Windows 10/11 (64位)
  • macOS 10.14 或更高版本
  • Ubuntu 18.04 或更高版本

硬件要求

  • 内存:8GB 以上(推荐 16GB)
  • 硬盘:至少 10GB 可用空间
  • 处理器:Intel i5 或更高

1.2 下载 DevEco Studio

  1. 访问华为开发者联盟官网:https://developer.harmonyos.com/
  2. 进入"开发工具"页面
  3. 下载最新版本的 DevEco Studio(本教程基于 5.0+ 版本)

下载地址:https://developer.huawei.com/consumer/cn/download/

1.3 安装 DevEco Studio

Windows 安装步骤:
  1. 双击下载的安装包deveco-studio-x.x.x.exe
  2. 选择安装路径(建议不要包含中文和空格)
  3. 勾选"Add to PATH"选项
  4. 点击"Install"开始安装
  5. 安装完成后,点击"Finish"
macOS 安装步骤:
  1. 打开下载的.dmg文件
  2. 将 DevEco Studio 拖拽到 Applications 文件夹
  3. 首次打开时,可能需要在"系统偏好设置 → 安全性与隐私"中允许运行
Linux 安装步骤:
# 解压安装包tar-zxvf deveco-studio-x.x.x.tar.gz# 进入安装目录cddeveco-studio/bin# 运行安装脚本./studio.sh

二、首次启动配置

2.1 启动 DevEco Studio

首次启动时,会进入配置向导:

  1. 导入设置:如果是首次安装,选择"Do not import settings"
  2. 用户协议:阅读并同意用户协议
  3. 数据共享:根据个人意愿选择是否共享数据

2.2 配置 SDK

  1. 在欢迎界面,点击"Configure" → “Settings”
  2. 进入"SDK Manager"
  3. 配置 SDK 路径(建议使用默认路径)

SDK 组件选择

  • ✅ HarmonyOS SDK (API 17+)
  • ✅ HarmonyOS SDK Platform-Tools
  • ✅ HarmonyOS SDK Build-Tools
  • ✅ HarmonyOS Emulator
  1. 点击"Apply"开始下载和安装 SDK
  2. 等待下载完成(可能需要较长时间,取决于网络速度)

2.3 配置 Node.js 和 ohpm

DevEco Studio 会自动配置 Node.js 和 ohpm(OpenHarmony Package Manager)。

验证安装:

# 打开终端,输入以下命令验证node--version ohpm --version

三、创建项目

3.1 创建新项目

  1. 在 DevEco Studio 欢迎界面,点击"Create Project"
  2. 选择项目模板:
    • 选择"Application"
    • 选择"Empty Ability"模板
  3. 点击"Next"

3.2 配置项目信息

在项目配置页面,填写以下信息:

基本信息

  • Project name:ZhongZhiGuanJia(种植管家)
  • Bundle name:com.leson.zhongdi
  • Save location: 选择项目保存路径(建议不包含中文)

项目配置

  • Compile SDK: API 17 或更高
  • Model: Stage
  • Language: ArkTS

设备类型

  • ✅ Phone(手机)
  • ✅ Tablet(平板)

点击"Finish"创建项目。

3.3 等待项目初始化

创建项目后,DevEco Studio 会自动:

  1. 生成项目结构
  2. 下载依赖包(通过 ohpm)
  3. 构建项目索引

注意:首次创建项目可能需要较长时间下载依赖,请耐心等待。


四、项目结构解析

创建完成后,你会看到以下项目结构:

ZhongZhiGuanJia/ ├── AppScope/ # 应用全局配置 │ ├── app.json5 # 应用配置文件 │ └── resources/ # 全局资源 ├── entry/ # 主模块 │ ├── src/ │ │ ├── main/ │ │ │ ├── ets/ # ArkTS 源代码 │ │ │ │ ├── entryability/ │ │ │ │ │ └── EntryAbility.ets # 应用入口 │ │ │ │ └── pages/ │ │ │ │ └── Index.ets # 首页 │ │ │ ├── resources/ # 资源文件 │ │ │ └── module.json5 # 模块配置 │ │ └── ohosTest/ # 测试代码 │ └── build-profile.json5 # 构建配置 ├── oh_modules/ # 依赖包(类似 node_modules) ├── build-profile.json5 # 全局构建配置 ├── hvigorfile.ts # 构建脚本 ├── oh-package.json5 # 依赖管理 └── oh-package-lock.json5 # 依赖锁定

4.1 关键文件说明

AppScope/app.json5

应用全局配置文件,定义应用的基本信息:

{ "app": { "bundleName": "com.leson.zhongdi", "vendor": "leson", "versionCode": 1000000, "versionName": "1.0.0", "icon": "$media:app_icon", "label": "$string:app_name" } }
entry/src/main/module.json5

模块配置文件,定义模块的能力、权限等:

{ "module": { "name": "entry", "type": "entry", "description": "$string:module_desc", "mainElement": "EntryAbility", "deviceTypes": [ "phone", "tablet" ], "pages": "$profile:main_pages", "abilities": [ { "name": "EntryAbility", "srcEntry": "./ets/entryability/EntryAbility.ets", "description": "$string:EntryAbility_desc", "icon": "$media:layered_image", "label": "$string:EntryAbility_label", "startWindowIcon": "$media:layered_image", "startWindowBackground": "$color:start_window_background", "exported": true, "skills": [ { "entities": ["entity.system.home"], "actions": ["ohos.want.action.home"] } ] } ] } }
entry/src/main/ets/entryability/EntryAbility.ets

应用入口文件,管理应用生命周期:

import{AbilityConstant,UIAbility,Want}from'@kit.AbilityKit';import{hilog}from'@kit.PerformanceAnalysisKit';import{window}from'@kit.ArkUI';exportdefaultclassEntryAbilityextendsUIAbility{onCreate(want:Want,launchParam:AbilityConstant.LaunchParam):void{hilog.info(0x0000,'testTag','%{public}s','Ability onCreate');}onWindowStageCreate(windowStage:window.WindowStage):void{// 加载首页windowStage.loadContent('pages/Index',(err)=>{if(err.code){hilog.error(0x0000,'testTag','Failed to load the content. Cause: %{public}s',JSON.stringify(err));return;}hilog.info(0x0000,'testTag','Succeeded in loading the content');});}}
entry/src/main/ets/pages/Index.ets

首页组件:

@Entry@Componentstruct Index{@Statemessage:string='Hello HarmonyOS';build(){Column(){Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)}.width('100%').height('100%').justifyContent(FlexAlign.Center)}}

五、配置应用权限

5.1 权限说明

我们的智慧农业应用需要以下权限:

权限用途权限等级
ohos.permission.INTERNET网络访问,获取地图数据normal
ohos.permission.LOCATION精确定位,用于农田位置标记system_grant
ohos.permission.APPROXIMATELY_LOCATION模糊定位,用于天气服务system_grant
ohos.permission.GET_NETWORK_INFO获取网络状态normal

5.2 配置权限

打开entry/src/main/module.json5,在module节点下添加requestPermissions配置:

{ "module": { "name": "entry", "type": "entry", // ... 其他配置 "requestPermissions": [ { "name": "ohos.permission.INTERNET", "reason": "$string:permission_internet_reason", "usedScene": { "abilities": ["EntryAbility"], "when": "inuse" } }, { "name": "ohos.permission.LOCATION", "reason": "$string:permission_location_reason", "usedScene": { "abilities": ["EntryAbility"], "when": "inuse" } }, { "name": "ohos.permission.APPROXIMATELY_LOCATION", "reason": "$string:permission_location_reason", "usedScene": { "abilities": ["EntryAbility"], "when": "inuse" } }, { "name": "ohos.permission.GET_NETWORK_INFO", "reason": "$string:permission_network_info_reason", "usedScene": { "abilities": ["EntryAbility"], "when": "inuse" } } ] } }

5.3 添加权限说明文本

打开entry/src/main/resources/base/element/string.json,添加权限说明:

{"string":[{"name":"permission_internet_reason","value":"需要网络权限以获取地图数据和在线资源"},{"name":"permission_location_reason","value":"需要定位权限以标记农田位置和提供导航服务"},{"name":"permission_network_info_reason","value":"需要获取网络状态以优化数据加载"}]}

六、运行项目

6.1 配置模拟器

  1. 点击工具栏的"Device Manager"图标
  2. 点击"New Emulator"
  3. 选择设备类型(Phone 或 Tablet)
  4. 选择系统镜像(API 17+)
  5. 点击"Finish"创建模拟器
  6. 启动模拟器(首次启动可能需要较长时间)

6.2 运行应用

  1. 确保模拟器已启动
  2. 点击工具栏的"Run"按钮(绿色三角形)或按Shift + F10
  3. 等待应用编译和安装
  4. 应用会自动在模拟器中启动

预期效果

  • 屏幕中央显示"Hello HarmonyOS"文本
  • 应用正常运行,无崩溃

6.3 真机调试(可选)

如果你有 HarmonyOS 设备:

  1. 在设备上开启"开发者模式"
  2. 开启"USB 调试"
  3. 使用 USB 连接设备到电脑
  4. 在 DevEco Studio 中选择真机设备
  5. 点击"Run"运行应用

七、常见问题与解决方案

7.1 SDK 下载失败

问题:SDK 下载速度慢或失败

解决方案

  1. 检查网络连接
  2. 配置代理(如果在公司网络环境)
  3. 使用华为镜像源

7.2 项目构建失败

问题:提示"Build failed"

解决方案

  1. 清理项目:Build → Clean Project
  2. 重新构建:Build → Rebuild Project
  3. 检查oh-package.json5依赖是否正确
  4. 删除oh_modules文件夹,重新安装依赖

7.3 模拟器启动失败

问题:模拟器无法启动

解决方案

  1. 检查 BIOS 是否开启虚拟化(VT-x/AMD-V)
  2. 确保内存充足(至少 4GB 可用)
  3. 重启 DevEco Studio
  4. 重新创建模拟器

八、项目初始化检查清单

完成本教程后,请确认以下内容:

  • ✅ DevEco Studio 安装成功
  • ✅ HarmonyOS SDK 配置完成
  • ✅ 项目创建成功
  • ✅ 项目结构清晰
  • ✅ 权限配置完成
  • ✅ 应用能够在模拟器或真机上运行
  • ✅ 显示"Hello HarmonyOS"文本

九、下一步

恭喜你完成了第一篇教程!你已经成功搭建了 HarmonyOS 开发环境并创建了第一个项目。

在下一篇教程中,我们将学习:

  • 应用架构设计
  • TabBar 导航实现
  • 页面路由配置
  • 主题管理系统

准备工作

  • 熟悉项目结构
  • 了解 ArkTS 基本语法
  • 阅读 HarmonyOS 官方文档

参考资料

  • HarmonyOS 开发者官网
  • DevEco Studio 使用指南
  • ArkTS 语言基础

教程版本:v1.0
更新日期:2026-01
适用版本:DevEco Studio 5.0+, HarmonyOS API 17+

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1179589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++11的一些特性

1. 左值引用 vs 右值引用左值引用定义:给左值取别名,用 &表示。特点:能获取地址,有持久状态可出现在赋值符号左边或右边主要作用是减少拷贝,提高效率int a 10; int& ref_a a; // 左值引用 const int&…

非标自动化设备工厂10个SolidWorks研发设计如何共享一台服务器的资源和算力 - 指南

非标自动化设备工厂10个SolidWorks研发设计如何共享一台服务器的资源和算力 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fon…

Playwright数据库断言:测试前后数据验证

在自动化测试中,我们常常会遇到这样的场景:测试一个用户注册功能,接口返回了成功,但你真的确定用户数据正确写入数据库了吗?或者测试一个删除功能后,如何验证数据确实从数据库中移除了?这就是数…

GESP认证C++编程真题解析 | 202309 一级

​欢迎大家订阅我的专栏:算法题解:C++与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的…

docker 搭建canal - BeYourSelf

一、参考文献Docker 安装 canal 详细步骤 乌班图安装java二、环境乌班图操作系统 Docker 29.1.4 Java 11.0.29 rabbitMQ三、前期准备安装Java11 # 先更新源 sudo apt-get update# 安装java11 sudo apt-get install op…

GESP认证C++编程真题解析 | 202309 二级

​欢迎大家订阅我的专栏:算法题解:C++与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的…

2026年中国985高校人工智能专业综合实力十强排名

基于2025-2026年度教育部学科评估情况、CSRankings全球计算机科学排名、U.S.News世界大学学科排名及各高校国家级实验室配置,我们对国内985高校在人工智能领域的综合竞争力进行了深度梳理。第1名:清华大学 作为国内人工智能领域的“领头羊”,…

js函数防抖

1.0 js函数防抖 function debounce(fn, delay = 1000) {let timerId;return function (...args) {clearTimeout(timerId);timerId = setTimeout(() => {fn.apply(this, args);}, delay);}; }2.0 vue自定义ref防抖 i…

LeeCode_17 电话号码的字母组合

17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1: 输入:digits =…

Selenium 从环境搭建到 Web 自动化实战

Selenium 是目前最流行的 Web 自动化测试工具,支持 Chrome、Firefox 等主流浏览器,能模拟人工操作(点击、输入、跳转)实现网页自动化,广泛应用于接口测试、数据爬取、自动化部署等场景。本文从零基础入门,手把手…

通信原理篇---PAM与PCM

解释 PAM(脉冲幅度调制) 和 PCM(脉冲编码调制) 的区别。1. 基本概念PAM:模拟调制方式,用脉冲序列的幅度来模拟连续信号的瞬时值,仍然是模拟信号。PCM:数字调制方式,先对模…

GESP认证C++编程真题解析 | 202309 四级

​欢迎大家订阅我的专栏:算法题解:C++与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的…

P1339 Heat Wave G

点击查看代码 #include<bits/stdc++.h> using namespace std; typedef pair<int,int> PII; const int N=3000; const int M=7000*2; int n,m,s,t; struct Edge{int to;int w;int ne; }edge[M]; int h[N]; …

P2910 Clear And Present Danger S

点击查看代码 #include<bits/stdc++.h> using namespace std;const int N=110; const int M=10010; int n,m; int p[N]; int dist[N][N]; long long ans;int main() {ios::sync_with_stdio(0),cin.tie(0);cin>…

职场晋升需要 AI 证书,选偏理论还是偏实操的更有用?

在职场晋升场景中&#xff0c;AI证书的价值需结合实用性判断。多数情况下&#xff0c;偏实操属性的证书更能适配企业“以结果为导向”的评估逻辑&#xff0c;其承载的技能可直接转化为工作效率与业务成果&#xff1b;理论类证书仅适合特定场景作为补充&#xff0c;难以成为晋升…

TCP 协议深度解析与实践:从零基础到精通

📚 学习路径:本文适合不同层次的读者🟢 小白级:了解网络基础、TCP 基本概念 🟡 初级:掌握 TCP 连接过程、Python Socket 编程 🟠 中级:理解 TCP 可靠性机制、实战应用 🔴 精通级:深入 TCP 内核机制、性…

小程序毕设选题推荐:基于springboot+微信小程序的校园竞赛管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

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

> STM32-200-多功能门禁人脸识别指纹识别RFID刷卡密码(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

STM32-200-多功能门禁人脸识别指纹识别RFID刷卡密码(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码产品功能描述&#xff1a; 本系统由STM32F103C8T6单片机核心板、1.44寸TFT彩屏、&#xff08;无线蓝牙/无线WIFI/无线视频监控…

数据质量与主数据管理:确保企业核心数据准确

数据质量与主数据管理&#xff1a;确保企业核心数据准确 1. 引入与连接 1.1 引人入胜的开场 想象一下&#xff0c;一家大型零售企业计划推出一系列针对特定客户群体的促销活动。营销团队精心策划了方案&#xff0c;投入了大量资源进行宣传推广。然而&#xff0c;活动结束后却发…

51-C40-温湿度检测+上下限+加热+空调降温+加湿+除湿+手动+自动+OLED屏+声光报警+按键+(无线方式选择)(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

51-C40-温湿度检测上下限加热空调降温加湿除湿手动自动OLED屏声光报警按键(无线方式选择)51-C040B蓝牙无线-APP版: 51-C040W-WIFI无线-APP版: 51-C040CAN-视频监控WIFI无线-APP版: 产品功能描述&#xff1a; 本系统由51单片机最小系统电路、OLED屏、&#xff08;无线蓝牙/无线W…