当前位置: 首页 > news >正文

Android视角看鸿蒙第八课(module.json5中的各字段含义之abilities)下

Android视角看鸿蒙第八课(module.json5中的各字段含义之abilities)下

导读

上篇文章开始学习abilities下的各字段含义,因为篇幅原因只学习了name、srcEntry、description、icon和label字段的含义和用法,
这篇文章继续学习和了解其他字段。

startWindowIcon&startWindowBackground

官方文档

在这里插入图片描述

字段描述

在这里插入图片描述
Indicates the icon of the startup page. The value is the index to the resource file.

思考

标识当前UIAbility组件启动页面图标资源文件的索引。
这是官方文档的描述,不太好理解。没有理解具体用在哪里。
取值示例:$media:icon。
官方的取值示例,是个icon,也没有特别说明允许那些类型,不知道gif或者视频是否支持。

尝试

用在哪里

目前怀疑是桌面启动动画中使用的,验证一下是不是。
在这里插入图片描述
现在我们配置的值是默认的,图片长下面的样子
在这里插入图片描述
icon是注释状态,使用app.json5中的icon,长下面的样子
在这里插入图片描述
为了更好的看出效果,先把EntryAbility中的loadpage给注释掉
在这里插入图片描述
运行下,开个录制,稍后可以逐帧分析。

SVID_20240320_095353_1

结果证明没有任何关系。

遇到点困难,换个思路,先看看startWindowBackground的变化,借鉴一下。
把startWindowBackground的资源索引的值改成绿色
在这里插入图片描述
运行。
依然没有任何改变。
绝了。
看了看其他同学对这个字段的描述
在这里插入图片描述
上个链接华为论坛对于startWindowIcon的描述
资料比较难找,也算是个参考。

可能我的测试项目太小了,所以看不出效果。
写个死循环,看看
在这里插入图片描述
并不行
在这里插入图片描述
都卡崩了,也没出来。

结论

疑似和splashActivity的theme一致,但是看不到效果,可能华为优化的太好了吧。

exported

官方文档

在这里插入图片描述

字段描述

在这里插入图片描述
Specifies whether the ability can be called by other applications.The “true” indicates the ability can be called by other applications.The “false” indicates the ability cannot be called by other applications.This tag is optional. The default value is false.

思考

Android的同学应该还是熟悉的,就是说明这个ability可不可以被外部调用,一般来说是不需要的,有一些工具app可能会需要,比如支付宝,微信分享,支付等。

尝试

entryAbility必须设置为true吗

换句话说app启动器算其他应用吗?
在这里插入图片描述
注释掉,按照文档缺省时为false。
在这里插入图片描述
安装成功了,但是无法自动启动。
点击桌面则可以启动。
这个不是很好理解,为了确认点击桌面启动的是修改过exported的包,修改一下page的文字,再运行下
在这里插入图片描述
在这里插入图片描述

结论

当entryAbility的exported=false时(或缺省时,缺省即为false),hdc shell aa start -a EntryAbility -b com.example.myapplication启动失败,但点击桌面图标可以正常启动。
即桌面启动器不在其他应用的范畴内,所有这个值对桌面启动器无效,对hdc命令有效。

skills

官方文档

在这里插入图片描述

字段描述

在这里插入图片描述

思考

看样子和manifest中activity配置的intent-filter中的action,category之类的挺像的。
官方文档中明确说明对于Entry类型的HAP,应用可以配置多个具有入口能力的skills标签(即配置了ohos.want.action.home和entity.system.home)
即配置了ohos.want.action.home和entity.system.home的ability就是程序的入口。

尝试

试试多入口

把second也配置为入口
在这里插入图片描述
运行
在这里插入图片描述
桌面上出现了两个相同的图标,可以分别打开两个不同的ability。
(图标相同是因为两个ability都没有配置label和icon,都使用了app.json5中配置的label和icon)

把library(feature module)中的Ability配置为入口

文档描述对于Feature类型的HAP,只有应用可以配置具有入口能力的skills标签,服务不允许配置。
这里的服务先忽略,应该是指元服务,就是免安装的那个东东。

把library中的LibraryAbility也配置为入口
在这里插入图片描述
运行。
没有出现这个桌面图标
_-

所以我们理解错了
对于Feature类型的HAP,只有应用可以配置具有入口能力的skills标签,服务不允许配置。
这里的服务指的时Feature类型Mudule。

结论

配置了ohos.want.action.home和entity.system.home的ability就是程序的入口,可以多入口。但是只有entry类型的module中配置生效,feature类型的module中配置无效。

skils扩展

官方文档中want的介绍,及常见的entities和actions

结语

到现在为止已经有8篇文章了,学习桌面图标的定义,程序入口的定义等等,也对鸿蒙工程的配置文件有了一定的了解。下篇文章开始学习UI相关了。
感谢阅读!

相关文章:

Android视角看鸿蒙第八课(module.json5中的各字段含义之abilities)下

Android视角看鸿蒙第八课(module.json5中的各字段含义之abilities)下 导读 上篇文章开始学习abilities下的各字段含义,因为篇幅原因只学习了name、srcEntry、description、icon和label字段的含义和用法, 这篇文章继续学习和了解其他字段。 …...

设计模式 适配器模式

1.背景 适配器模式,这个模式也很简单,你笔记本上的那个拖在外面的黑盒子就是个适配器,一般你在中国能用,在日本也能用,虽然两个国家的的电源电压不同,中国是 220V,日本是 110V,但是这…...

前端面试题详解

前端面试 1.app如何实现登陆成功,卸载app重新安装再进入获取上一次已经登陆的信息? 要实现前端APP在登录成功后,即使卸载并重新安装也能获取上一次已经登录的信息,通常涉及以下几个关键步骤: 1. 使用持久化存储 在APP…...

抖音,剪映,TikTok,竖屏短视频转场pr模板视频素材

120个叠加效果视频转场过渡素材,抖音,剪映,TikTok,短视频转场pr模板项目工程文件。 效果:VHS、光效、胶片、霓虹灯闪光、X射线、信号、老电影等。 适用软件:Adobe Premiere Pro 2018 12.0或更高版本。 视频素材与大多数应用程序兼容&#xff…...

python网络相册设计与实现flask-django-nodejs-php

此系统设计主要采用的是python语言来进行开发,采用django框架技术,框架分为三层,分别是控制层Controller,业务处理层Service,持久层dao,能够采用多层次管理开发,对于各个模块设计制作有一定的安…...

设计模式: 外观模式

文章目录 一、什么是外观模式二、外观模式结构1、外观模式的主要角色包括:2、外观模式通常适用于以下情况: 三、优点 一、什么是外观模式 外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个统一的接口&…...

Samba局域网共享文件

基于两个协议:smb协议(Server Message Block,服务消息块)和cifs协议(Common Internet File System,通用互联网文件系统) 两个主进程:smbd 和nmbd进程。 smbd:提供对服务…...

基于FPGA实现的UDP协议栈设计_汇总

基于FPGA实现的千兆以太网UDP协议栈设计(汇总篇) 1. MAC设计 2. IP层设计 3. ARP层设计 4. UDP层设计 5. ICMP层设计 6. 仲裁器设计 8. RGMII接口设计 9. 跨时钟域设计...

maven手动上传的第三方包 打包项目报错 Could not find xxx in central 解决办法

背景: 在Maven私服手动上传了第三方的jar包, 只有jar包, 没有pom文件, 项目在ide中可以正常编译启动,但打包报错无法找到jar包 解决办法: 上传jar包的时候, 点击生成pom. 则打包的时候不会报错...

利用Scala与Apache HttpClient实现网络音频流的抓取

概述 在当今数字化时代,网络数据的抓取和处理已成为许多应用程序和服务的重要组成部分。本文将介绍如何利用Scala编程语言结合Apache HttpClient工具库实现网络音频流的抓取。通过本文,读者将学习如何利用强大的Scala语言和Apache HttpClient库来抓取网…...

Linux(openEuler)部署SpringBoot前后端分离项目(Nginx负载均衡)

假如数据库在本地,没有放在Linux中 1.先把数据库中root的主机改成% 2.项目中的数据库链接配置换成本机ip 3.打包 4.把打包好的jar包放到Linux中 一般把jar包放到opt下 5.把前端部分拷贝到Linux的nginx中 5.1在package.json中修改build的值为图中这样 5.2同时由于在…...

InnoDB 缓存

本文主要聊InnoDB内存结构, 先来看下官网Mysql 8.0 InnoDB架构图 MySQL :: MySQL 8.0 Reference Manual :: 17.4 InnoDB Architecture 如上图所示,InnoDB内存主要包含Buffer Pool, Change Buffer, Log Buffer, Adaptive Hash Index Buffer Pool 其实 buffer pool 就是内存中的…...

目标检测——PP-YOLOE-R算法解读

PP-YOLO系列,均是基于百度自研PaddlePaddle深度学习框架发布的算法,2020年基于YOLOv3改进发布PP-YOLO,2021年发布PP-YOLOv2和移动端检测算法PP-PicoDet,2022年发布PP-YOLOE和PP-YOLOE-R。由于均是一个系列,所以放一起解…...

轻松解锁微博视频:基于Perl的下载解决方案

引言 随着微博成为中国最受欢迎的社交平台之一,其内容已经变得丰富多彩,特别是视频内容吸引了大量用户的关注。然而,尽管用户对微博上的视频内容感兴趣,但却面临着无法直接下载这些视频的难题。本文旨在介绍一个基于Perl的解决方…...

asp.net mvc 重新引导视图路径,改变视图路径

asp.net mvc 重新引导视图路径,改变视图路径 使用指定的控制器上下文和母版视图名称来查找指定的视图 通过本文学习,你可以根据该技法,去实现,站点自定义皮肤,手机站和电脑站,其他设备站点,在不…...

《优化接口设计的思路》系列:第九篇—用好缓存,让你的接口速度飞起来

一、前言 大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 作为一名从业已达六年的老码农&#xff0c…...

专业130+总分410+西南交通大学924信号与系统考研经验西南交大电子信息通信工程,真题,大纲,参考书。

初试分数出来,专业课924信号与系统130,总分410,整体上发挥正常,但是还有遗憾,其实自己可以做的更好,总结一下经验,希望对大家有所帮助。专业课:(130) 西南交…...

MySQL数据库 - 存储引擎

一. mysql 存储引擎的相关知识 1.1 存储引擎的概念 MySQL中的数据用各种不下同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎。存储引擎是My…...

时序预测 | Matlab基于BiTCN-LSTM双向时间卷积长短期记忆神经网络时间序列预测

时序预测 | Matlab基于BiTCN-LSTM双向时间卷积长短期记忆神经网络时间序列预测 目录 时序预测 | Matlab基于BiTCN-LSTM双向时间卷积长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab基于BiTCN-LSTM双向时间卷积长短期记忆神经网络时…...

Spring Cloud Alibaba Sentinel 使用详解

一、Sentinel 介绍 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景: Sentinel 承接了阿里巴…...

Go 语言构建 Agent 服务的优势

Go 语言构建 Agent 服务的核心优势与工程实践全解析作者: 架构师阿哲 发布时间: 202X-XX-XX 阅读时长: 约45分钟 字数统计: 12,870前置说明:系统需求与读者画像的校准 首先,我注意到当前的输入上下文存在一…...

【MATLAB源码-第405期】基于matlab的OFDM深度学习信道估计仿真,对比LS,MMSE,CNN,LSTM、Transformer.

操作环境:MATLAB 2024a1、算法描述摘要 OFDM作为现代无线通信系统中极具代表性的多载波传输技术,因其频谱利用率高、抗多径能力强以及易于与高速数字信号处理技术结合等优点,被广泛应用于宽带移动通信、无线局域网、卫星通信以及新一代智能通…...

模型微调进阶:让百川2-13B-4bits更好适配OpenClaw的3个技巧

模型微调进阶:让百川2-13B-4bits更好适配OpenClaw的3个技巧 1. 为什么需要专门微调百川模型? 去年我在尝试用OpenClaw自动化处理日常办公流程时,发现一个有趣的现象:同样的任务描述,不同的大模型在拆解步骤时消耗的T…...

设置echarts 图例为长方形

在 ECharts 中,要将图例(legend)的 标记(icon) 设置为 长方形(矩形),可以通过 legend 配置项中的 icon 属性来实现。✅ 方法:使用 icon: rect ECharts 内置了多种图例标记…...

Spring Boot 与 GraalVM 原生镜像 2026:极致性能优化

Spring Boot 与 GraalVM 原生镜像 2026:极致性能优化 今天我们来聊聊 Spring Boot 与 GraalVM 原生镜像,这是实现 Java 应用极致性能优化的重要技术。 一、什么是 GraalVM 原生镜像 GraalVM 原生镜像(Native Image)是一种提前编译…...

龙芯k - 久久派开发环境搭建及内核升级(下)林

起因是我想在搞一些操作windows进程的事情时,老是需要右键以管理员身份运行,感觉很麻烦。就研究了一下怎么提权,顺手瞄了一眼Windows下用户态权限分配,然后也是感谢《深入解析Windows操作系统》这本书给我偷令牌的灵感吧&#xff…...

AI Agent Harness Engineering 数据隐私保护:加密技术、匿名化处理与权限控制

AI Agent Harness Engineering 数据隐私保护:加密技术、匿名化处理与权限控制 一、引言 (Introduction) 1.1 钩子 (The Hook) 你是否曾想过,当你使用智能客服机器人咨询个人财务问题时,你的敏感数据是如何被处理的?或者,当你与医疗AI助手分享健康信息时,这些信息是否真…...

在超大数据集下 DuckDB 与 MySQL 查询速度对比合

一、什么是urllib3? urllib3 是一个用于处理 HTTP 请求和连接池的强大、用户友好的 Python 库。 它可以帮助你: 发送各种 HTTP 请求(GET, POST, PUT, DELETE等)。 管理连接池,提高网络请求效率。 处理重试和重定向。 支…...

Qwen3-14B实际作品集展示:技术文档生成、营销文案创作、教学问答案例

Qwen3-14B实际作品集展示:技术文档生成、营销文案创作、教学问答案例 1. 开篇介绍 今天我要带大家看看Qwen3-14B这个强大的AI模型在实际工作中的表现。这个模型经过专门优化,可以轻松部署在RTX 4090D显卡上,24GB显存让它运行起来特别流畅。…...

Unity发布京东小游戏圃

从 UI 工程师到 AI 应用架构者 13 年前,我的工作是让按钮在 IE6 上对齐; 13 年后,我用 fetch-event-source 订阅大模型的“思维流”,用 OCR 解锁图片中的文字——前端,正在成为 AI 产品的第一道体验防线。 最近&#x…...