02-开发环境搭建与工具链

第2课:开发环境搭建与工具链

📚 课程目标

  • 掌握DevEco Studio的下载、安装和配置
  • 熟悉HMS Core(华为移动服务)的使用
  • 了解鸿蒙模拟器与真机调试环境
  • 掌握必备开发工具的使用

🛠️ DevEco Studio环境搭建

2.1 下载与安装

系统要求
  • Windows: Windows 10 64位及以上版本
  • macOS: macOS 10.15及以上版本
  • Linux: Ubuntu 18.04及以上版本
  • 内存: 8GB以上(推荐16GB)
  • 存储: 10GB以上可用空间
下载步骤
  1. 访问HarmonyOS开发者官网
  2. 点击"开发工具" → “DevEco Studio”
  3. 选择对应操作系统版本下载
  4. 下载完成后运行安装程序
安装配置
# 安装完成后,首次启动配置
1. 选择UI主题(推荐深色主题)
2. 配置SDK路径
3. 安装必要的SDK组件
4. 配置模拟器路径

2.2 基础配置

SDK配置
  • API版本: 选择最新的API 9或API 10
  • 构建工具: 配置Gradle和构建工具
  • 模拟器: 下载并配置模拟器镜像
项目配置
// project.json 基础配置
{"name": "MyHarmonyApp","type": "application","srcEntry": "./ets/entryability/EntryAbility.ets","srcEntry": "./ets/pages/Index.ets"
}

🔧 HMS Core(华为移动服务)

2.3 HMS Core简介

HMS Core是华为移动服务生态的核心,为鸿蒙应用提供丰富的系统能力。

核心服务
  • 账号服务:用户身份认证
  • 推送服务:消息推送
  • 地图服务:位置服务
  • 支付服务:移动支付
  • 云存储:数据存储

2.4 集成配置

添加依赖
// module.json5
{"dependencies": ["@ohos/hms-core": "^6.0.0"]
}
权限申请
// module.json5
{"requestPermissions": [{"name": "ohos.permission.INTERNET","reason": "用于网络请求","usedScene": {"abilities": ["EntryAbility"],"when": "always"}}]
}

📱 鸿蒙模拟器与真机调试

2.5 模拟器配置

创建模拟器
  1. 打开DevEco Studio
  2. 点击"Tools" → “Device Manager”
  3. 选择"Create Device"
  4. 选择设备类型和系统版本
  5. 配置模拟器参数
模拟器类型
  • 手机模拟器:测试手机应用
  • 平板模拟器:测试平板应用
  • 智慧屏模拟器:测试大屏应用
  • 穿戴设备模拟器:测试穿戴应用

2.6 真机调试

设备准备
  1. 开启开发者选项
  2. 启用USB调试
  3. 连接电脑并授权调试
调试配置
# 查看连接设备
hdc list targets# 安装应用
hdc install -r app-debug.hap# 查看日志
hdc shell hilog

🛠️ 必备开发工具

2.7 命令行工具

HDC(HarmonyOS Device Connector)
# 基础命令
hdc list targets          # 列出设备
hdc shell                 # 进入设备shell
hdc file send             # 传输文件
hdc file recv             # 接收文件
hdc install               # 安装应用
hdc uninstall             # 卸载应用
常用调试命令
# 查看应用日志
hdc shell hilog | grep "MyApp"# 查看系统信息
hdc shell cat /proc/version# 查看应用进程
hdc shell ps | grep "MyApp"

2.8 Git版本控制

初始化项目
# 创建Git仓库
git init# 添加远程仓库
git remote add origin <repository-url># 首次提交
git add .
git commit -m "Initial commit"
git push -u origin main
分支管理
# 创建功能分支
git checkout -b feature/new-feature# 合并分支
git checkout main
git merge feature/new-feature# 删除分支
git branch -d feature/new-feature

2.9 包管理工具

npm/yarn配置
// package.json
{"name": "my-harmony-app","version": "1.0.0","dependencies": {"@ohos/hypium": "^1.0.0"},"devDependencies": {"@ohos/hvigor": "^1.0.0"}
}
安装依赖
# 使用npm
npm install# 使用yarn
yarn install# 安装特定版本
npm install @ohos/hypium@1.0.0

🎯 实践练习

2.10 环境搭建练习

任务1:安装DevEco Studio
  1. 下载并安装DevEco Studio
  2. 配置开发环境
  3. 创建第一个Hello World项目
任务2:配置模拟器
  1. 创建手机模拟器
  2. 运行Hello World应用
  3. 熟悉模拟器操作
任务3:命令行工具使用
  1. 安装HDC工具
  2. 连接模拟器
  3. 执行基础命令

🚨 常见问题与解决方案

2.11 安装问题

  • 问题:安装过程中卡住

  • 解决:检查网络连接,使用VPN或镜像源

  • 问题:SDK下载失败

  • 解决:更换下载源,检查防火墙设置

2.12 运行问题

  • 问题:模拟器启动失败

  • 解决:检查虚拟化设置,更新显卡驱动

  • 问题:应用安装失败

  • 解决:检查签名配置,清理缓存

📚 扩展资源

2.13 官方文档

  • DevEco Studio使用指南
  • HMS Core集成指南
  • 真机调试指南

2.14 社区资源

  • 华为开发者社区
  • 鸿蒙开发者论坛
  • GitHub开源项目

下一课预告:第3课 - 鸿蒙架构与编程模型

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

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

相关文章

删掉一个元素以后全为1的最长子数组-滑动窗口

1493. 删掉一个元素以后全为 1 的最长子数组 - 力扣&#xff08;LeetCode&#xff09; Solution #include<iostream> #include<vector> using namespace std;class Solution { public://滑动窗口//动态维护一个窗口&#xff0c;窗口内只能有1个0&#xff0c;记录窗…

【计算机网络 | 第8篇】编码与调制

文章目录通信系统中的编码与调制&#xff1a;从信道基础到信号传输技术一、信道与通信电路&#x1f342;二、三种基本通信方式&#x1f4d6;1. 单向通信&#xff08;单工通信&#xff09;2. 双向交替通信&#xff08;半双工通信&#xff09;3. 双向同时通信&#xff08;全双工通…

当AI遇上终端:Gemini CLI的技术魔法与架构奥秘

"代码不仅仅是指令的集合&#xff0c;更是思想的载体。当AI与终端相遇&#xff0c;会碰撞出怎样的火花&#xff1f;" 在这个AI技术日新月异的时代&#xff0c;Google推出的Gemini CLI无疑是一颗璀璨的明星。它不仅仅是一个命令行工具&#xff0c;更是一个将人工智能无…

ViLU: Learning Vision-Language Uncertainties for Failure Prediction

研究方向&#xff1a;Image Captioning1. 论文介绍本文提出ViLU&#xff08;Vision-Language Uncertainties&#xff09;&#xff0c;一个用于学习视觉语言不确定性量化&#xff08;UQ&#xff09;和检测视觉语言模型故障的事后框架。使用VLMs进行量化&#xff08;UQ&#xff0…

数据集笔记:百度地图高德地图坐标互转

1 为什么会有高德坐标系和百度坐标系&#xff1f;根据《测绘法》和国家保密法规&#xff0c;在中国大陆范围内的地理坐标数据必须做加密处理&#xff0c;不允许直接使用 WGS84&#xff08;openstreetmap&#xff09;所以出现了GCJ-02 和 BD-09高德、腾讯、谷歌中国都遵循 GCJ-0…

SkyWalking高效线程上下文管理机制:确保调用链中traceId来自同一个请求

SkyWalking Agent 能确保获取到“正确”的 traceId,其核心在于它建立并维护了一套高效的线程上下文管理机制。这套机制确保了即使在复杂的多线程、异步环境下,也能将正确的上下文(包含 traceId)与当前正在执行的代码逻辑关联起来。 其工作原理可以概括为下图所示的流程: …

Kafka-Eagle安装

目录Eagle环境安装Mysql环境准备Kafka环境准备Eagle安装Kafka-Eagle框架可以监控Kafka集群的整体运行情况&#xff0c;在生产环境中经常使用 Eagle环境安装 Mysql环境准备 Eagle的安装依赖于Mysql&#xff0c;Mysql主要用来存储可视化展示的数据 将mysql文件夹及里面所有内…

Matlab系列(005) 一 归一化

目录1、前言2、什么是归一化&#xff1f;3、为什么要进行归一化4、归一化方法详解与Matlab实现5、总结1、前言 ​   归一化技术是数据预处理的核心环节&#xff0c;本文将深度解析主流归一化方法&#xff0c;提供可复现Matlab代码&#xff0c;并探讨其在各领域中的应用场景。…

【K8s】整体认识K8s之namespace

命名空间将资源划分为相互隔离的组。kubectl get namespace/ns系统默认创建四个namespace&#xff0c;分别是default、kube-node-lease、kube-public、kube-system。default 没有指明使用其它命名空间的对象所使用的默认命名空间、kube-system 系统创建对象所使用的命名空间。…

rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十八) 使用表格

使用表格egui_extras::TableBuilder // Cargo.toml [dependencies] eframe "0.32.1" egui "0.32.1" egui_extras "0.32.1"egui_extras::Column::auto() 列宽根据内容自动计算.resizable(true) 允许用户手动拖动调整列宽 fn main() -> efra…

【C#】构造函数实用场景总结

文章目录前言一、构造函数是什么&#xff1f;二、构造函数的用法1.初始化对象&#xff0c;避免无效状态2 初始化静态成员3 构造函数重载4.构造函数链5. 单例模式&#xff0c;多次实例化保持一个对象6. 依赖注入7. 初始化只读对象前言 构造函数是我们平常编程里经常能碰到的老伙…

LLM预训练架构全解析:从零构建一个语言世界的“操作系统”

导读&#xff1a;作为开发者&#xff0c;我们每天都在import或#include各种库&#xff0c;我们信任这些由无数代码构成的底层依赖。那么&#xff0c;当我们调用一个LLM时&#xff0c;它所依赖的那个更底层的、无形的**“语言操作系统”**&#xff0c;又是如何被“编译”出来的&…

Linux服务测试题(DNS,NFS,DHCP,HTTP)

一&#xff0c;实验拓扑&#xff1a;二&#xff0c;需求APPSRV&#xff1a;主机名&#xff1a;appsrv.example.comip地址&#xff1a;192.168.100.10网关&#xff1a;192.168.100.254网卡为NAT模式STORAGESRV&#xff1a;主机名&#xff1a;storagesrv.example.comip地址&#…

DevOps 简介及就业前景

DevOps 简介及就业前景 目录 DevOps简介核心概念重难点解析具体场景使用就业前景学习路径最佳实践 DevOps简介 什么是DevOps DevOps是Development&#xff08;开发&#xff09;和Operations&#xff08;运维&#xff09;的组合词&#xff0c;是一种软件开发和IT运维的文化…

《CF1120D Power Tree》

题目描述 给定一棵有 n 个顶点的有根树&#xff0c;树的根为顶点 1。每个顶点都有一个非负的价格。树的叶子是指度为 1 且不是根的顶点。 Arkady 和 Vasily 在树上玩一个奇怪的游戏。游戏分为三个阶段。第一阶段&#xff0c;Arkady 购买树上的一些非空顶点集合。第二阶段&…

CPTS-Agile (Werkzeug / Flask Debug)

枚举 nmap -sC -sV -T4 -Pn -n -p- 10.10.11.203进行常规的网页枚举和测试发现报错信息&#xff0c;‘Werkzeug / Flask Debug’ 测试Export导出功能发现存在路径遍历查看这篇文章 https://book.hacktricks.wiki/zh/network-services-pentesting/pentesting-web/werkzeug.html#…

【网络运维】Shell 脚本编程:while 循环与 until 循环

Shell 脚本编程&#xff1a;while 循环与 until 循环 循环结构简介 循环语句是 Shell 脚本中用于重复执行一条或一组指令的重要工具&#xff0c;直到满足特定条件时停止执行。Shell 脚本中常见的循环语句包括 while、until、for 和 select。本文将重点介绍 while 和 until 两种…

LLM 中评价指标与训练概要介绍

在【LLM】LLM 中增量解码与模型推理解读一文中对 LLM 常见名词进行了介绍&#xff0c;本文会对 LLM 中评价指标与训练概要进行介绍&#xff0c;本文并未介绍训练实操细节&#xff0c;未来有机会再了解&#xff5e; 一、LLM 如何停止输出 在看 LLM 评价指标前&#xff0c;先看…

Java 20 新特性及具体应用

目录 1. 模式匹配 for switch&#xff08;预览特性&#xff09; 2. 记录模式&#xff08;预览特性&#xff09; 3. 外部函数与内存 API&#xff08;预览特性&#xff09; 4. 矢量 API&#xff08;孵化器特性&#xff09; 5. 作用域值&#xff08;预览特性&#xff09; 6. …

【STM32】CubeMX(十一):FreeRTOS任务挂起与解挂

这篇文章是 STM32 HAL FreeRTOS 下的任务挂起与恢复机制&#xff0c; 结合 CubeMX 图示与代码&#xff0c;构建了一个 FreeRTOS 控制示例。 本篇目标&#xff1a;创建两个任务&#xff1a; 一个控制蓝灯闪烁&#xff08;myTask01&#xff09; 另一个监控按键&#xff08;Start…