← 最新论文
💻 computer science

Towards Understanding Android APIs: Official Lists, Vendor Customizations, and Real-World Usage

本文通过深入实证研究揭示了官方 Android API 列表之间存在显著的不一致性与不稳定性,并发现厂商定制 API 在真实应用中广泛使用却被现有研究忽视,从而强调了 API 列表选择对 Android 研究结论的重大影响并提出了改进建议。

原作者: Sinan Wang, Qi Zhang, Jiacheng Li, Lili Wei, Yida Tao, Yepang Liu

发布于 2026-04-17
📖 1 分钟阅读☕ 轻松阅读

原作者: Sinan Wang, Qi Zhang, Jiacheng Li, Lili Wei, Yida Tao, Yepang Liu

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇论文就像是在给 Android 系统做了一次深度的“体检”和“人口普查”。为了让你更容易理解,我们可以把 Android 系统想象成一个巨大的、不断扩建的“超级城市”,而API(应用程序接口)就是这座城市里供开发者使用的公共设施(比如路灯、红绿灯、图书馆、地铁站)。

开发者写 App,就像是在这个城市里盖房子或开店,他们必须依赖这些公共设施才能运作。

1. 核心问题:官方“地图”不准了?

在这个“超级城市”里,政府(Google)会发布几份不同的官方地图(论文中称为 AALs,即 Android API Lists),告诉开发者哪些公共设施是存在的、怎么用的。

这篇论文发现了一个大麻烦:政府发布的这几份地图,竟然互相打架,而且都不完全准确!

  • 地图 A (JAR):像是“编译后的蓝图”,只包含最终能用的东西,但有些细节被简化了。
  • 地图 B (XML):像是“时间轴记录”,告诉你哪些设施什么时候建了,什么时候拆了。
  • 地图 C (TXT):像是“源代码手稿”,保留了最原始的设计细节(比如泛型),但有些是还没编译的“半成品”。
  • 地图 D (CSV):像是“全量数据库”,包含了所有编译出来的东西,甚至包括一些为了内部测试或特殊语言生成的“隐形设施”。

研究发现:
如果你拿着地图 A 去盖房子,可能会发现地图 B 上有的设施你找不到;如果你拿着地图 C,可能会发现地图 D 里有些设施其实根本不存在。更糟糕的是,这四份地图里,只有大约 10% 的内容是完全一致的。这意味着,如果你依赖其中某一份地图做研究或开发,你的结论可能是错的,就像拿着旧地图在新区迷路一样。

2. 奇怪的“幽灵设施”和“隐形通道”

论文还发现了两个有趣的现象:

  • 幽灵设施(Synthesized APIs)
    有些设施在“全量数据库”(CSV 地图)里存在,但在真实的“城市”(手机设备)里根本找不到。这就像地图上画了一个“隐形地铁站”,实际上它只是编译器为了处理代码而临时生成的,现实中并不存在。如果开发者照着这个地图去修路,就会白忙一场。

  • 隐形通道(Vendor Customizations)
    这是最关键的发现。除了 Google 建的“标准城市”,还有像小米、三星、华为这样的“区域开发商”(Vendor)。他们在自己的区域里偷偷建了很多专属设施(比如小米的 MIUI 特有功能)。

    • 现状:这些专属设施没有出现在任何一份官方地图里。
    • 真相:但是,大量的普通 App(甚至包括一些恶意软件)都在偷偷使用这些“隐形通道”!就像大家发现了一条只有本地人知道的捷径,虽然地图上没有,但大家都在走。如果研究者只看官方地图,就会完全忽略这些真实存在且被广泛使用的功能。

3. 真实世界的“探照灯”

为了验证地图准不准,研究团队做了两件实事:

  1. 实地勘测:他们把“探照灯”(反射工具)照向了 9 台真实的手机(包括小米、三星和原生安卓)。

    • 结果:发现官方地图里说“存在”的某些设施,在真机上根本打不开;而真机上有的设施,地图里却完全没有。特别是那些“定制版”手机,里面藏着很多官方地图没记录的“私有设施”。
  2. 人口普查:他们检查了 17,759 个真实的 App(包括开源软件、商业软件和病毒)。

    • 结果:开发者们其实很“狡猾”,他们不仅用官方地图上的设施,还大量使用那些“隐形通道”(厂商定制 API)和“地下通道”(非公开接口)。特别是商业 App 和病毒,非常喜欢用反射技术去调用这些地图上没有的功能。

4. 这对我们意味着什么?(结论与建议)

这篇论文给所有研究 Android 的学者和开发者敲响了警钟:

  • 不要盲目相信单一地图:以前大家做研究,随便挑一份官方地图就用,现在发现这会导致结论大相径庭。比如,有的工具说某个功能“不存在”,其实是因为它查的那份地图没更新,或者没包含厂商定制的内容。
  • 地图是动态的:官方地图的收录规则经常变。今天有的设施,明天可能就从地图里删了,但在真机上还能用。
  • 关注“隐形”世界:未来的研究不能只盯着 Google 的官方文档,必须把**厂商定制(Vendor Customizations)非公开接口(Non-SDK)**考虑进去。因为这才是真实世界中 App 运行的“潜规则”。

总结

这就好比我们要研究“中国交通状况”,如果只参考《国家公路网规划图》,而忽略了各省自己修的“乡间小路”和“临时便道”,那我们的研究结果肯定是不准确的。

这篇论文告诉我们:Android 的世界比官方地图显示的更复杂、更混乱,但也更真实。 想要真正理解 Android,必须把那些“地图上没有”的设施也找出来,才能看清全貌。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →