首页 > 其他分享 >【HarmonyOS】元服务启动命令漫谈

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

时间:2023-07-04 13:55:35浏览次数:44  
标签:shell 启动 漫谈 对应 HarmonyOS bundleName hdc com example

​在日常开发中,我们可以通过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”的原因

标签:shell,启动,漫谈,对应,HarmonyOS,bundleName,hdc,com,example
From: https://www.cnblogs.com/mayism123/p/17525550.html

相关文章

  • idea配置vue.js启动vue项目
    最近老师给力一个项目比赛,那个是前后端分离的。我之前了解过一些,我也配置过idea的vue.js,但是好久不用忘了。所以重新找回了一下:  ......
  • Linux 系统启动过程----------------linux启动过程原理
    Linux系统启动过程Linux深度学习 2023-07-0407:01 发表于北京linux启动时我们会看到许多启动信息。Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段:内核的引导。运行init。系统初始化。建立终端。用户登录系统。init程序......
  • Studio3T 无法启动
    Studio3T无法启动,原因可能是因为本地的java版本导致C:\Users\cj218>java-versionjavaversion"11.0.17"2022-10-18LTSJava(TM)SERuntimeEnvironment18.9(build11.0.17+10-LTS-269)JavaHotSpot(TM)64-BitServerVM18.9(build11.0.17+10-LTS-269,mixedmo......
  • SpringBoot教学资料3-SpringBoot启动常见问题
    java.lang.RuntimeException:java.lang.RuntimeException:org.codehaus.plexus.component.repository.excMaven版本过高,与你使用的IDEA版本不兼容。推荐版本:maven3.6(建议)/maven3.9控制台Processterminatedhttps://blog.csdn.net/weixin_44589991/article/details/115013......
  • yml使用@project.artifactId@启动异常
    Causedby:org.yaml.snakeyaml.scanner.ScannerException:whilescanningforthenexttokenfoundcharacter'@'thatcannotstartanytoken.(Donotuse@forindentation)in'reader',line5,column12:appName:@project.artifact......
  • UE5 源码启动剖析
    1一切的起点WinMain函数对于Windows控制台,程序的入口是main函数对于Windows窗口,程序的入口是WinMain函数Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cppint32WINAPIWinMain(_In_HINSTANCEhInInstance,_In_opt_HINSTANCEhPrevInstance,_In_char*pCmdLin......
  • 车子停放时间较长后,启动行驶尤其刹车时会有异响
    背景最近梅雨季节,空气比较潮,车子停在外面有一个多礼拜没有开车了,今早开车的时候换到D档,拉下手刹,松开刹车汽车居然不往前走。我错乱了吗,还是哪里操作有问题,我再次确认了一下没有错呀,踩了一下油门,发现前轮咯噔咯噔响但是会往前走了,倒车的时候也会有空吃空吃的响声。问了修车店的老......
  • 【直播预告】HarmonyOS极客松赋能直播第四期:HarmonyOS开发经验分享
        ......
  • 34. Spring Boot的启动器Starter详解【从零开始学Spring Boot】
        SpringBoot应用启动器基本的一共有N(现知道的是44)种:具体如下: 1)spring-boot-starter这是SpringBoot的核心启动器,包含了自动配置、日志和YAML。2)spring-boot-starter-actuator帮助监控和管理应用。3)spring-boot-starter-amqp通过spring-rabbit来支持AMQP协议(AdvancedMess......
  • react-native项目启动报错 Error: `fsevents` unavailable (this watcher can only be
    react-native项目启动报错——watchman安装问题(macpro) LookingforJSfilesin/Users/你的名称/Documents/project/文件夹名Loadingdependencygraph.../Users/你的名称/Documents/project/文件夹名/node_modules/metro/node_modules/sane/src/fsevents_watcher.js:37......