简介
包管理子系统负责应用安装包的管理,提供安装包的信息查询、安装、更新、卸载和包信息存储等能力。具体功能如下:
包管理子系统架构如下图所示:

部件内子模块职责
| 子模块名称 | 职责 |
|---|---|
| 包管理接口模块 | 1.对外提供的安装更新卸载及通知接口; 2.对外提供的包/组件信息/权限信息查询接口; 3.对外提供的应用权限查询接口; 4.对外提供的清除数据的接口; |
| 扫描模块 | 1.预置应用的扫描; 2.已安装三方应用的扫描; 3.包配置文件的解析; |
| 安全管理模块 | 1.安装过程中的签名校验; 2.安装过程中应用所申请权限的授予; 3.应用运行中权限的校验; |
| DBMS模块 | 1.获取指定设备ability信息; |
| 安装管理模块 | 1.安装、更新、卸载逻辑处理及结果通知; |
| 包信息管理模块 | 1.包信息、组件信息的存储及同步; |
| 设备状态监听模块 | 1.监听设备的上下线; |
| Installed模块 | 特权进程: 1)用于创建、删除等目录操作; 2)用于创建、删除等文件操作; 3)用于设备目录的沙箱uid/gid等操作 |
| DFX | 1.包管理维测工具 |
目录
foundation/bundlemanager/bundle_framework
├── bundle_tool # bm工具存放目录
├── distributed_bundle_framework # 分布式包管理服务框架代码
├── common
│ └── log # 日志组件目录
├── interfaces
│ ├── inner_api # 内部接口存放目录
│ └── kits # 应用接口
│ ├── js # JS接口
│ └── native # C/C++接口
├── services # 包管理服务框架代码
└── test # 测试目录
bm工具命令
bm是用来方便开发者调试的一个工具。bm工具被hdc工具封装,进入hdc shell命令后,就可以使用bm工具。
| 命令 | 描述 |
|---|---|
| help | 帮助命令,显示bm支持的命令信息 |
| install | 安装命令,用来安装应用 |
| uninstall | 卸载命令,用来卸载应用 |
| dump | 查询命令,用来查询应用的相关信息 |
| clean | 清理命令,用来清理应用的缓存和数据 |
| enable | 使能命令,用来使能应用 |
| disable | 禁用命令,用来禁用应用 |
| get | 获取udid命令,用来获取设备的udid |
帮助命令
| 命令 | 描述 |
|---|---|
| bm help | 显示bm工具的能够支持的命令信息 |
- 示例
# 显示帮助信息
bm help
安装命令
命令可以组合,下面列出部分命令。
| 命令 | 描述 |
|---|---|
| bm install -h | 显示install支持的命令信息 |
| bm install -p | 安装hap包,支持指定路径和多个hap同时安装 |
| bm install -p -u | 给指定用户安装一个hap包 |
| bm install -r -p | 覆盖安装一个hap包 |
| bm install -r -p -u | 给指定用户覆盖安装一个hap包 |
- 示例
# 安装一个hap
bm install -p /data/app/ohosapp.hap
# 覆盖安装一个hap
bm install -p /data/app/ohosapp.hap -r
卸载命令
命令可以组合,下面列出部分命令。-u未指定情况下,默认为所有用户。
| 命令 | 描述 |
|---|---|
| bm uninstall -h | 显示uninstall支持的命令信息 |
| bm uninstall -n | 通过指定包名卸载应用 |
| bm uninstall -n -k | 通过指定包名卸载应用时保留数据目录 |
| bm uninstall -n -u | 通过指定包名和用户卸载应用 |
| bm uninstall -n -m | 通过指定包名卸载应用的一个模块 |
- 示例
# 卸载一个hap
bm uninstall -n com.ohos.app
# 卸载一个hap,保留数据目录
bm uninstall -n com.ohos.app -k
# 卸载一个hap下面的ability
bm uninstall -n com.ohos.app -m com.ohos.app.MainAbility
查询命令
命令可以组合,下面列出部分命令。-u未指定情况下,默认为所有用户。
| 命令 | 描述 |
|---|---|
| bm dump -h | 显示dump支持的命令信息 |
| bm dump -a | 查询系统已经安装的所有应用 |
| bm dump -n | 查询指定包名的详细信息 |
| bm dump -n -s | 查询指定包名下的快捷方式信息 |
| bm dump -n -d | 跨设备查询包信息 |
| bm dump -n -u | 查询指定用户下指定包名的详细信息 |
- 示例
# 显示所有已安装的包名
bm dump -a
# 显示该应用的详细信息
bm dump -n com.ohos.app
清理命令
-u未指定情况下,默认为当前活跃用户。
| 命令 | 描述 |
|---|---|
| bm clean -h | 显示clean支持的命令信息 |
| bm clean -n -c | 清除指定包名的缓存数据 |
| bm clean -n -d | 清除指定包名的数据目录 |
| bm clean -n -c -u | 清除指定用户下包名的缓存数据 |
| bm clean -n -d -u | 清除指定用户下包名的数据目录 |
- 示例
# 清理该应用下的缓存数据
bm clean -n com.ohos.app -c
# 清理该应用下的用户数据
bm clean -n com.ohos.app -d
使能命令
-u未指定情况下,默认为当前活跃用户。
| 命令 | 描述 |
|---|---|
| bm enable -h | 显示enable支持的命令信息 |
| bm enable -n | 使能指定包名的应用 |
| bm enable -n -a | 使能指定包名下的元能力模块 |
| bm enable -n -u | 使能指定用户和包名的应用 |
- 示例
# 使能该应用
bm enable -n com.ohos.app
禁用命令
-u未指定情况下,默认为当前活跃用户。
| 命令 | 描述 |
|---|---|
| bm disable -h | 显示disable支持的命令信息 |
| bm disable -n | 禁用指定包名的应用 |
| bm disable -n -a | 禁用指定包名下的元能力模块 |
| bm disable -n -u | 禁用指定用户和包名下的应用 |
- 示例
# 禁用该应用
bm disable -n com.ohos.app
获取udid命令
| 命令 | 描述 |
|---|---|
| bm get -h | 显示get支持的命令信息 |
| bm get -u | 获取设备的udid |
- 示例
# 获取设备的udid
bm get -u
审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
接口
+关注
关注
33文章
9635浏览量
157801 -
鸿蒙
+关注
关注
60文章
3060浏览量
46266
发布评论请先 登录
相关推荐
热点推荐
Helm包管理与模板化部署实战
直接用kubectl管理K8s资源,10个微服务就要维护几十个YAML文件,版本管理靠文件夹命名,回滚靠手动替换文件。Helm把一组相关的K8s资源打包成Chart,支持模板化、版本管理、一键部署和回滚,是K8s生态中事实上的
M4-R1 开源鸿蒙(OpenHarmory)开发板丨串口调试助手实战案例
支持与高集成度设计,成为开发者体验与学习鸿蒙系统的理想平台。无论是智慧家居、教学实验,还是设备通信,M4-R1都能提供稳定可靠的开发环境。本次分享的
【项目实战】基于Hi3861的鸿蒙智能小车(循迹、超声波避障、远程控制、语音控制、4G定位)有教程代码
,同时整理了详细开发文档资料,新手跟着也能慢慢搭起来,提升实战能力。项目硬件清单鸿蒙智能小车项目使用的是红框部分鸿蒙智能小车豪华套餐硬件以及语音控制项目模块。项目功能
鸿蒙5开发宝藏案例分享---一多开发实例(音乐)
各位开发者小伙伴们好呀!今天咱们来点硬核干货!最近在鸿蒙文档中心挖到一座“金矿”——官方竟然暗藏了100+实战案例,从分布式架构到交互动效优化应有尽有!这些案例不仅藏着华为工程师的私房技巧,还直接
鸿蒙5开发宝藏案例分享---瀑布流优化实战分享
鸿蒙瀑布流性能优化实战:告别卡顿的宝藏指南!
大家好!最近在鸿蒙文档里挖到一个 性能优化宝藏库 ,原来官方早就准备好了各种场景的最佳实践!今天重点分享「瀑布流加载慢丢帧」的解决方案,附完整代码解析
发表于 06-12 17:41
鸿蒙5开发宝藏案例分享---内存优化实战指南
的工具链和 API 在快速发展,保持关注开发者文档和社区,获取最新的优化技术和案例。
希望这份结合官方精华和实战经验的分享,能帮你真正用好鸿蒙的这些“宝藏”功能,打造出内存占用低、运行流畅、用户喜爱
发表于 06-12 17:15
鸿蒙5开发宝藏案例分享---性能体验设计
;性能优化\"关键词!
**如果大家在实战中遇到卡顿难题,欢迎在评论区交流~ 也欢迎关注我,后续会持续分享鸿蒙开发实战技巧! **✨
希望这篇接地气的总结能帮你避开性能深坑!如果觉得有
发表于 06-12 16:45
鸿蒙5开发宝藏案例分享---性能优化案例解析
鸿蒙性能优化宝藏指南:实战工具与代码案例解析
大家好呀!今天在翻鸿蒙开发者文档时,意外挖到一个 性能优化宝藏库 ——原来官方早就提供了超多实用工具和案例,但很多小伙伴可能没发现!这篇就
发表于 06-12 16:36
鸿蒙5开发宝藏案例分享---埋点开发实战指南
鸿蒙埋点开发宝藏指南:官方案例实战解析,轻松搞定数据追踪!
大家好呀!我是HarmonyOS开发路上的探索者。最近在折腾应用埋点时,意外发现了鸿蒙
发表于 06-12 16:30
鸿蒙5开发宝藏案例分享---切面编程实战揭秘
鸿蒙切面编程(AOP)实战指南:隐藏的宝藏功能大揭秘!
大家好!今天在翻鸿蒙开发者文档时,意外发现了官方埋藏的「切面编程」宝藏案例!实际开发
发表于 06-12 16:21
鸿蒙5开发宝藏案例分享---应用并发设计
?** 鸿蒙并发编程实战指南:解锁ArkTS多线程黑科技**
嘿,开发者朋友们! 今天给大家扒一扒鸿蒙官方文档里藏着的并发编程宝藏—— 100+实战
发表于 06-12 16:19
鸿蒙5开发宝藏案例分享---应用架构实战技巧
大家好! 今天咱们聊聊鸿蒙开发中那些“官方文档提了但实际开发难找”的架构设计技巧。结合官方文档,我会用 真实代码案例+通俗讲解 ,帮你把分层架构和线程通信落地到项目里,告别“理论会了,代码不会
发表于 06-12 16:14
鸿蒙开发实战:【包管理子系统】
评论