[ English | 简体中文 ]
PMS API
Package Manager Service(PMS)是 openvela XMS 系统中的包管理模块。
功能特性
- 提供包安装功能
- 提供包信息查询能力
- 提供包卸载能力
示例
通过命令行进行包管理
安装包:
pm install [packagename]
查询已安装的包:
pm list
通过源码使用包管理工具
安装包:
#include <pm/PackageManager.h>
PackageManager pm;
InstallParam parms;
pm.installPackage(parms);
获取所有包信息:
#include <pm/PackageManager.h>
PackageManager pm;
std::vector<PackageInfo> pgInfos;
pm.getAllPackageInfo(&pgInfos);
卸载包:
#include <pm/PackageManager.h>
PackageManager pm;
UninstallParam parms;
pm.uninstallPackage(parms);
核心类
PackageManager
头文件:#include <pm/PackageManager.h>
客户端侧访问 PMS 能力的门面类。提供的主要操作:
installPackage(InstallParam)— 安装应用包uninstallPackage(UninstallParam)— 卸载应用包getAllPackageInfo(std::vector<PackageInfo>*)— 查询所有已安装包信息getPackageInfo(packageName, PackageInfo*)— 查询指定包信息getAllPackageName(std::vector<std::string>*)— 查询所有已安装包名getPackageSizeInfo(packageName, ...)— 查询包占用空间clearAppCache(packageName)— 清理应用缓存isFirstBoot()— 查询是否首次启动
应用通常构造 PackageManager 实例后直接调用上述方法,内部通过 Binder 与 PackageManagerService 通信。
PackageManagerService
头文件:#include <pm/PackageManagerService.h>
PMS 的服务端实现类,注册为系统服务。负责维护已安装包的元数据、执行实际的安装/卸载动作、处理权限与签名校验。开发者一般不直接使用该类。
PackageInfo
头文件:#include <pm/PackageInfo.h>
描述单个安装包元数据的结构。主要字段包括:
packageName/name— 包名与应用名version/priority/appType— 版本、优先级与应用类型installedPath/installTime/size— 安装路径、安装时间与占用大小execfile/entry/manifest— 可执行文件、入口与清单activitiesInfo/servicesInfo— 内部 Activity 与 Service 列表shasum— 签名摘要userId/isSystemUI— 用户 ID 与是否系统 UIwindowEnterAnim/windowExitAnim— 窗口进入/退出动画配置
PackageManager 的查询接口返回该类型的结果。
PackageTrace
头文件:#include <PackageTrace.h>
PMS 的 trace 打点宏集合,用于跟踪包管理操作路径,配合 openvela trace 工具分析性能。