0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发实战:【包管理子系统】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-03-14 15:23 次阅读

简介

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

包管理子系统架构如下图所示:

部件内子模块职责

子模块名称职责
包管理接口模块1.对外提供的安装更新卸载及通知接口; 2.对外提供的包/组件信息/权限信息查询接口; 3.对外提供的应用权限查询接口; 4.对外提供的清除数据的接口;
扫描模块1.预置应用的扫描; 2.已安装三方应用的扫描; 3.包配置文件的解析;
安全管理模块1.安装过程中的签名校验; 2.安装过程中应用所申请权限的授予; 3.应用运行中权限的校验;
DBMS模块1.获取指定设备ability信息;
安装管理模块1.安装、更新、卸载逻辑处理及结果通知;
包信息管理模块1.包信息、组件信息的存储及同步;
设备状态监听模块1.监听设备的上下线;
Installed模块特权进程: 1)用于创建、删除等目录操作; 2)用于创建、删除等文件操作; 3)用于设备目录的沙箱uid/gid等操作
DFX1.包管理维测工具

目录

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

审核编辑 黄宇

5a94ffa1b62d74e6095eff0d95d75612.gif

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    7640

    浏览量

    148509
  • 鸿蒙
    +关注

    关注

    55

    文章

    1637

    浏览量

    42120
收藏 人收藏

    评论

    相关推荐

    鸿蒙开发图形图像:【图形子系统

    图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS应用框架满足硬件资源较小的物联网设备或者构建基于标准OS的应用框架满足富设备的OpenHarmony系统应用
    的头像 发表于 03-23 16:50 343次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>图形图像:【图形<b class='flag-5'>子系统</b>】

    鸿蒙开发实战:【Hdf Framework】

    该仓主要存放OpenHarmony驱动子系统核心源码信息(包括驱动框架、配置管理、配置解析、驱动通用框架模型、硬件通用平台能力接口等),旨在为开发者提供更精准、更高效的开发环境,力求做
    的头像 发表于 03-21 20:29 112次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b>:【Hdf Framework】

    鸿蒙开发实战:【系统服务框架部件】

    系统服务管理子系统中safwk组件定义OpenHarmony中SystemAbility的实现方法,并提供启动、注册等接口实现。
    的头像 发表于 03-21 15:44 129次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b>:【<b class='flag-5'>系统</b>服务框架部件】

    鸿蒙开发实战:【电话服务子系统

    电话服务子系统,提供了一系列的API用于获取无线蜂窝网络和SIM卡相关的一些信息。应用可以通过调用API来获取当前注册网络名称、网络服务状态、信号强度以及SIM卡的相关信息。
    的头像 发表于 03-14 21:49 97次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b>:【电话服务<b class='flag-5'>子系统</b>】

    鸿蒙实战项目开发:【短信服务】

    数据管理 电话服务 分布式应用开发 通知与窗口管理 多媒体技术 安全技能 任务管理 WebGL 国际化开发 应用测试 DFX面向未来设计
    发表于 03-03 21:29

    鸿蒙这么大声势,为何迟迟看不见岗位?最新数据来了

    管理 多媒体技术 安全技能 任务管理 WebGL 国际化开发 应用测试 DFX面向未来设计 鸿蒙系统移植和裁剪定制 …… 《
    发表于 02-29 20:53

    纯血鸿蒙系统,拿什么与安卓、iOS比?

    ArkUI …… 2、鸿蒙进阶 Stage模型 网络、数据管理 一次开发多段部署 …… 3、鸿蒙多媒体技术 音频 视频 相机 图片 …… 4、鸿蒙
    发表于 02-21 21:04

    鸿蒙系统优缺点,能否作为开发者选择

    星河版已经是纯血鸿蒙,但是它的发展一些周期。生态圈的建立难度大,各大厂商加入鸿蒙原生开发需要时间累积。 鸿蒙开发人才空缺,由于
    发表于 02-16 21:00

    使用 Taro 开发鸿蒙原生应用 —— 快速上手,鸿蒙应用开发指南

    随着鸿蒙系统的不断完善,许多应用厂商都希望将自己的应用移植到鸿蒙平台上。最近,Taro 发布了 v4.0.0-beta.x 版本,支持使用 Taro 快速开发
    的头像 发表于 02-02 16:09 387次阅读
    使用 Taro <b class='flag-5'>开发</b><b class='flag-5'>鸿蒙</b>原生应用 —— 快速上手,<b class='flag-5'>鸿蒙</b>应用<b class='flag-5'>开发</b>指南

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    8.安全技能 9.任务管理 10.WebGL 11.国际化开发 12.应用测试 13.DFX面向未来设计 14.鸿蒙系统移植和裁剪定制 15…… 《
    发表于 01-16 22:13

    免费学习鸿蒙(HarmonyOS)开发,一些地址分享

    国内一流高校。通过鸿蒙班的设立,高校可以为学生提供专业的鸿蒙OS学习环境和丰富的实践机会,培养出更多的鸿蒙开发人才,为鸿蒙OS
    发表于 01-12 20:48

    鸿蒙基础开发实战-(ArkTS)像素转换

    的使用。通过像素转换案例,向开发者讲解了如何使用像素单位设置组件的尺寸、字体的大小以及不同像素单位之间的转换方法。更多鸿蒙4.0的学习,可以前往主页学习或前往《鸿蒙4.0开发学习目录》
    发表于 01-11 16:53

    鸿蒙 OS 应用开发初体验

    kotlin 语言了,编程语言变成了类 JavaScript 的前端语言,这意味着我们需要适应用前端的思想去开发鸿蒙应用,比如状态管理。 总结 本文纯初体验遥遥领先背后的鸿蒙操作
    发表于 11-02 19:38

    Linux中内存管理子系统开发必知的3个结构概念

    Linux中内存管理子系统使用节点(node)、区域(zone)和页(page)三级结构描述物理内存。
    的头像 发表于 08-28 09:34 576次阅读
    Linux中内存<b class='flag-5'>管理</b><b class='flag-5'>子系统开发</b>必知的3个结构概念

    Linux环境下如何管理Python包管理工具

    Linux环境下,需要对软件包进行安装、卸载、升级和查询等操作,包含这些操作的工具,称为包管理工具。
    发表于 08-22 15:14 388次阅读
    Linux环境下如何<b class='flag-5'>管理</b>Python<b class='flag-5'>包管理</b>工具