【HarmonyOS】元服务启动命令漫谈

news2024/11/23 11:55:31

在日常开发中,我们可以通过DevEco Studio,直接Run我们的元服务工程,在测试机上拉起我们开发的元服务页面。但是我们自己打包HarmonyOS元服务hap在手机上安装后是没有桌面图标的。虽然我们可以在设置的服务管理中找到我们安装的元服务,但是无法直接打开,这就需要通过命令行的方式来启动了。

【切入点】

我们主要从IDE工具是如何启动元服务的过程来探索对应的启动命令,这边对API6-API8和API9做一个区分,原因在下文的内容中会有对应的描述。

【HarmonyOS API6-API8】

API6-API8的工程都是基于FA模型开发的,在IDE Run的过程中,我们可以在Run窗口中看到以下命令:

cke_12519.png

这边对输出框中的命令做一下相关的解释

1、$ hdc shell am force-stop com.example.arktsdemo

这边的am force-stop命令是强制关闭应用的命令,后面加的是需要关闭的bundleName

2、$ hdc shell bm uninstall com.example.arktsdemo

bm uninstal这个命令就比较简单了,是用来删除设备上对应bundleName的应用

3、$ hdc file send D:\AGC_Codelabs\Codelabs\ohos_ArkUI\ArkTsDemo\entry\build\default\outputs\default\entry-default-signed.hap /sdcard/c27bd3aeb0334f0caebc9749a5f3ff42/entry-default-signed.hap

这个命令是把我们IDE中编译好的outputs下的hap文件推送到连接的HarmonyOS设备中,前一个路径是本地hap路径,后一个路径是设备中的文件路径

4、$ hdc shell bm install –p /sdcard/c27bd3aeb0334f0caebc9749a5f3ff42/

然后通过bm install –p的方式安装上一步文件夹中的所有hap包

5、$ hdc shell rm –rf /sdcard/c27bd3aeb0334f0caebc9749a5f3ff42

安装完成后删除设备中接收文件的临时目录

上面这几个步骤是在所有版本上透视统一的,下面我们主要讲一下,安装完成后IDE是如何拉起对应应用的,这个拉起的命令在不同版本和不同的开发模式下都是不一样的

首先API6-API8的FA工程中命令如下:

$ hdc shell aa start -p "com.example.arktsdemo" -n "com.example.arktsdemo.MainAbility" -a action

这边-p 后放的是需要启动的PackageName,在config.json中对应是的hdc shell aa start -p

-n 后放的是对应启动的AbilityName,对应的是config.json中的"mainAbility"字段

-a 存放的是action,我们可以省略这个字段,直接通过下面的命令也可以启动应用:

hdc shell aa start -p "com.example.arktsdemo" -n "com.example.arktsdemo.MainAbility"

【HarmonyOS API9】

FA模型:

cke_16346.png

$ hdc shell aa start -a com.example.quickfixfa.MainAbility -b com.example.quickfixfa

这边的命令就跟之前的不同了,使用的是-a和-b,

-a 表示需要启动的abilityName,-b 需要启动的 bundleName

“com.example.quickfixfa”对应的是config.json里的bundleName

“com.example.quickfixfa.MainAbility”对应的是config.json中的"mainAbility"字段

Stage模型:

cke_18653.png

$ hdc shell aa start -a EntryAbility -b com.example.quickfixdemo

需要注意的是这百年-a后对应的abilityName是“EntryAbility”,指的就是我们入口的EntryAbility

“com.example.quickfixdemo”对应的是app.json5中的bundleName

【Tips】

对于上面的abilityName和bundleName我们在IDE中其实是有地方可以查看的,在我们的打包输出的output目录下有下面这个文件,pack.info

cke_4618.png

打开pack.info文件,可以查看到对应的bundleName和mainAbility字段,这些字段就是我们上面启动所需要的字段。下图是API8 FA工程中的pack.info,mainAbility字段的值是“.MainAbility”对应的完整的abilityName还需要加上上面的bundleName,这就得到上面IDE中的“com.example.arktsdemo.MainAbility”

​然后我们打开API9 Stage模型工程,这边的mainAbility对应的“EntryAbility”前面是不带“.”的,也就是为什么abilityName我们只需要写成“EntryAbility”的原因

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

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

相关文章

Go语言操作MySql数据库

go-sql-driver/mysql库是Go语言官方推荐的MySQL驱动库,可以很方便地实现对MySQL数据库的连接和操作。本文记录以下使用go-sql-driver/mysql数据库驱动来操作mysql数据库。 目录 1.安装驱动程序 2.导入驱动包 3.操作数据库 3.1 获取mysql版本 3.2 创建表 3.3 …

详解JAVA Socket

目录 1.概述 2.使用 3.使用场景 3.1.web server中的网络通信 3.2.长连接 3.3.性能问题 1.概述 什么是网络通信: 就像打电话一样,两点间要通信,两点间就必须有连接,为了实现任意两个节点之间的通信,我们就必须采…

用户与组管理介绍

文章目录 一、服务器系统版本介绍二、用户管理1. 用户概述2. 内置账户3. 配置文件4. 用户管理命令 三、组管理1. 组概述2. 内置组(系统自带的组)3. 组管理命令 一、服务器系统版本介绍 Windows服务器系统:win2000、win2003、win2008、win2012…

Spring 与 Servlet-2

学习笔记(加油呀): Spring的通知类型 Spring 通知类型按切面功能调用的不同时刻,可以分为提供了 5 种 Advice 类型 1、前置通知 Before advice:在某连接点之前执行的通知,但这个通知不能阻止连接点之前的…

SAP ABAP ALV FIELDCAT 字段设置详细说明

一、SAP ABAP ALV FIELDCAT 字段设置的位置: 二、SAP ABAP ALV FIELDCAT 字段设置的详细说明: 字段属性描述使用目的CFIELDNAME参照Currency单位的字段名根据单位显示相应值CHECKBOX设置成复选框字段输出选项COL POS字段的输出顺序字段输出选项COLDDICT…

Android Studio实现内容丰富的安卓视频管理平台

如需源码可以添加q-------3290510686,也有演示视频演示具体功能,源码不免费,尊重创作,尊重劳动。 项目编号081 1.开发环境 android stuido 2.功能介绍 安卓端: 1.注册登录 2.本地视频 3.视频播放 4.收藏功能 5.网路视频…

R语言绘图丨论文中最常用箱线图绘制教程,自动进行显著性检验和误差线标注

多组比较式箱线图 在科研论文绘图中,对于多组数据进行比较一般采用箱线图的方法,今天分享一下这个经典数据可视化方法,从零开始绘制一张带误差棒并自动计算显著性比较结果的箱线图。 前言:箱线图有什么优势? 数据分布…

【AcWing算法基础课】第三章 搜索与图论

文章目录 前言课前温习一、深度优先搜索(DFS)1、排列数字1.1题目描述1.2思路分析1.3代码实现 2、 n-皇后问题1.4题目描述1.5思路分析1.6代码实现 二、宽度优先搜索(BFS)1、走迷宫2.1题目描述2.2思路分析2.3代码实现 三、树与图的存…

2023.07.05 ARM day6

实验1 1.在键盘输入一个字符,串口工具进行显示 2.例如:在在键盘输入一个字符a,串口工具进行显示b 实验2 1.在键盘输入一个字符串,串口工具进行显示 2.例如:在在键盘输入一个字符串“huyue”,串口工具进行显示“huyue” inclu…

MySQL数据库管理与开发

什么是MySQL 数据库? M典MQLB公司开发的一个关系型数据库管理系统。通过它司以有效地组织和管理存储在数据库中的数据。MySQL 数据库可以称得上日前运行速度最快的SQL语言数据库。 MySQL 的优势 MySQL数据库是一款自由软件,任何人都可以从MySQL的官方…

保姆级 雅特力AT32 MCU 从SRAM启动KEIL工程配置步骤(STM/GD/APM通用)

好记性不如烂笔头,既然不够聪明,就乖乖的做笔记,温故而知新。 本文档用于本人对知识点的梳理和记录。 一、前言 开发工具:KEIL 开发板:AT32F415 AT-START-F415 软件工程:雅特力BSP flash_wirte_read 点击…

阿里开业项目chat2DB-人工智能SQL分析介绍

1. chat2DB简介 1-1. 简介 ​ chat2DB是一款有开源免费的多数据库客户端工具,支持windows、mac本地安装,也支持服务器端部署,web网页访问。和传统的数据库客户端软件Navicat、DBeaver 相比Chat2DB集成了AIGC的能力,能够将自然语…

RabbitMQ系列(9)--RabbitMQ预取值及利用预取值实现不公平分发

概念:RabbitMQ的默认分发消息机制是轮询分发,但在消费者之间处理任务速度不同时,这种分发消息机制会导致任务的处理效率低下,处理任务速度快的消费者很大一部分的时间处于空闲状态,速度慢的消费者则一直在干活&#xf…

SpringBoot教学资料6-SpringBoot登录注册功能实现(带简单前端)

项目样式: SQL: CREATE TABLE t_user (id int(11) NOT NULL AUTO_INCREMENT,username varchar(32) NOT NULL,password varchar(32) NOT NULL,PRIMARY KEY (id),UNIQUE KEY username (username) ) ENGINEInnoDB AUTO_INCREMENT5 DEFAULT CHARSETutf8项目结构&#xf…

数据结构(排序)

文章目录 一、排序的概念二、插入排序1. 基本思想2. 直接插入排序3. 希尔排序(缩小增量排序) 三、选择排序1. 基本思想2. 直接选择排序3. 堆排序 四、交换排序1. 基本思想2. 冒泡排序3. 快速排序 五、归并排序六、其他排序6.1 计数排序6.2 基数排序6.3 桶排序 一、排序的概念 …

记一次 .NET 某医院预约平台 非托管泄露分析

一:背景 1. 讲故事 前几天有位朋友找到我,说他的程序有内存泄露,让我帮忙排查一下,截图如下: 说实话看到 32bit, 1.5G 这些关键词之后,职业敏感告诉我,他这个可能是虚拟地址紧张所…

Docker快速部署Hadoop环境

Docker安装部署Hadoop环境,通过三个容器来模拟三个节点,最后只保留Master节点实现搭建。 安装环境 Ubuntu 22.04.1 LTS 和Docker 23.0.1 安装过程 拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/hadoop_test/hadoop_base在Docker中创建网…

供应链管理系统有哪些模块?

先弄搞清楚:供应链管理的概念与定义 供应链管理(Supply Chain Management ,简称SCM):就是指在满足一定的客户服务水平的条件下,为了使整个供应链系统成本达到最小而把供应商、制造商、仓库、配送中心和渠道商等有效地组织在一起来进行的产品…

Kubernetes(k8s)容器编排Pod调度策略

目录 1 节点调度1.1 创建资源清单1.2 应用部署1.3 删除pod 2 定向调度(标签调度)2.1 创建标签2.1.1 添加标签2.1.2 显示标签 2.3 创建资源清单2.4 应用部署2.5 删除pod 1 节点调度 ​ 一般而言pod的调度都是通过RC、Deployment等控制器自动完成,但是仍可以通过手动配…

自然语言处理的分词与词嵌入

1 分词 1.1 什么是分词 分词是把自然语言语句进行数字化的过程。 1.2 为什么要分词 自然语言是字符串序列,机器没办法直接处理, 需要处理成数字的形式。 1.3 如何进行分词 以英文为例: 1 按空格划分 这应该是最简单也最直观的做法了。这…