鸿蒙-项目创建及了解

目录

项目创建

 1.App普通项目创建

2.元服务创建

项目结构

.hvigor

.idea

AppScope

entry

EntryAbility.ts

pages

resources

module.json5

ohosTest 

hvigorfile.ts

build-profile.json5 

oh_modules

build-profile.json5

hvigorfile.ts

项目运行


项目创建

File->new->create Project

 1.App普通项目创建

第一个为空白模版。选中可以看到对应的创建能力模版


2.元服务创建

元服务可以理解为卡片式的服务模式。类似下图。

项目结构

这里主要讲的是应用的项目结构.

从上到下。

.hvigor

存储构建配置文件信息。

.idea

存储项目的配置信息。

AppScope

翻译过来是【应用程序范围】。它是存放了全局的资源文件及配置信息
resources为资源文件。app.json5为全局配置信息
 

{"app": {"bundleName": "com.application.myapplication",// 标识应用的Bundle名称,用于标识应用的唯一性。"bundleType": "app",// 标识应用的Bundle类型,用于区分应用或者原子化服务。如app或者atomicService"vendor": "example",//应用开发厂商的描述"versionCode": 1000000,//应用的版本号"versionName": "1.0.0",//应用版本号的文字描述,用于向用户展示。"icon": "$media:app_icon",//应用的图标"label": "$string:app_name",//应用的名称"description": "$string:description_application",//应用的描述信息"minAPIVersion": 9,//应用运行需要的SDK的API最小版本。"targetAPIVersion": 9,//应用运行需要的API目标版本。"apiReleaseType": "Release",//应用运行需要的API目标版本的类型,(可不填,系统自动填入)Canary:受限发布的版本。  Beta:公开发布的Beta版本。  Release:公开发布的正式版本。"debug": false,//标识应用是否可调试,true:可调试。 false:不可调试。"car": {  //tablet、tv、wearable、car、phone可以对不对设备单独设置参数,如不设置则默认用公共的"minAPIVersion": 8,}},
}

app.json5

entry

应用模块

EntryAbility.ts

承载Ability生命周期。也是指定了第一个打开的界面

pages

页面

resources

当前应用模块的资源信息

module.json5

{"module": {"name": "entry",   //当前Module的名称"type": "entry",   //标识当前Module的类型。类型有两种,分别: entry:应用的主模块。 feature:应用的动态特性模块。"description": "$string:module_desc",  //前Module的描述信息"mainElement": "EntryAbility",  //当前Module的入口"deviceTypes": [//标识当前Module可以运行在哪类设备上"phone","tablet"],"deliveryWithInstall": true,  //当前Module是否在用户主动安装的时候安装,表示该Module对应的HAP是否跟随应用一起安装。 true:主动安装时安装。 false:主动安装时不安装"installationFree": false,  //当前Module是否支持免安装特性。 true:表示支持免安装特性,且符合免安装约束。 false:表示不支持免安装特性。"pages": "$profile:main_pages",  //当前Module的profile资源,用于列举每个页面信息。"virtualMachine": "ark",   //当前Module运行的目标虚拟机类型,供云端分发使用"metadata": [//(待确认,暂不了解)当前Module的自定义元信息,标签值为数组类型,只对当前Module、UIAbility、ExtensionAbility生效。{"name": "string","value": "string","resource": ""}],"abilities": [//当前Module中UIAbility的配置信息,只对当前UIAbility生效。{"name": "EntryAbility","srcEntry": "./ets/entryability/EntryAbility.ts","description": "$string:EntryAbility_desc","icon": "$media:icon","label": "$string:EntryAbility_label","startWindowIcon": "$media:icon","startWindowBackground": "$color:start_window_background","exported": true,"skills": [//标识UIAbility组件或者ExtensionAbility组件能够接收的Want的特征。简而言之就是消息传递用的{"entities": ["entity.system.home"],"actions": ["ohos.want.action.home"]}]}],"extensionAbilities": [//当前Module中ExtensionAbility的配置信息,标签值为数组类型,只对当前ExtensionAbility生效。],"requestPermissions": [//当前应用运行时需向系统申请的权限集合。{"name": "ohos.abilitydemo.permission.PROVIDER","reason": "$string:reason","usedScene": {"abilities": ["FormAbility"],"when": "inuse"}}]}
}

当前模块的配置资源

ohosTest 

测试用例

hvigorfile.ts

模块级编译构建任务脚本

build-profile.json5 

{"apiType": 'faMode',  //API类型,支持FA和Stage模型"showInServiceCenter": true,  //是否在服务中心展示"buildOption": {//配置筛选har依赖.so资源文件的过滤规则"napiLibFilterOption": {//按照.so文件的优先级顺序,打包最高优先级的.so文件"pickFirsts": ["**/1.so"],//按照.so文件的优先级顺序,打包最低优先级的.so 文件"pickLasts": ["**/2.so"],//排除的.so文件"excludes": ["**/3.so"],//允许当.so重名冲突时,使用高优先级的.so文件覆盖低优先级的.so文件"enableOverride": true},//cpp相关编译配置"externalNativeOptions": {"path": "./src/main/cpp/CMakeLists.txt",  //CMake配置文件,提供CMake构建脚本"arguments": "",  //传递给CMake的可选编译参数"abiFilters": [  //用于设置本机的ABI编译环境"armeabi-v7a","arm64-v8a"],"cppFlags": ""  //设置C++编译器的可选参数},},"targets": [  //定义的Target,开发者可以定制不同的Target,具体请参考定制多目标构建产物{"name": "default","runtimeOS": "HarmonyOS",},{"name": "ohosTest",}    ]
}

当前的模块信息、编译信息配置项

oh_modules

用于存放三方库依赖信息。关于原npm工程适配ohpm操作

build-profile.json5

{"app": { //工程的签名信息,可包含多个签名信息"signingConfigs": [  {"name": "default",  //标识签名方案的名称"type": "HarmonyOS",  //标识HarmonyOS应用//该方案的签名材料"material": {  "certpath": "D:\\SigningConfig\\debug_hos.cer",  //调试或发布证书文件,格式为.cer"storePassword": "******",  //密钥库密码,以密文形式呈现"keyAlias": "debugKey",  //密钥别名信息"keyPassword": "******",  //密钥密码,以密文形式呈现"profile": "D:\\SigningConfig\\debug_hos.p7b",  //调试或发布证书Profile文件,格式为.p7b"signAlg": "SHA256withECDSA",  //密钥库signAlg参数"storeFile": "D:\\SigningConfig\\debug_hos.p12"  //密钥库文件,格式为.p12}}],"compileSdkVersion": 9,  //指定HarmonyOS应用/服务编译时的SDK版本"compatibleSdkVersion": 9,  //指定HarmonyOS应用/服务兼容的最低SDK版本//定义构建的产品品类,如通用默认版、付费版、免费版等"products": [  {"name": "default",  //定义产品的名称,支持定制多product目标产物,具体请参考定制多目标构建产物"signingConfig": "default",  //指定当前产品品类对应的签名信息,签名信息需要在signingConfigs中进行定义}]},"modules": [{"name": "entry",  //模块名称"srcPath": "./entry",  //标明模块根目录相对工程根目录的相对路径"targets": [  //定义构建的APP产物,由product和各模块定义的targets共同定义{"name": "default",  //target名称,由各个模块的build-profile.json5中的targets字段定义"applyToProducts": [  "default"   //表示将该模块下的“default” Target打包到“default” Product中]}]}]
}

应用级配置信息,包括签名、产品配置等。

hvigorfile.ts

应用级编译构建任务脚本。

项目运行

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

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

相关文章

单模场哈密顿量推导

满足麦克斯韦方程和边界条件的单模场又下式(1),(2)给出 --------(1) ---------(2) , 单模场的经典场能或者哈密顿量又下式给出: (3&#xff09…

JUC并发编程(四)

1、同步模式保护性暂停 用一个线程等待另一个线程的执行结果 有一个结果需要从一个线程传递到另一个线程,让他们关联同一个中间类。如果有结果不断从一个线程到另一个线程那么可以使用消息队列(见生产者/消费者)。JDK 中,join 的…

WebAssembly探索篇(三)emcc和cmake编译opencv案例

文章目录 开发环境安装opencv环境 实践出真知完整项目效果图 踩坑fatal error: opencv2/opencv.hpp file not found增加软链ln(无效)改用自行安装opencv,再显示指定lib路径 emcc命令行运行方式 最近因为项目原因,研究了一下WebAss…

C语言例:表达式 45-35+1^2 的值

代码如下&#xff1a; #include<stdio.h> int main(void) {int a;a 4&5-3&&51^2;printf("4&5-3&&51^2 %d\n",a);return 0; } 结果如下&#xff1a;

maven一点通

1.maven简介 Maven是一个基于Java的工程构建工具&#xff0c;用于管理和构建项目的依赖关系。它提供了一种标准的项目结构和一组约定&#xff0c;使得项目的开发、构建、部署和文档化更加容易和可靠。 Maven的主要功能包括&#xff1a; 依赖管理&#xff1a;Maven可以自动下载…

课设系统篇

《古代六扇门人员管理系统》 数据库 sixdoor 编码 utf8mb4 视图 查询官员等级 存储过程 CREATE DEFINERrootlocalhost PROCEDURE levelname(IN g_name VARCHAR(20)) BEGINSELECT name,level FROM servingofficials INNER JOIN jobtitle onservingofficials.role jobtitl…

Android性能自测

目录 一、应用启动耗时自测 二、帧率查看 三、Top命令查看系统资源占用 3.1 第一行&#xff1a;任务(进程) 3.2 第二行&#xff1a;mem状态 3.3 第三行&#xff1a;swap交换分区 3.4 第四行&#xff1a;cpu状态 3.5 第五行&#xff1a;标题 四、抓取trace.html文件分析…

基于tcp协议的网络通信(基础echo版.多进程版,多线程版,线程池版),telnet命令

目录 基础版 思路 辅助函数 服务端 代码 运行情况 -- telnet ip 端口号 传输的数据为什么没有转换格式 客户端 思路 代码 多进程版 引入 问题 解决 注意点 服务端 代码 运行情况 进程池版(简单介绍) 多线程版 引入 问题解决 注意点 服务端 代码 …

嵌入式Linux 内核的内存管理方法

内存管理的主要工作就是对物理内存进行组织,然后对物理内存的分配和回收。但是Linux引入了虚拟地址的概念。 虚拟地址的作用 如果用户进程直接操作物理地址会有以下的坏处: 1、 用户进程可以直接操作内核对应的内存,破坏内核运行。 2、 用户进程也会破坏其他进程的运行 …

连号区间数c++

题目 输入样例1&#xff1a; 4 3 2 4 1输出样例1&#xff1a; 7输入样例2&#xff1a; 5 3 4 2 5 1输出样例2&#xff1a; 9样例解释 第一个用例中&#xff0c;有 77 个连号区间分别是&#xff1a;[1,1],[1,2],[1,3],[1,4],[2,2],[3,3],[4,4][1,1],[1,2],[1,3],[1,4],[2,2…

详细讲解c语言结构体、联合体、枚举

目录 1、结构体类型声明 1.1结构体的定义 1.2 结构体变量的声明 1.3 结构体变量的创建和初始化 2、如何使创建的结构体所占内存最小 2.1 结构体内存对齐-存储 2.2 通过宏offsetof计算结构体内变量的偏移量 2.3 如何通过宏offsetof计算数组的偏移量 2.4 为什么存在内存对…

吴恩达机器学习笔记 二十四 决策树模型 学习过程 什么时候停止分裂 如何选择结点特征

案例&#xff1a;识别小猫&#xff0c;上面这个分类的特征 x 采用分类值&#xff08;几个离散的值&#xff09; 决策树最顶端的结点称根结点(root node)&#xff0c;除了根结点和叶子结点之外的叫决策结点(decision node)&#xff0c;最底层的叫叶子结点(leaf node)&#xff0c…

华为openEuler系统卸载jdk

华为openEuler系统卸载jdk 1.查看openEuler上已安装的 Java 版本&#xff1a; 在终端中运行以下命令&#xff0c;查看系统中已经安装的 Java 版本。 sudo alternatives --config java这将列出已安装的 Java 版本&#xff0c;你可以看到当前使用的是哪个版本 2.卸载 Java&am…

Python函数学习

Python函数学习 1.函数定义 在函数定义阶段只检查函数的语法问题 2.实参形参 ​​​​总结&#xff1a; &#xff08;1&#xff09;位置参数就是经常用的按照位置顺序给出实参的值&#xff1b; &#xff08;2&#xff09;关键字实参形式&#xff1a;key123&#xff1b;放在…

轻松打造完美原型:9款在线工具推荐

早年&#xff0c;UI设计师选择的工具有限&#xff0c;功能相对单一&#xff0c;大多数在线原型设计工具都是国外的&#xff0c;语言和网络都增加了设计工作的负担。如今&#xff0c;国内外有许多在线原型设计工具&#xff0c;不仅可以在浏览器上使用&#xff0c;而且还具有团队…

基于SpringBoot的后勤管理系统【附源码】

后勤管理系统开发说明 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myecli…

面试算法-51-翻转二叉树

题目 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 解 class Solution {public TreeNode invertTree(TreeNode root) {dfs(root);re…

Hybrid第二次雪梨作业

作业要求: 利用ReactNative和Axios完成以下效果。 注意: 1、RN不能直接引用svg图片,需使用第三方库,可将logo图片换成百度logo 2、搜索框可不要搜索图标 3、“全部”“精华”等前5项类型切换功能要实现(“客户端测试可不写”,接口没给出参数值),调用 https://cnodejs…

arcgis数据导出到excel

将arcgis属性数据导出到excel&#xff1a; 1&#xff09; 工具箱\系统工具箱\Conversion Tools.tbx\Excel\Excel 转表 2&#xff09;用excel打开导出的图层文件中后缀为.dbf的数据&#xff08;方便快捷&#xff0c;但是中文易乱码&#xff09;

phpstudy自定义安装mysql8.3并启动

phpstudy自定义安装mysql8.3并启动 先去官网:https://dev.mysql.com/downloads/下载压缩包文件 然后按下面的图片一步一步操作 选择版本&#xff0c;选择第一个压缩包文件&#xff0c;下载 下载完成后&#xff0c;解压到phpstudy环境目录下&#xff0c;如下图 然后进入mysq…