BlackBoxCore 常用接口速查:应用列表、用户信息与启动调用
接口总览
引擎的能力入口集中在 BlackBoxCore 单例上。官方说明直接给了几组最常用的调用,其余接口的命名自解释程度较高,官方的建议是「更多其他操作看 BlackBoxCore 函数名大概就知道了」,必要时读源码确认。
安装与启动(见集成页详解)
BlackBoxCore.get().installPackageAsUser("com.example", userId); // 按包名安装
BlackBoxCore.get().installPackageAsUser(new File("/sdcard/x.apk"), userId); // 按 APK 路径安装
BlackBoxCore.get().launchApk("com.example", userId); // 启动虚拟应用
枚举虚拟环境内已安装的应用
// flags 与常规获取已安装应用保持一致即可
BlackBoxCore.get().getInstalledApplications(flags, userId);
BlackBoxCore.get().getInstalledPackages(flags, userId);
返回的是虚拟环境内的应用列表——注意与系统 PackageManager 的同名接口区分:这里列出的是装进容器的应用,不是手机上装的应用。flags 的取值沿用安卓开发文档中的标准定义。
获取用户(容器)信息
List<BUserInfo> users = BlackBoxCore.get().getUsers();
BUserInfo 对应界面上的用户体系:User 0、User 1……每个用户就是界面里可以添加备注、切换查看的容器。做批量管理(比如统计每个容器装了哪些应用)时,这组接口与上面的枚举接口组合使用。
使用接口时的三个注意
- userId 贯穿始终:安装、启动、枚举都要指定用户,先通过 getUsers 拿到有效 id 再操作;
- 包名体系是隔离的:同一包名可以装进多个用户,各份实例互不影响,这是多开的接口层基础;
- 接口行为以源码为准:项目停更后没有接口文档的持续维护,本页只覆盖官方说明中明确给出的部分,更复杂的调用自行读 Bcore 源码。
集成与接口的关系
还没跑通三步集成的,先回三步把引擎接入自己的工程把初始化打通;工程结构层面有疑问的,看Bcore 引擎与 app 模块。