Harmony学习笔记一——项目创建及配置

news2024/9/21 16:25:42

文章基于Harmony Next Preview2 进行学习,其他版本可能会稍有不同

准备工作

由于目前Harmony Next仅有Preview版本,想要进行Harmony Next开发需要向华为申请权限,具体操作参考: https://developer.huawei.com/consumer/cn/forum/topic/0208140368442297004?fid=0101587866109860105
权限通过后就可以下载DevEco Studio NEXT Developer Preview的鸿蒙编译器

项目创建

  1. 打开IDE, 点击Create Project

  2. 选择模版,做常规应用开发选择第一个Empty Ability就可以了,然后点击Next
    在这里插入图片描述

  3. 配置项目信息
    在这里可以设置项目名称(Project name)、包名(Bundle name)、保存位置(Save location)、模块名称(Module name)等

    要注意的是

    • 由于是基于Next开发,因此Compile SDK和Compatible SDK要在4.1.0(11)及以上
    • Device type 是配置运行应用的设备类型,可以根据应用需求进行选择,其中2in1是指平板电脑二合一的设备

    配置好之后点击Finish,到此完成了项目的创建。
    在这里插入图片描述

目录解析

第一级目录
  • AppScope
    应用级别的相关配置及资源。

  • build-profile.json5

    1. app标签
      应用的打包配置,包含签名、sdk版本等,和Android工程中app目录下gradle文件的android标签作用一致

    2. modules标签
      配置项目中包含哪些modules,与Android工程中setting.gradle的作用一致

  • entry
    一个module目录,目录名是创建项目时指定的名字,代码就是在这个目录中写的

  • hvigor
    Harmony就是使用hvigor构建的,作用和android中的gradle文件夹一致

  • hvigorfile.ts
    项目级别的打包脚本,里面可以配置自定义插件

  • local.properties
    本地路径配置,默认里面只有hwsdk.dir(Harmony的SDK目录)

  • oh-package.json5
    配置所需要的依赖库

  • oh-package-lock.json5
    根据oh-package.json5自动生成,里面的依赖库会绑定具体版本

  • oh_modules
    在这里会关联到依赖库的具体目录,可以通过这里查看依赖库的代码

AppScope
  • resources
    存储资源,这里的资源可以被项目中所有的module引用

  • app.json5
    应用的配置信息,包含:包名、版本名、版本号、图标、应用名等

entry
  • src/main/ets
    这是源码目录,是我们编写Harmony代码的地方, 同Android中的src/main/java

  • src/main/resources
    资源目录,可以添加颜色、字符串、图片等资源,同Android中的src/main/res

    • base/element
      配置字符串、颜色等常量

    • base/media
      配置图片等多媒体资源

    • base/profile/main_pages.json
      配置该module中有哪些页面(Page),非常重要的文件,类似于在manifest.xml中配置与Activity

  • src/main/module.json5
    该module的配置文件

  • build-profile.json5
    module构建的配置文件

  • hvigorfile.ts
    module构建脚本

  • oh-package.json5
    配置module所需要的依赖库

  • oh-package-lock.json5
    根据oh-package.json5自动生成,里面的依赖库会绑定具体版本

项目配置

应用名和图标配置

当我们在模拟器上运行项目后发现。app的名称是label,但AppScope/app.json5明明已经配置了是HM_demo,这是怎么回事呢

Harmony应用名称(文档上称为标签)分为应用名和入口名,在AppScope/app.json5中配置的是应用名,在手机的的设置——>应用和元服务中可以看到
在这里插入图片描述
而桌面上显示的叫入口名
在这里插入图片描述
入口名 实在entry中 src/main/module.json5设置的。同样,图标也分为应用图标和入口图标,设置方式与应用名称一样。

启动页配置

在我们启动应用时候会先看到一个中间为应用默认图标(四叶草)的空白页面,即便我们将应用图标和入口图标都替换了,启动时依旧显示一个四叶草。这个设置是在entry中 src/main/module.json5中的startWindowIcon属性。讨厌的是这个属性不能去除、不能为空,只能设置一个图片。如果不需要系统的启动图可以将startWindowIcon设置为一个的像素颜色和startWindowBackground相同的图片。

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

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

相关文章

一文搞懂HashSet类的底层实现原理

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

Flask多线程开发指南

文章目录 1. 什么是多线程?2. Flask中的多线程3. 注意事项结论 在Web应用程序开发中,有时候需要处理一些耗时的任务,例如与数据库交互、发送网络请求或执行计算密集型的操作。为了保持用户体验的流畅性,我们可以使用多线程来处理这…

【开源可视化报表设计器】借力实现高效率流程化办公!

进行数字化转型、实现流程化办公,这些应该是目前很多企业都想要实现的目标吧。那么,利用什么样的软件平台可以实现?低代码技术平台拥有可视化界面、灵活操作、好维护等众多优势特点,可以借助低代码技术平台、开源可视化报表设计器…

Hidedump:dumplsass加密免杀工具

文章目录 前记hook WriteAllduplication其他思路SilentProcessExitminidumpCallback 后记referencereference 前记 思路:直接dumplsass原文会被杀软删掉,通过hook WriteAll对dump的内容先加密再保存到磁盘并离线解密 项目已开源,该项目采用…

【git】开发提交规范(feat、fix、perf)

这段时间收到的需求很多,可能是临近两周一次的大版本灰度上线,这次产生了一个关于git的思考,就是各个版本之间怎么管理的问题,这里做出我自己的一些方法。 首先,既然已经明确了remote分支中的release分支为主分支&…

为什么说 Redis 是单线程的?——Java全栈知识(25)

为什么说 Redis 是单线程的? 我们常说的 Redis 是单线程的,但是我前面在讲持久化机制的时候又说 RDB 的持久化是通过主进程 fork 出一个子进程来实现 RDB 持久化。那么 Redis 到底是多线程还是单线程的呢? Redis 的网络 IO 和键值的读写是单…

爬虫学习--11.MySQL数据库的基本操作(上)

MySQL数据库的基本操作 创建数据库 我们可以在登陆 MySQL 服务后,使用命令创建数据库,语法如下: CREATE DATABASE 数据库名; 显示所有的数据库 show databases; 删除数据库 使用普通用户登陆 MySQL 服务器,你可能需要特定的权限来创建或者删…

java中的StringBuffer类和StringBuildet类

一、StringBuffer类 1、特点 底层是不被final修饰的char数组value,数组地址可以发生改变,当StringBuffer类对象的值发生改变时不用创建新的对象 2、构造方法 3、扩容规则 StringBuffer的底层数组value在扩容时为当前数组的长度2倍加2或者当前数组长度加上要追加…

CVE-2020-7982 OpenWrt 远程命令执行漏洞学习(更新中)

OpenWrt是一款应用于嵌入式设备如路由器等的Linux操作系统。类似于kali等linux系统中的apt-get等,该系统中下载应用使用的是opgk工具,其通过非加密的HTTP连接来下载应用。但是其下载的应用使用了SHA256sum哈希值来进行检验,所以将下载到的数据…

如何将短信从 iPhone 传输到计算机 - 5 种灵活的方式

概括 与他人交流的多种方式之一是发送短信。对于那些包含珍贵回忆或重要信息的消息,您需要将它们发送到另一台设备(例如计算机)进行备份。将短信文件发送到计算机是保存宝贵数据的最佳方法之一。继续阅读本文,了解如何将短信从 i…

深度学习 | 复杂注意力神经网络 —— 大模型

前面讲解了注意力神经网络 一、BERT模型 1、什么是BERT 它是由谷歌在2018年提出的 双向Transformer 编码器模型。 Bidirectional Encoder Representations from Transformers. 主要使用了Transformer的编码器 Transformer 编码器堆叠; 预训练 精调两步结构。 BERT…

FreeBSD/Linux下的系统资源监视器排队队

bpytop bpytop 是一个基于 Python 的资源监视器,可以在 FreeBSD 上使用。它提供了对文件写入磁盘、网络、CPU 和内存占用的监视功能。 pkg install bpytop 或者用ports安装 cd /usr/ports/sysutils/bpytop/ make install clean bashtop bashtop 也是一个基于 P…

微服务如何做好监控

大家好,我是苍何。 在脉脉上看到这条帖子,说阿里 P8 因为上面 P9 斗争失败走人,以超龄 35 被裁,Boss 上找工作半年,到现在还处于失业中。 看了下沟通记录, 沟通了 1000 多次,但没有一个邀请投递…

AI网络爬虫:批量爬取电视猫上面的《庆余年》分集剧情

电视猫上面有《庆余年》分集剧情&#xff0c;如何批量爬取下来呢&#xff1f; 先找到每集的链接地址&#xff0c;都在这个class"epipage clear"的div标签里面的li标签下面的a标签里面&#xff1a; <a href"/drama/Yy0wHDA/episode">1</a> 这个…

Redis篇 浅谈分布式系统

分布式系统 一. 单机架构二.分布式系统引入三.引入更多的应用服务器四.读写分离五.引入缓存服务器六. 将数据库服务器拆分七.微服务架构 一. 单机架构 单机架构,就是用一台服务器,完成所有的工作. 这时候就需要我们引入分布式系统了. 分布式系统是什么含义呢?就是由一台主机服…

Webpack源码泄露到Vue快速入门

前言 1.webpack 源码泄露 1.1漏洞简介 1.2存在泄露的站点 1.3 如何判断是否存在漏洞 方法1: 方法2: 1.4.如何将js.map文件还原为项目文件 1. 4.1查看npm版本 1.4.2 安装reverse-sourcemap 1. 4.3.检查是否安装 ​1. 4.4 使用reverse-sourcemap进行js.map文件还原操作…

二、信号连接槽函数

需求&#xff1a;点击Button按钮&#xff08;下班&#xff09;&#xff0c;label显示淦饭 信号发出者&#xff1a;Button 发送的信号&#xff08;signals&#xff09;&#xff1a;被点击 信号接收者&#xff1a;label 信号的处理&#xff08;slots&#xff09;&#xff1a;显示…

Rocketmq集群再搭建

注意上面这个官方架构是 主从模式&#xff0c;还无法做到高可用&#xff0c;因为master节点宕机&#xff0c;从节点没法变成主节点&#xff0c;需要人工重启&#xff0c;够用了。 1. 先准备1台虚拟机&#xff0c;装好1台再克隆2台 根据上面的图&#xff0c;3台机器中有一台…

【再探】Java—泛型

Java 泛型本质是参数化类型&#xff0c;可以用在类、接口和方法的创建中。 1 “擦除式”泛型 Java的“擦除式”的泛型实现一直受到开发者的诟病。 “擦除式”的实现几乎只需要在Javac编译器上做出改进即可&#xff0c;不要改动字节码、虚拟机&#xff0c;也保证了以前没有使…

MVVM_MVVMLight架构

介绍 MVVMLight是一个实现MVVM模式的轻量级框架&#xff08;相对于Prism&#xff09;&#xff0c;能够更好的帮助我们开发WPF Windows Phone、Windows 8、SilverLight相关项目。 安装 在NuGet 工具箱上搜索MVVMLight进行下载 下载后它帮你生成ViewModel文件夹&#xff0c;里面…