簡介
包管理子系統負責應用安裝包的管理,提供安裝包的信息查詢、安裝、更新、卸載和包信息存儲等能力。具體功能如下:
包管理子系統架構如下圖所示:
部件內子模塊職責
子模塊名稱 | 職責 |
---|---|
包管理接口模塊 | 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文章
8993瀏覽量
153682 -
鴻蒙
+關注
關注
60文章
2617瀏覽量
44018
發布評論請先 登錄
相關推薦
熱點推薦
鴻蒙5開發寶藏案例分享---一多開發實例(音樂)
各位開發者小伙伴們好呀!今天咱們來點硬核干貨!最近在鴻蒙文檔中心挖到一座“金礦”——官方竟然暗藏了100+實戰案例,從分布式架構到交互動效優化應有盡有!這些案例不僅藏著華為工程師的私房技巧,還直接
鴻蒙5開發寶藏案例分享---埋點開發實戰指南
鴻蒙埋點開發寶藏指南:官方案例實戰解析,輕松搞定數據追蹤!
大家好呀!我是HarmonyOS開發路上的探索者。最近在折騰應用埋點時,意外發現了鴻蒙
發表于 06-12 16:30
鴻蒙5開發寶藏案例分享---切面編程實戰揭秘
鴻蒙切面編程(AOP)實戰指南:隱藏的寶藏功能大揭秘!
大家好!今天在翻鴻蒙開發者文檔時,意外發現了官方埋藏的「切面編程」寶藏案例!實際開發
發表于 06-12 16:21
飛凌嵌入式ElfBoard ELF 1板卡-input子系統之input子系統簡介
用戶的輸入,比如按鍵輸入、鼠標操作等,并根據這些輸入事件做出相應的響應。Input子系統還提供了一些附加功能,如輸入設備的熱插拔支持、輸入設備屬性的查詢和配置等。這使得開發者可以更加靈活地管理和使用輸入
發表于 04-15 10:27
本周三晚7點!《手把手教你做PC》第四課:驅動子系統開發流程上-KHDF
本周三晚七點,《KaihongOS筆記本電腦開發實戰④——驅動子系統開發流程上-KHDF》即將啟動!本次課程旨在幫助開發者了解KaihongOS驅動

名單公布!【書籍評測活動NO.56】極速探索HarmonyOS NEXT:純血鴻蒙應用開發實踐
開發的核心技術,以及鴻蒙應用在實際開發中的應用方法。
本書共分為四篇,共計16章,分別為鴻蒙開發基礎篇、
發表于 01-20 16:53
《HarmonyOS第一課》煥新升級,賦能開發者快速掌握鴻蒙應用開發
能開發輕量型APP或元服務。課程涵蓋Stage模型進階、多線程編程、組件狀態管理等核心技能,讓開發者能獨立完成多個模塊業務及多個子系統等復雜模塊開發
發表于 01-02 14:24
鴻蒙Flutter實戰:14-現有Flutter 項目支持鴻蒙 II
分別安裝官方的3.22版本,以及鴻蒙社區的 3.22.0 版本
3.搭建 Flutter鴻蒙開發環境
參考文章《鴻蒙Flutter實戰:0
發表于 12-26 14:59
名單公布!【書籍評測活動NO.53】鴻蒙操作系統設計原理與架構
的底層設計邏輯出發,針對不同關鍵子系統的目標功能和實現路徑做實際分析解讀,幫助開發者理解鴻蒙操作系統的底層邏輯,開發更適合
發表于 12-16 15:10
鴻蒙Flutter實戰:09-現有Flutter項目支持鴻蒙
# 鴻蒙Flutter實戰:現有Flutter項目支持鴻蒙
## 背景
原來使用Flutter開發的項目,需要適配鴻蒙。
## 環境搭
發表于 10-23 16:36
鴻蒙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
評論