簡介
包管理子系統負責應用安裝包的管理,提供安裝包的信息查詢、安裝、更新、卸載和包信息存儲等能力。具體功能如下:
包管理子系統架構如下圖所示:
部件內子模塊職責
子模塊名稱 | 職責 |
---|---|
包管理接口模塊 | 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文章
8641瀏覽量
151386 -
鴻蒙
+關注
關注
57文章
2369瀏覽量
42900
發布評論請先 登錄
相關推薦
《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實戰: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
評論