HarmonyOS第一课——DevEco Studio的使用

HarmonyOS第一课

DevEco Studio的使用

集成开发环境:

  • SDK
  • 构建插件
  • ohpm等工具

DevEco Studio提供开箱即用的开发体验,将HarmonyOS SDK、Node.js、Hvigor、OHPM、模拟器平台等进行合一打包,简化DevEco Studio安装配置流程。

HarmonyOS SDK已嵌入DevEco Studio中,无需额外下载配置。HarmonyOS SDK可以在DevEco Studio安装位置下DevEco Studio\sdk目录中查看。如需进行OpenHarmony应用开发,可通过Settings > OpenHarmony SDK页签下载OpenHarmony SDK。

Hello World:

  • Project name:HelloWorld
  • Buidle name:com.example.helloworld
  • Save location:
  • Compatible SDK:5.0.0(12)
  • Module name(模块名):entry
  • Device type:Phone Tablet 2in1 Car…

自动签名:

  • File > Project Structure, Project,Signing Configs,default:
    • Sign in 使用华为账号,登陆后签名材料会自动下载
      • Team
      • Store file(*.p12)
      • Store password
      • Key alias
      • Key password
      • Sign alg
      • Profile file(*.p7b)
      • Cerpath file(*.cer)
    • 点击OK 完成配置;

签名完成后,在本地生成密钥(.p12)、证书请求文件(.csr)、数字证书(.cer)及Profile文件(.p7b),数字证书在AppGallery Connect网站的“证书、APP ID和Profile”页签中可以查看。

之后就可以运行项目;

诊断开发环境

  • 为了您开发应用/服务的良好体验,DevEco Studio提供了开发环境诊断的功能,帮助您识别开发环境是否完备。您可以在欢迎页面单击Diagnose进行诊断。如果您已经打开了工程开发界面,也可以在菜单栏单击Help > Diagnostic Tools > Diagnose Development Environment进行诊断。
  • DevEco Studio开发环境诊断项包括电脑的配置、网络的连通情况、依赖的工具是否安装等。如果检测结果为未通过,请根据检查项的描述和修复建议进行处理。

设置中的 Plugins,支持安装插件,如去Installed“Chinese”简体中文插件,实现汉化;需要重启生效;

ArkTS应用

Application应用开发, Atomic Service对应为元服务开发

模板名称说明
Empty Ability用于Phone、Tablet、2in1、Car设备的模板,展示基础的Hello World功能。
Native C++用于Phone、Tablet、2in1、Car设备的模板,作为应用调用C++代码的示例工程,界面显示“Hello World”。
[CloudDev]Empty Ability端云一体化开发通用模板。更多信息请参见端云一体化开发。
[Lite]Empty Ability用于Lite Wearable设备的模板,展示了基础的Hello World功能。可基于此模板,修改设备类型及RuntimeOS,进行小型嵌入式设备开发。请参见创建Lite工程。
Flexible Layout Ability用于创建跨设备应用开发的三层工程结构模板。三层工程结构包含common(公共能力层)、features(基础特性层)、products(产品定制层)。
Embeddable Ability用于开发支持被其他应用嵌入式运行的元服务的工程模板。
  • 选择 Empty Ability模版
  • 配置工程界面,Compatible SDK选择“5.0.0(12)”,其他参数保持默认设置即可

项目介绍:

  • AppScope > app.json5:应用的全局配置信息
  • entry:HarmonyOS工程模块,编译构建生成一个HAP包
    • src > main > ets:用于存放ArkTS源码。
    • src > main > ets > entryability:应用/服务的入口。
    • src > main > ets > entrybackupability:应用提供扩展的备份恢复能力。
    • src > main > ets > pages:应用/服务包含的页面。
    • src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。
    • src > main > module.json5:模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。
    • build-profile.json5:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。
    • hvigorfile.ts:模块级编译构建任务脚本。
    • obfuscation-rules.txt:混淆规则文件。混淆开启后,在使用Release模式进行编译时,会对代码进行编译、混淆及压缩处理,保护代码资产。详见开启代码混淆。
    • oh-package.json5:用来描述包名、版本、入口文件(类型声明文件)和依赖项等信息。
  • oh_modules:用于存放三方库依赖信息。
  • build-profile.json5:工程级配置信息,包括签名signingConfigs、产品配置products等。其中products中可配置当前运行环境,默认为HarmonyOS。
  • hvigorfile.ts:工程级编译构建任务脚本。
  • oh-package.json5:主要用来描述全局配置,如:依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化配置(parameterFile)等。

表示设备的类型,取值如下:

  • phone:手机
  • car:车机
  • tablet:平板
  • tv:智慧屏
  • wearable:智能穿戴
  • 2in1
第一个页面

在“Project”窗口,点击“entry > src > main > ets > pages”,打开“Index.ets”文件,进行页面的编写。

应该是类js风格的编码方式;

关于组件布局

@Entry
@Component
struct Second {}
@State
build() {}Text()
Button()

在副一级文件夹上 右击新建 ArkTS File 或新建 Empty Page;

配置新建页面的路由:

  • 打开“entry > src > main > resources > base > profile”,在main_pages.json文件中的“src”下配置第二个页面的路由
{"src": ["pages/Index","pages/Second"]
}

页面间跳转:

  • 页面路由router根据页面url找到目标页面,从而实现跳转。使用页面路由请导入router模块。
  • 如果需要实现更好的转场动效,推荐使用Navigation

Ark翻译过来时“方舟”

import { router } from '@kit.ArkUI';
import { BusinessError } from '@kit.BasicServicesKit';.onClick(() => {console.info(`Succeeded in clicking the 'Next' button.`)// 跳转到第二页router.pushUrl({ url: 'pages/Second' }).then(() => {console.info('Succeeded in jumping to the second page.')}).catch((err: BusinessError) => {console.error(`Failed to jump to the second page. Code is ${err.code}, message is ${err.message}`)})
})// 返回按钮绑定onClick事件,点击按钮时返回到第一页
.onClick(() => {console.info(`Succeeded in clicking the 'Back' button.`)try {// 返回第一页router.back()console.info('Succeeded in returning to the first page.')} catch (err) {let code = (err as BusinessError).code; let message = (err as BusinessError).message; console.error(`Failed to return to the first page. Code is ${code}, message is ${message}`)}
})
真机调试
  • 将搭载HarmonyOS系统的真机与电脑连接
  • 进行签名:点击File > Project Structure… > Project > SigningConfigs界面勾选“Support HarmonyOS”和“Automatically generate signature”,点击界面提示的“Sign In”,使用华为账号登录。等待自动签名完成;

注:到现在还只是刷教程,回头得买台新电脑。。。

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

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

相关文章

element-plus按需引入报错AutoImport is not a function

官网文档:快速开始 | Element Plus webpack配置 // webpack.config.js const AutoImport require(unplugin-auto-import/webpack) const Components require(unplugin-vue-components/webpack) const { ElementPlusResolver } require(unplugin-vue-components…

在 Vue 中实现与优化轮询技术

轮询(Polling)是一种计算机程序反复检查某个条件或状态的技术,通常用于在一定的时间间隔内不断请求信息或更新数据状态。轮询被广泛应用于前端开发(例如实现页面实时更新)、后端服务监控、网络设备状态检查等场景。 1…

内核调度抢占模式——voluntary和full对比

一、背景 在之前的内核调度子系统专栏里,我们已经把调度有关的如CFS调度/RT调度,调度时间片,调度时延,cfs唤醒抢占特性,这些基本概念和细节都讲了一遍。其实这些细节更多的是帮助我们理解调度系统是如何运作的&#x…

【网络原理】关于HTTP状态码以及请求的构造的哪些事

前言 🌟🌟本期讲解关于HTTP协议的重要的机制~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话不…

Day13杨辉三角

给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> res new Arra…

Docker基本概念汇总(更全面了解Docker)

Docker是一种开源的平台&#xff0c;用于开发、部署和运行应用程序。它通过“容器”技术实现了轻量级虚拟化&#xff0c;使应用程序和其依赖项能够一起打包、部署并运行。以下是Docker基本概念的详细解释。 图片来源网络 1. Docker 容器&#xff08;Container&#xff09; 容…

OpenCV视觉分析之目标跟踪(8)目标跟踪函数CamShift()使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 找到物体的中心、大小和方向。 CamShift&#xff08;Continuously Adaptive Mean Shift&#xff09;是 OpenCV 中的一种目标跟踪算法&#xff0…

【每日刷题】Day151

【每日刷题】Day151 &#x1f955;个人主页&#xff1a; 开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 【模板】01背包_牛客题霸_牛客网 【模板】01背包_牛客题霸_牛客网 //思路&#xff1a;动态规划 #incl…

学习Vue之商城案例(代码+详解)

目前&#xff0c;我们学习Vue的一些基础的知识&#xff0c;那么就让我们做一个像下图这样简单的商城案例吧。 目录 通过脚手架创建项目 安装axios和bootstrap组件 安装axios和bootstrap 在保存的时候不进行格式化校验 初步定义App.vue文件 初步渲染组件页面 根据接口渲染…

【测试】【Debug】vscode中同一个测试用例出现重复

这种是正常的情况 当下面又出现一个 类似python_test->文件夹名->test_good ->test_pad 同一个测试用例出现两次&#xff0c;名称都相同&#xff0c;显然是重复了。那么如何解决&#xff1f; 这种情况是因为在终端利用“pip install pytest”安装 之后&#xff0c;又…

基于C++的决策树C4.5机器学习算法(不调包)

目前玩机器学习的小伙伴&#xff0c;上来就是使用现有的sklearn机器学习包&#xff0c;写两行代码&#xff0c;调调参数就能跑起来&#xff0c;看似方便&#xff0c;实则有时不利于个人能力发展&#xff0c;要知道现在公司需要的算法工程师&#xff0c;不仅仅只是会调参&#x…

Mac解决 zsh: command not found: ll

Mac解决 zsh: command not found: ll 文章目录 Mac解决 zsh: command not found: ll解决方法 解决方法 1.打开bash_profile 配置文件vim ~/.bash_profile2.在文件中添加配置&#xff1a;alias llls -alF键盘按下 I 键进入编辑模式3. alias llls -alF添加完配置后&#xff0c;按…

VBA10-处理Excel的动态数据区域

end获取数据边界 1、基本语法 1-1、示例&#xff1a; 2、配合row和column使用 2-1、示例1 2-2、示例2 此时&#xff0c;不管这个有数值的区域&#xff0c;怎么增加边界&#xff0c;对应的统计数据也会跟着变的&#xff01;

无人车之路径规划篇

无人车的路径规划是指在一定的环境模型基础上&#xff0c;给定无人车起始点和目标点后&#xff0c;按照性能指标规划出一条无碰撞、能安全到达目标点的有效路径。 一、路径规划的重要性 路径规划对于无人车的安全、高效运行至关重要。它不仅能够提高交通效率&#xff0c;减少交…

【前端基础】CSS基础

目标&#xff1a;掌握 CSS 属性基本写法&#xff0c;能够使用文字相关属性美化文章页。 01-CSS初体验 层叠样式表 (Cascading Style Sheets&#xff0c;缩写为 CSS&#xff09;&#xff0c;是一种 样式表 语言&#xff0c;用来描述 HTML 文档的呈现&#xff08;美化内容&#…

一种高度集成的数字化管理平台:城市管理综合执法系统(源码)

什么是城市管理综合执法系统&#xff1f; 城市管理综合执法系统是一种高度集成的数字化管理平台&#xff0c;它旨在通过整合信息技术资源&#xff0c;实现对城市环境、秩序、设施等多方面的综合管理和高效执法。 城市管理综合执法系统通常包含以下几个核心要素和功能&#xff…

【Python】强大的正则表达式工具:re模块详解与应用

强大的正则表达式工具&#xff1a;re模块详解与应用 在编程和数据处理中&#xff0c;字符串的处理是不可避免的一项任务。无论是从文本中提取信息、验证数据格式&#xff0c;还是进行复杂的替换操作&#xff0c;正则表达式&#xff08;Regular Expression&#xff0c;简称Rege…

计算机毕业设计Python+图神经网络手机推荐系统 手机价格预测 手机可视化 手机数据分析 手机爬虫 Django Flask Spark 知识图谱

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

03.DDD六边形架构

学习视频来源&#xff1a;DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 什么是依赖DDD四层架构六边形架构代码实现 想要详细了解六边形架构&#xff0c;可以看我之前的一篇文章。是对六边形架构原文的翻…

前端开发实现自定义勾选/自定义样式,可复选,可取消勾选

基于后端返回数组实现多选、复选 以下代码基于vue2&#xff0c;如果有需要React/Vue3或者其他框架代码的&#xff0c;可以通过国内直连GPT4o进行代码转换&#xff0c;转换正确率99% 前端代码如下(直接拷贝到你的vue代码即可)&#xff1a; <!-- CustomCheckboxList.vue --&g…