Monet AppTracker 使用人数 API - APK 手动接入说明 目录内容 1. classes.dex 适合目标 APK 原本没有 classes.dex 的极少数情况。 2. classes2.dex 推荐使用。大多数 APK 已经有 classes.dex,把本文件放到 APK 根目录即可。 3. AndroidManifest-merge-snippet.xml 需要手动合并到目标 APK 的 AndroidManifest.xml。 4. src/ Java 源码,方便以后重新编译。 一、功能说明 这个 dex 会通过 ContentProvider 在应用启动时自动运行一次。 它会读取 AndroidManifest.xml 里的使用人数 API token,然后请求: https://monet-apptracker.pages.dev/api/usage/ping 请求体里只包含: - 随机生成的安装 ID - 当前 APK 包名 - Android SDK 版本 不会读取手机号、IMEI、通讯录、相册等隐私信息。 同一安装每天最多本地上报一次,避免频繁请求服务器。 二、推荐接入方式:通过 AndroidManifest.xml 填 token 1. 把 classes2.dex 放进 APK 根目录。 如果 APK 没有 classes.dex,可以改用 classes.dex。 如果 APK 已经有 classes2.dex,则把本文件改名为 classes3.dex、classes4.dex 等未占用编号。 2. 在 AndroidManifest.xml 的 节点下加入: 3. 在 AndroidManifest.xml 的 节点里面加入: 注意: - android:authorities 必须唯一。 - “目标APK包名”要替换成 APK 的真实包名,比如: com.example.app.monet-usage-provider - 使用人数 API 令牌必须是 mau_ 开头。 - 图标包提交令牌 mat_ 不能用于这里。 三、手动修改 classes.dex 里的统计人数令牌 如果你不想在 AndroidManifest.xml 里写 monet_usage_token,也可以直接改 dex 内置的占位令牌。 但是仍然必须在 AndroidManifest.xml 里加入 INTERNET 权限和 provider。 方法 A:用 MT 管理器 / NP 管理器 / Apktool 修改 smali 1. 反编译 APK。 2. 把本包里的 classes2.dex 放进反编译后的 APK 根目录。 如果需要改名为 classes3.dex,也可以。 3. 如果工具能直接浏览 dex/smali,找到: com/monet/apptracker/usage/MonetUsageProvider.smali 4. 搜索这个字符串: mau_REPLACE_WITH_YOUR_USAGE_TOKEN 5. 替换成你自己的使用人数 API 令牌,例如: mau_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx 6. 保存后重新打包、签名、安装测试。 方法 B:先把 dex 转 smali,再替换 如果你用 apktool/baksmali 工作流,可以这样做: 1. 将 classes2.dex 转成 smali: baksmali d classes2.dex -o smali_classes2 2. 搜索: mau_REPLACE_WITH_YOUR_USAGE_TOKEN 3. 替换为自己的 mau_ 开头令牌。 4. 重新打包时让 apktool 把 smali_classes2 编回 dex。 四、Manifest 最小示例 假设目标 APK 包名为 com.example.app: 五、常见问题 1. 安装时报 INSTALL_FAILED_CONFLICTING_PROVIDER 原因:android:authorities 和别的应用重复。 解决:改成“目标APK包名.monet-usage-provider”这种唯一值。 2. 后台统计没有增加 检查: - 手机是否联网 - APK 是否有 android.permission.INTERNET - provider 是否放在 里面 - token 是否是 mau_ 开头 - base_url 是否是 https://monet-apptracker.pages.dev - 同一安装本地 24 小时只会上报一次 3. 可以用 mat_ 图标包令牌吗 不可以。mat_ 是图标包数据库提交令牌。 使用人数 API 必须使用 mau_ 开头令牌。 4. 会不会导致服务器被刷 dex 本地做了 24 小时节流;服务器接口也有限速。