Blackbox 中文文档 下载 App

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……每个用户就是界面里可以添加备注、切换查看的容器。做批量管理(比如统计每个容器装了哪些应用)时,这组接口与上面的枚举接口组合使用。

使用接口时的三个注意

  1. userId 贯穿始终:安装、启动、枚举都要指定用户,先通过 getUsers 拿到有效 id 再操作;
  2. 包名体系是隔离的:同一包名可以装进多个用户,各份实例互不影响,这是多开的接口层基础;
  3. 接口行为以源码为准:项目停更后没有接口文档的持续维护,本页只覆盖官方说明中明确给出的部分,更复杂的调用自行读 Bcore 源码。

集成与接口的关系

还没跑通三步集成的,先回三步把引擎接入自己的工程把初始化打通;工程结构层面有疑问的,看Bcore 引擎与 app 模块。