简介
包管理子系统负责应用安装包的管理,提供安装包的信息查询、安装、更新、卸载和包信息存储等能力。具体功能如下:
包管理子系统架构如下图所示:
部件内子模块职责
子模块名称 | 职责 |
---|---|
包管理接口模块 | 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文章
8593浏览量
151123 -
鸿蒙
+关注
关注
57文章
2350浏览量
42842
发布评论请先 登录
相关推荐
鸿蒙Flutter实战:14-现有Flutter 项目支持鸿蒙 II
分别安装官方的3.22版本,以及鸿蒙社区的 3.22.0 版本
3.搭建 Flutter鸿蒙开发环境
参考文章《鸿蒙Flutter实战:0
发表于 12-26 14:59
【书籍评测活动NO.53】鸿蒙操作系统设计原理与架构
的底层设计逻辑出发,针对不同关键子系统的目标功能和实现路径做实际分析解读,帮助开发者理解鸿蒙操作系统的底层逻辑,开发更适合
发表于 12-16 15:10
鸿蒙Flutter实战:08-如何调试代码
# 鸿蒙Flutter实战:如何调试代码
## 1.环境搭建
参考文章[鸿蒙Flutter实战:01-搭建开发环境](https://g
发表于 10-23 16:29
鸿蒙Flutter实战:07混合开发
# 鸿蒙Flutter实战:混合开发
鸿蒙Flutter混合开发主要有两种形式。
## 1.基于har
将flutter module
发表于 10-23 16:00
【「仓颉编程快速上手」阅读体验】简洁包管理的命脉
包管理,一个简简单单,又复复杂杂的内容。其实包管理原理不难,但是做好确实不容易。
仓颉具备自己的包管理。
从C++这种语言来说。除了针对特定系统的包
发表于 09-26 22:18
36岁了还有必要转行鸿蒙开发吗?
鸿蒙开发这事儿,真的挺有必要的!
鸿蒙操作系统,它厉害就厉害在高性能、可扩展,还特智能。现在智能设备和物联网火得不行,鸿蒙就是要成为这个时代
发表于 05-09 17:01
鸿蒙开发图形图像:【图形子系统】
图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS应用框架满足硬件资源较小的物联网设备或者构建基于标准OS的应用框架满足富设备的OpenHarmony系统应用
鸿蒙开发实战:【Hdf Framework】
该仓主要存放OpenHarmony驱动子系统核心源码信息(包括驱动框架、配置管理、配置解析、驱动通用框架模型、硬件通用平台能力接口等),旨在为开发者提供更精准、更高效的开发环境,力求做
鸿蒙开发学习:【驱动子系统】
OpenHarmony驱动子系统采用C面向对象编程模型构建,通过平台解耦、内核解耦,兼容不同内核,提供了归一化的驱动平台底座,旨在为开发者提供更精准、更高效的开发环境,力求做到一次开发
鸿蒙开发实战:【电话服务子系统】
电话服务子系统,提供了一系列的API用于获取无线蜂窝网络和SIM卡相关的一些信息。应用可以通过调用API来获取当前注册网络名称、网络服务状态、信号强度以及SIM卡的相关信息。
鸿蒙开发实战【通话管理】
通话管理模块主要管理CS(Circuit Switch,威廉希尔官方网站
交换)、IMS(IP Multimedia Subsystem,IP多媒体子系统)和OTT(over the top,OTT解决方案)三种类型的通话,负责申请通话所需要
鸿蒙实战项目开发:【短信服务】
数据管理
电话服务
分布式应用开发
通知与窗口管理
多媒体技术
安全技能
任务管理
WebGL
国际化开发
应用测试
DFX面向未来设计
发表于 03-03 21:29
鸿蒙这么大声势,为何迟迟看不见岗位?最新数据来了
管理
多媒体技术
安全技能
任务管理
WebGL
国际化开发
应用测试
DFX面向未来设计
鸿蒙系统移植和裁剪定制
……
《
发表于 02-29 20:53
评论