开源地址 -> https://github.com/android-cs/android-api-diff
如果你的应用有对接 shizuku/shell/root 的功能场景,基本都会调用 Android 的隐藏 API
但隐藏 API 不考虑兼容性,因为它是给 Android 内部自己用的并且编译时不可见会编译失败
工程化的做法是创建 hidden-api 模块去声明隐藏 API 让主项目顺利通过编译,然后使用 HiddenApiBypass 允许调用隐藏 API ,基本 0 反射调用
但每个大版本签名情况不一样,甚至单个版本内的不同小版本也有区别,下面是一些常用例子
- IUserManager.getUsers 有 2 个签名
- IPackageManager.getInstalledPackages 有 3 个签名
- IActivityTaskManager.getTasks 有 3 个签名
古法编程时代是人工查看每个版本,出纰漏的概率很大
AI 时代虽然 AI 自己也能查源码,但仍需要有工具能快速给 AI 准确的信息
本项目原本是在线网页,给我自己一键查看兼容性的,效率相比以前自己手动拼链接看快了很多
后面全使用 AI 了,再人工查看就不太行了,索性直接一步到位封装了 MCP 给 AI 调用
虽然现在 Android 拉了,但如果你的 Android 项目有开头说的使用场景,那本项目应该是必备的