APKPLUG 应 用 内 工 具 栏 使 用 文 档 目 录 一, 概 要 说 明... 2 二, 接 入 流 程... 3 1. 加 入 SDK 代 码 包... 3 2. 初 始 化 SDK:... 3 3. 权 限 配 置... 3 4. 调 用 应 用 内 工 具 栏... 4 1. 在 线 云 端 拉 取 方 式... 4 2. 本 地 安 装 工 具 栏 插 件... 4 三, 工 具 栏 界 面 定 制... 4 1. 设 置 工 具 栏 名 称... 5 2.Tab 的 类 型... 5 3.Tab 控 制 类 ToolsModel... 5 4.Tab 定 制 示 例... 6 四, 云 端 配 置... 6 1. 上 传 主 应 用 到 云 端... 6 1. 首 先 你 需 要 在 云 端 为 主 应 用 申 请 一 个 appid... 6 2. 配 置 appid... 7 3. 上 传 主 应 用 到 云 端... 7 2. 在 云 端 绑 定 插 件... 7 第 1 页 共 8 页
一, 概 要 说 明 使 用 APKPLUG 应 用 内 工 具 栏 的 目 的 是 能 让 用 户 更 加 快 捷 的 使 用 新 的 功 能 如 支 付 宝 工 具 栏 一 样 APKPLUG 应 用 内 工 具 栏 有 以 下 的 几 个 特 点 : 1. SDK 接 入 简 单 只 需 要 加 入 一 个 10K 左 右 的 jar 包 即 可, 无 需 导 入 额 外 的 资 源 文 件 2. 插 件 开 发 简 单 插 件 即 为 原 生 的 apk 文 件, 对 现 有 应 用 简 单 改 造 即 可 3. 云 端 部 署 插 件 开 发 完 成 后 上 传 APKPLUG 云 端 部 署 即 可 第 2 页 共 8 页
二, 接 入 流 程 1. 加 入 SDK 代 码 包 1. Bundle2.7.9.Dev.jar apkplug 框 架 核 心 包 200k 2. ApkplugCloudService1.9.0.jar apkplug 云 端 托 管 服 务 SDK 包 400k 3. ApkplugTools1.0.0.jar 应 用 内 工 具 栏 SDK 包 12k 2. 初 始 化 SDK: 1. 初 始 化 apkplug frame=frameworkfactory.getinstance().start(null, this); 2. 初 始 化 云 端 托 管 服 务 SDK ApkplugCloudAgent.getInstance(context).init(); 3. 权 限 配 置 <!-- apkplug-auth 和 apkplug-appid 配 置 为 您 在 apkplug 后 台 申 请 的 --> <meta-data android:name="apkplug-auth" android:value="xxxxx" ></meta-data> <meta-data android:name="apkplug-appid" android:value="6bd1d2d34d999380" ></meta-data> <activity android:name="org.apkplug.app.apkplugactivity" /> android:theme="@android:style/theme.translucent" android:configchanges="orientation keyboardhidden" <!-- APKPLUG 框 架 须 要 的 权 限 --> <uses-permission android:name="android.permission.write_external_storage"></uses-permission> <uses-permission android:name="android.permission.mount_unmount_filesystems"/> <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.read_phone_state"/> 注 意 : 插 件 中 需 要 的 权 限, 也 需 要 在 主 应 用 中 配 置 第 3 页 共 8 页
4. 调 用 应 用 内 工 具 栏 1. 在 线 云 端 拉 取 方 式 该 方 式 是 用 户 在 第 一 次 使 用 工 具 栏 时 从 云 端 拉 取 ToolsSdkAgent imsdkagent=new ToolsSdkAgent(this,frame.getSystemBundleContext()); imsdkagent.starttoolssdk( }); new CheckInitCallBack(){ @Override public void onsuccess(plugtoolssdk service) { } Log.e("", " 启 动 工 具 栏 Activity"); service.starttoolsactivity(" 在 线 工 具 ",DefaultToolsModel()); @Override public void onfailure(int errorno, String strmsg) { } Log.e("onFailure", strmsg); 2. 本 地 安 装 工 具 栏 插 件 1).BundleToolsPlug.apk 2). 安 装 工 具 栏 插 件 : 1.3M 放 置 主 应 用 assets 目 录 下 InstallBundler ib=new InstallBundler(context); ib.installforassets("bundletoolsplug.apk ", "1.0.0", null,null); 3). 启 动 工 具 栏 启 动 工 具 栏 代 码 与 在 线 云 端 拉 取 方 式 相 同, 只 是 会 少 了 云 端 拉 取 的 步 骤 三, 工 具 栏 界 面 定 制 我 们 可 以 在 启 动 工 具 栏 时 设 置 一 些 定 制 信 息, 目 前 可 定 制 的 内 容 有 : 1. 工 具 栏 的 Title 名 称 2. 工 具 栏 显 示 分 类 (Tab) 可 以 设 置 Tab 类 型,Tab 名 称 和 查 询 条 件 第 4 页 共 8 页
1. 设 置 工 具 栏 名 称 如 下 图, 在 启 动 工 具 栏 时 修 改 红 色 框 内 内 容 即 可 2.Tab 的 类 型 目 前 工 具 栏 有 两 种 Tab 类 型 1. 显 示 已 安 装 插 件 的 Tab 2. 查 询 云 端 插 件 的 Tab 3.Tab 控 制 类 ToolsModel public static int intalled=0; // 已 安 装 插 件 的 Tab 类 型 public static int online=intalled+1; // 查 询 云 端 插 件 的 Tab 类 型 private String name=null; // Tab 名 称 private int type=intalled; //Tab 类 型 默 认 为 intalled // 过 滤 不 需 要 显 示 的 已 安 装 插 件 可 以 设 置 多 个 正 则 表 达 式 public String[] filter=new String[]{"SystemBundle"}; 第 5 页 共 8 页
public String keyword=null; // 在 线 查 询 时 使 用 的 keyword public int sortmode=mode.sortbyweight; // 在 线 查 询 时 排 序 方 式 4.Tab 定 制 示 例 private List<ToolsModel> DefaultToolsModel(){ ArrayList toolslist=new ArrayList<ToolsModel>(); // 第 一 个 Tab 用 于 显 示 已 安 装 的 插 件 ToolsModel tm=new ToolsModel(" 已 安 装 ",ToolsModel.intalled); // SystemBundle 是 不 显 示 SystemBundle 这 个 系 统 插 件 // ^\\[s\\].*$ 是 不 显 示 插 件 名 称 以 [s] 开 头 的 插 件 // 工 具 栏 这 个 插 件 名 称 为 :[s] 工 具 栏, 因 此 该 插 件 也 不 会 被 显 示 tm.filter=new String[]{"SystemBundle","^\\[s\\].*$"}; toolslist.add(tm); // 第 二 个 Tab 用 于 显 示 在 线 应 用, 以 keyword 为 查 询 条 件, 排 序 方 式 为 按 weight ToolsModel tm2=new ToolsModel(" 在 线 应 用 ",ToolsModel.online); tm2.keyword="ui"; tm2.sortmode=mode.sortbyweight; toolslist.add(tm2); // 第 三 个 Tab 用 于 显 示 在 线 小 游 戏, 以 keyword 为 查 询 条 件, 排 序 方 式 为 默 认 按 weight ToolsModel tm1=new ToolsModel(" 在 线 小 游 戏 ",ToolsModel.online); tm1.keyword="game"; toolslist.add(tm1); return toolslist; } 您 可 以 根 据 应 用 具 体 需 求 扩 展 多 个 不 同 类 型 的 Tab 四, 云 端 配 置 以 上 三 步 是 Android 端 的 接 入, 但 具 体 的 在 线 插 件 需 要 在 apkplug 的 托 管 服 务 中 设 置 1. 上 传 主 应 用 到 云 端 1. 首 先 你 需 要 在 云 端 为 主 应 用 申 请 一 个 appid 主 应 用 在 申 请 appauth 时 可 自 动 生 成 一 个 appid, 因 此 步 骤 可 以 简 化 为 : 1. 申 请 应 用 授 权 第 6 页 共 8 页
2. 进 入 appid 列 表 获 取 主 应 用 所 对 应 的 appid 2. 配 置 appid 将 appid 配 置 到 Manifest.xml 的 <application> 标 签 中, 与 <activity> 标 签 同 级 3. 上 传 主 应 用 到 云 端 主 应 用 编 译 成 功 后 将 生 成 的 apk 上 传 到 云 端 即 可 2. 在 云 端 绑 定 插 件 主 应 用 上 传 成 功 以 后 可 在 应 用 托 管 应 用 列 表 中 查 看 到, 如 下 图 我 们 应 当 重 点 关 注 红 色 框 中 的 两 个 界 面 1. 绑 定 关 系 操 作 界 面 红 色 框 中 表 示 该 插 件 还 未 与 该 主 应 用 绑 定 第 7 页 共 8 页
2. 已 绑 定 的 插 件 列 表 界 面 该 界 面 可 以 查 看 到 已 绑 定 插 件, 同 时 可 以 修 改 weight 权 值 3. 绑 定 详 情 界 面 绑 定 详 情 界 面 可 以 看 到 绑 定 关 系 的 详 细 信 息, 同 时 可 以 修 改 绑 定 查 询 内 容 1. 可 修 改 weight 权 值 用 于 查 询 排 序 2. 可 修 改 keywords 用 于 查 询 排 序 3. 可 设 置 参 数 模 板 插 件 自 定 义 参 数 第 8 页 共 8 页