【HarmonyOS Next之旅】DevEco Studio使用指南(二)

目录

1 -> 工程模板介绍

2 -> 创建一个新的工程

2.1 -> 创建和配置新工程

2.1.1 -> 创建HarmonyOS工程

2.2.2 -> 创建OpenHarmony工程


1 -> 工程模板介绍

DevEco Studio支持多种品类的应用/元服务开发,预置丰富的工程模板,可以根据工程向导轻松创建适应于各类设备的工程,并自动生成对应的代码和资源模板。同时,DevEco Studio还提供了多种编程语言供开发者进行应用/元服务开发,包括ArkTS、JS和C/C++。

工程模板支持的开发语言及模板说明如下表所示:

模板名称说明
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,进行小型嵌入式设备开发。
Flexible Layout Ability用于创建跨设备应用开发的三层工程结构模板。三层工程结构包含common(公共能力层)、features(基础特性层)、products(产品定制层)。
Embeddable Ability用于开发支持被其他应用嵌入式运行的元服务的工程模板。

2 -> 创建一个新的工程

当开始开发一个应用/元服务时,首先需要根据工程创建向导,创建一个新的工程,工具会自动生成对应的代码和资源模板。

说明

在运行DevEco Studio工程时,建议每一个运行窗口有2GB以上的可用内存空间。

2.1 -> 创建和配置新工程

DevEco Studio提供了基础的工程模板资源,不同模板支持的设备类型、API Version可能不同,在创建新工程前,提前了解各模板的相关信息。

2.1.1 -> 创建HarmonyOS工程

1. 通过如下两种方式,打开工程创建向导界面。

  1. 如果当前未打开任何工程,可以在DevEco Studio的欢迎页,选择Create Project开始创建一个新工程。
  2. 如果已经打开了工程,可以在菜单栏选择File > New > Create Project来创建一个新工程。

2. 根据工程创建向导,选择创建Application或Atomic Service。再选择需要的Ability工程模板,然后单击Next。

说明

从API 11版本开始支持Atomic Service元服务工程开发。

Atomic Service元服务工程暂不支持Native开发。

3. 在工程配置页面,需要根据向导配置工程的基本信息。

  • Project name:工程的名称,可以自定义,由大小写字母、数字和下划线组成。
  • Bundle name:标识应用的包名,用于标识应用的唯一性。

    说明

    • 应用包名要求:

      • 必须为以点号(.)分隔的字符串,且至少包含三段,每段中仅允许使用英文字母、数字、下划线(_),如“com.example.myapplication ”。
      • 首段以英文字母开头,非首段以数字或英文字母开头,每一段以数字或者英文字母结尾,如“com.01example.myapplication”。
      • 不允许多个点号(.)连续出现,如“com.example..myapplication ”。
      • 长度为7~128个字符。
    • Save location:工程文件本地存储路径,由大小写字母、数字和下划线等组成,不能包含中文字符。
    • Compatible SDK:兼容的最低API Version。
    • Module name: 模块的名称。
    • Device type:该工程模板支持的设备类型。

    4. 单击Finish,工具会自动生成示例代码和相关资源,等待工程创建完成。

    2.2.2 -> 创建OpenHarmony工程

    1. 在完成创建HarmonyOS工程后,根据如下操作修改工程级build-profile.json5文件中相关字段:

    1. 在工程级build-profile.json5文件添加compileSdkVersion字段。

    2. compatibleSdkVersioncompileSdkVersion字段赋值为整数类型。

    3. 将runtimeOS从"HarmonyOS"修改为"OpenHarmony"
    "products": [{"name": "default","signingConfig": "default", "compileSdkVersion": 11,    //指定OpenHarmony应用编译时的版本,当前以API 11为例"compatibleSdkVersion": 11, //指定OpenHarmony应用兼容的最低版本,当前以API 11为例"runtimeOS": "OpenHarmony",}
    ],

    2. 单击Sync Now进行同步。在Sync Check弹窗中点击Yes,同意将module.json5/config.json文件中的phone切换为OpenHarmony支持的default类型,并删除在OpenHarmony不适用的其他设备类型,同步成功无其他报错则工程创建完成。

    说明

    若选择Native C++模板创建OpenHarmony应用,且应用需要在RK开发板上运行,则需在对应Native模块的build-profile.json5文件buildOption/externalNativeOptions字段下,新增abiFilters字段并赋值为"armeabi-v7a"。


    感谢各位大佬支持!!!

    互三啦!!!

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

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

    相关文章

    unity3d 背景是桌面3d数字人,前面是web的表单

    是可以实现的,但涉及多个技术栈的结合,包括 Unity3D、Web 技术(HTML、JavaScript)、以及可能的 WebGL 或 WebRTC 技术。大致有以下几种实现方案: 方案 1:Unity 作为独立应用(桌面端&#xff0…

    猫耳大型活动提效——组件低代码化

    1. 引言 猫耳前端在开发活动的过程中,经历过传统的 pro code 阶段,即活动页面完全由前端开发编码实现,直到 2020 年接入公司内部的低代码活动平台,满足了大部分日常活动的需求,运营可自主配置活动并上线,释…

    深度学习系列79:Text2sql调研

    参考 https://github.com/topics/text-to-sql 这里是一些资源:https://github.com/eosphoros-ai/Awesome-Text2SQL/blob/main/README.zh.md 这里是综述文章:https://zhuanlan.zhihu.com/p/647249972 1. 数据集 Spider: 一个跨域的复杂text2sql数据集&a…

    Linux 系统负载过高的排查思路

    技术探讨:Linux系统负载过高的排查思路 在Linux服务器运行过程中,如果系统负载过高,可能会导致性能下降和服务不稳定。以下是针对Linux系统负载过高问题的排查思路和解决方法: 1. 查看系统负载: 使用uptime或top命令查…

    【互联网性能指标】QPS/TPS/PV/UV/IP/GMV/DAU/MAU/RPS

    📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)清华大学出版社签约作家、Java领域优质创作者、CSDN博客专家、…

    linux---天气爬虫

    代码概述 这段代码实现了一个天气查询系统,支持实时天气、未来天气和历史天气查询。用户可以通过终端菜单选择查询类型,并输入城市名称来获取相应的天气信息。程序通过 TCP 连接发送 HTTP 请求,并解析返回的 JSON 数据来展示天气信息。 #in…

    Java高频面试之集合-08

    hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:详细说说CopyOnWriteArrayList CopyOnWriteArrayList 详解 CopyOnWriteArrayList 是 Java 并发包(java.util…

    【微信小程序 onTabItemTap:精准监听 TabBar 点击事件】

    onTabItemTap 是微信小程序中的一个页面生命周期函数,用于监听用户点击 TabBar 上的某个项时的事件。以下是如何运用 onTabItemTap 的详细说明: 使用场景 onTabItemTap 适用于需要在用户点击 TabBar 切换页面时执行特定逻辑的场景。例如,你…

    痉挛性斜颈需要做手术吗?

    痉挛性斜颈的治疗是一个涉及多种医学知识的话题,让我们从多方面分析这个问题,来谈谈是否需要进行手术。 首先,我们要明确痉挛性斜颈是一种什么疾病。痉挛性斜颈是一种颈部肌肉异常收缩的疾病,可能导致头部持续或间歇性地向一侧旋…

    AOT是什么?

    https://www.bilibili.com/video/BV1Es4y1q7Bf?spm_id_from333.788.player.switch&vd_source12d5954938d20d50645e227a6a728c76&p87常规的java代码是即时解释执行的,只有热点代码才会提前编译成二进制,并且将java代码放到别的电脑执行时得安装j…

    【JavaWeb学习Day23】

    Maven高级 分模块设计与开发 分模块设计:将一个大项目分成若干个子模块,方便项目的维护、扩展,也方便模块间的相互引用,资源共享。 策略: 1.策略一:按照功能模块拆分,比如:公共组…

    图像的特征

    图像的特征主要包括以下几类: 1. 颜色特征: 直方图:描述图像中颜色的分布。 颜色矩:通过颜色的均值、方差等统计量表示颜色分布。 主色调:图像中占主导地位的颜色。 2. 纹理特征: 灰度共生矩阵&#xff0…

    ⭐LeetCode周赛 3468. 可行数组的数目——暴力与数学⭐

    ⭐LeetCode周赛 3468. 可行数组的数目——暴力与数学⭐ 示例 1: 输入:original [1,2,3,4], bounds [[1,2],[2,3],[3,4],[4,5]] 输出:2 解释: 可能的数组为: [1, 2, 3, 4] [2, 3, 4, 5] 示例 2: 输入&…

    AF3 squeeze_features函数解读

    AlphaFold3 data_transforms 模块的 squeeze_features 函数的作用去除 蛋白质特征张量中不必要的单维度(singleton dimensions)和重复维度,以使其适配 AlphaFold3 预期的输入格式。 源代码: def squeeze_features(protein):&qu…

    【打卡d4】日期类--分组输入

    第一题:根据一年中的第 n 天计算日期 📌 知识点 判断闰年: 闰年条件:能被 400 整除,或 能被 4 整除但不能被 100 整除。平年:2 月 28 天;闰年:2 月 29 天。 累加月份,找…

    JAVA(5)-基础概念

    *固定格式 一.注释和关键字 关键字:被赋予特定关系的词 字母全部小写,如class表示一个类 二.字面量 1.字面量类型 *字符串里面的类型是一句话,用双引号 字符里面的类型只有一个字或字母 null只能用字符串的方式打印 2.制表符 \t 至少补…

    本地部署Navidrome个人云音乐平台随时随地畅听本地音乐文件

    文章目录 前言1. 安装Docker2. 创建并启动Navidrome容器3. 公网远程访问本地Navidrome3.1 内网穿透工具安装3.2 创建远程连接公网地址3.3 使用固定公网地址远程访问 前言 今天我要给大家安利一个超酷的私有化音乐神器——Navidrome!它不仅让你随时随地畅享本地音乐…

    C++ 中的RAII(资源获取及初始化)

    C 中的RAII(资源获取即初始化) RAII(Resource Acquisition Is Initialization)是C中一种重要的编程范式,全称为“资源获取即初始化”。它是一种通过对象生命周期管理资源(如内存、文件句柄、网络连接等)的技术&#x…

    蓝桥杯嵌入式组第七届省赛题目解析+STM32G431RBT6实现源码

    文章目录 1.题目解析1.1 分而治之,藕断丝连1.2 模块化思维导图1.3 模块解析1.3.1 KEY模块1.3.2 ADC模块1.3.3 IIC模块1.3.4 UART模块1.3.5 LCD模块1.3.6 LED模块1.3.7 TIM模块 2.源码3.第七届题目 前言:STM32G431RBT6实现嵌入式组第七届题目解析源码&…

    DeepSeek技术名词全解析:一场属于中国AI的“觉醒时刻”

    在2025年的人工智能浪潮中,一个名为DeepSeek的中国团队,用一系列技术突破改写了全球AI竞争的叙事。从“顿悟时刻”到“群体策略优化”,从“冷启动”到“长链思考”,这些晦涩的技术术语背后,是一场关乎人类智能边界的革…