Android视角看鸿蒙第四课(module.json中的各字段含义之descriptionmainElement)修改程序入口

Android视角看鸿蒙第三课(module.json中的各字段含义之description&mainElement)

前言

上编文章了解了module.json中的name和type两个字段的含义及变更字段需要注意的事项,也明白了如何去实现类似Android library的功能。
这篇文章继续了解module.json中的description和mainElemoent的作用。

description

官方文档

在这里插入图片描述

字段定义

在这里插入图片描述

思考

这个字段看起来是不影响程序运行的,且
** 该标签可缺省,缺省值为空。**
,目前理解是为了开发协同中作为module的简单说明。
依然我们尝试下几个问题:
** 完全注释掉这个字段会不会有问题;**
** 直接输入null是否可行(不加双引号);**
** 如果字符超限,编译器是否有提示,是否能运行。**

尝试
完全注释掉这个字段会不会有问题

在这里插入图片描述
** 插曲 **
json5文件内的内容支持==//==注释,快捷键是ctrl+/,与AS一致

运行一下,看看是否可行
ok,成功运行了。

直接输入null是否可行(不加双引号)

在这里插入图片描述
可以看到,输入null之后直接变黄,类型不符合,那这样的话是否能运行成功呢?
答案是**不行 **
在这里插入图片描述
ok,改回去继续尝试下个问题.

字符超限,编译器是否有提示,是否能运行

有两种改法,第一种是直接修改值,输入内容,第二种是修改被索引的字符串资源的值。
先来第一种,
在这里插入图片描述

编辑器也是有提示的,不能超过255,运行一下看看会报错误不。

在这里插入图片描述
这个错误看着很顺眼,指向特别明确,比上面输入null的时候清晰太多了。
但是依然跑不起来。

试试第二种
在这里插入图片描述
有三个索引,第一篇文章说了,如果该语言环境下有资源,优先使用该资源,所以我们先修改zh_CN下的字符串。
在这里插入图片描述
在这里插入图片描述
看起来是没有问题的,没有像之前一样变黄,运行试试。

成功了。
接下来我们把3个索引资源的字符串都修改,看看会不会有问题

依然没有问题

结论

1、不允许直接输入null(没有双引号),会变黄,运行会报错;
2、不允许直接输入超过255的字符串,会变黄,运行会报错;
3、可以索引超过255长度的字符串,但目前不清楚此字段是否会在其他地方展示,若在其他地方展示,可能会出现其他问题

mainElement

官方文档

在这里插入图片描述

字段定义

在这里插入图片描述

思考

官方文档描述代表了当面module的入口,可以缺省
这里尝试下面几个问题:
entry可以没有定义此字段吗?会发生什么?
是否可以定义资源索引?是否可以突破此字段?
entry是否可以使用feature中的UIAbility?
ExtensionAbility是什么?

尝试
换个入口试试

在这里插入图片描述
在这里插入图片描述
创建成功了,但是出现了一个小小的问题,我是选中entryability文件夹创建的ability(见上图),但是新创建的多出来了个新文件夹,而且出现在了ets目录下(见下图)
在这里插入图片描述
就是玩,我们复制一份SecondAbility.ts到entryAbility文件夹下,看看能不能成功
在这里插入图片描述
成功了,这里我在复制的时候,手动把文件名改成了ThirdAbility,类名并未随之变化。
接下来我们手动把mainElement修改成我们复制的这个ThirdAbility
在这里插入图片描述
ok,并未变黄,再加点日志吧,方便看。
在这里插入图片描述
运行。
在这里插入图片描述
只打出来了一个,什么情况?
为了排除我们log的原因我们把目前的三个Ability文件的日志都修改一下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ok,继续跑一下。
在这里插入图片描述

竟然还是EntryAbility.ts
确定一下是我们复制出来的这个ThirdAbility.ts导致的问题吗?
现在把这个字段改成
在这里插入图片描述
看看效果
在这里插入图片描述
还是这样创建出来的也不行。
在这里插入图片描述
在‘run’tab下看到启动的还是EntryAbility。

** 迷茫**
难道这个字段不是这么用的吗?再看看文档
看不出来啥
再看看这个文件的其余字段
在这里插入图片描述
这里看到abilities字段下有两个对象,没有我们复制出来的ThirdAbility,而且EntryAbility比SecondAbility多出了两个字段"exported”和“skills”。
现在我们把这两个字段剪切给SecondAbility,看看有没有变化
在这里插入图片描述
在这里插入图片描述
看到变成了SecondAbility了。
这是什么原因,难道mainElement只是个描述作用吗?
现在我们把mainElement注释掉,看看有没有变化
在这里插入图片描述
并不影响,还是启动的SecondAbility。
而且发现桌面的图标和名称都发生了变化,(第二课的时候我们修改了桌面的图标和名称),又都变成了默认的。
在这里插入图片描述
可以看到两个Ability是不一致的。
接下来我们修改一下SecondAbility的label索引的String值,看看桌面的改变
在这里插入图片描述
在这里插入图片描述
生效了。
好了,关于入口的问题就讨论到这里,之后的文章再描述,要不就跑题了。
至此其他问题也没有意思了,mainElement仅仅只是描述,可以参考description,哈哈,稳妥起见我还是运行了下
在这里插入图片描述
没有任何问题。

结论

mainElement仅仅描述了程序入口,无任何实际意义。和我说地球是方的是一样的,程序入口和abilities下的exported及skills有关(之后再分别讨论这两个字段的意义)

附加收获:
复制出来的Ablity.ts文件,修改文件名后类名不变,且没有自动添加到module.json5文件内的abilities字段内,大概和复制了个Activity.java是一致的,需要手动再添加。

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

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

相关文章

指针总结及例题总结

1 定义 指针是用来存放地址的变量 不同类型的指针变量所占用的存储空间是相同的,sizeof(int)sizeof(char)sizeof(double)... *是解引用操作符,&是取地址操作符,两者有着抵消作用 int a20;int* p&a;*p*&a20; 2,…

【C++11】包装器和bind

文章目录 一. 为什么要有包装器?二. 什么是包装器?三. 包装器的使用四. bind 函数模板1. 为什么要有 bind ?2. 什么是 bind ?3. bind 的使用场景 一. 为什么要有包装器? function 包装器,也叫作适配器。C 中的 funct…

Vue.js计算属性:实现数据驱动的利器

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

RESTful API学习

RESTful API REST(英文:Representational State Transfer,简称REST,直译过来表现层状态转换)是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和…

光伏数字化管理平台:驱动绿色能源革命的智能化引擎

随着全球对可再生能源需求的不断增长,光伏产业已经成为推动绿色能源革命的重要力量。在这个背景下,光伏数字化管理平台应运而生,以其强大的数据处理、实时监控和智能优化功能,为光伏电站的运营管理和维护带来了革命性的变革。 光伏…

储能系统--户用储能美洲市场(三)

2、美洲市场 2.1、美国户储发展驱动力 (1)电网老化带来配储需求,户用光储成家庭第二用电保障 美国大部分电网建于20世纪60和70年代,超70%以上的输电系统已经超过了25年,在高负荷运转或者外部环境承压时,…

JSON查询(ccf 201709-3)解题思路

问题描述   JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,可以用来描述半结构化的数据。JSON 格式中的基本单元是值 (value),出于简化的目的本题只涉及 2 种类型的值:   * 字符串 (string):字符串是由双引号…

深入理解Hive:探索不同的表类型及其应用场景

文章目录 1. 引言2. Hive表类型概览2.1 按照数据存储位置2.2 按照数据管理方式2.3 按照查询优化2.4 按照数据的临时性和持久性 3. 写在最后 1. 引言 在大数据时代,Hive作为一种数据仓库工具,为我们提供了强大的数据存储和查询能力。了解Hive的不同表类型…

【洛谷千题详解】P1613 跑路

目录 题目总览 题目描述 输入格式 输出格式 思路分析 AC代码 题目总览 题目描述 小 A 的工作不仅繁琐,更有苛刻的规定,要求小 A 每天早上在 6:00 之前到达公司,否则这个月工资清零。可是小 A 偏偏又有赖床的坏毛病。于是为了保住自己的…

【English Learnging】Day9

2024/03/010 和小录打卡的第9天 目录 Words & phrases Words & phrases possibility a job possiblity 工作机会creation the latest creation 最新的创作landing a safe landing 安全着陆pledge make a pledge 做出承诺expextancy an air of expectancy 期盼的心情au…

HTML世界之标签Ⅱ

目录 一、base 标签 二、bdi 标签 三、bdo 标签 四、blockquote 标签 五、br 标签 六、button 标签 七、canvas 标签 八、cite 标签 九、code 标签 十、colgroup 标签 十一、col 标签 十二、datalist 标签 十三、dd 标签 十四、del 标签 十五、details 标签…

【数学建模】层次分析

1.建立递阶层次结构模型 2.构造出各层次中的所有判断矩阵 对指标的重要性进行两两比较,构造判断矩阵,科学求出权重 矩阵中元素aij的意义是,第i个指标相对第j个指标的重要程度 对角线1,aijaji1 矛盾——>一致性检验

网络安全:OpenEuler 部署 jumpserver 堡垒机

目录 一、实验 1.环境 2.OpenEuler 部署 jumpserver 堡垒机 3.OpenEuler 使用 jumpserver 堡垒机(管理Linux) 4.OpenEuler 使用 jumpserver 堡垒机(管理Windows) 二、问题 1.jumpserver 安装报错 一、实验 1.环境 &#x…

【C++】每日一题 15 三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 比官方三循环快1000ms的解法,57ms,击…

【❤️算法笔记❤️】-每日一刷-21、合并两个有序链表

文章目录 题目思路解答 题目 简单 相关标签 相关企业 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2: 输入…

【Linux】shell理解及linux权限解读(“花花公子Root”的自由人生)

目录 1.shell外壳理解 1.1 什么是shell外壳: 1.2 为什么存在shell外壳程序: 1.3外壳程序的具体工作阶段是怎么样的?(招实习生,工作失败也不影响公司) 2.linux下的权限的概念 2.1linux的用户 2.2.文件类型和…

“每一次的感应,都是对环境的温柔拥抱。”#STM32项目二 《感应开关盖垃圾桶》【下】

“每一次的感应,都是对环境的温柔拥抱。”#STM32项目二 《感应开关盖垃圾桶》【下】 前言预备知识1.实现距离感应开盖1.1换另一个定时器进行PWM输出驱动SG90舵机1.2延用超声波传感器介绍及实战工程进行配置PWM输出1.3在主C文件合适位置封装开关盖,开关LE…

C#中openFileDialog 对话框不在最顶层,TopMost的异常情况

重点&#xff01;&#xff01;&#xff01;若 当前窗体this的TopMost是false&#xff0c;可以设置为true&#xff0c;这样打开的对话框就是最顶层 /// <summary> /// 设置窗体TopMost&#xff0c;缺点和其他程序ide有冲突。例如VS有断点的调试会卡死 /// </summary&g…

Understanding Vulkan Objects

​ 和学习其他API一样&#xff0c;学习Vulkan API中有一个重要部分&#xff1a;了解Vulkan API定义了拿下类型&#xff0c;以及这些类型之间的关系。为了帮助理解这些类型&#xff0c;接下来会绘制一幅关系图&#xff0c;表现它们之间的关系&#xff0c;尤其是创建依赖关系。 …

map和set(二)——AVL树的简单实现

引入 二叉搜索树有其自身的缺陷&#xff0c;假如往树中 插入的元素有序或者接近有序&#xff0c;二叉搜索树就会退化成单支树&#xff0c;时间复杂度会退化成O(N)&#xff0c;因此 map、set等关联式容器的底层结构是对二叉树进行了平衡处理&#xff0c;即采用平衡树来实现。简…