[论文解读] DroidLink: Automated Generation of Deep Links for Android Apps
DroidLink 提出了一种自动化框架,通过结合静态分析与动态分析构建导航图,自动生成 Android 应用中的深度链接,实现通过 URI 直接访问应用内任意页面。该系统支持在不修改部署配置的情况下,为应用重新打包以添加深度链接,已在主流应用上验证其可行性,支持应用索引与跨应用互操作性。
The mobile application (app) has become the main entrance to access the Internet on handheld devices. Unlike the Web where each webpage has a global URL to reach directly, a specific "content page" of an app can be opened only by exploring the app with several operations from the landing page. The interoperability between apps is quite fixed and thus limits the value-added "linked data" between apps. Recently, deep link has been proposed to enable targeting and opening a specific page of an app externally with an accessible uniform resource identifier (URI). However, implementing deep link for mobile apps requires a lot of manual efforts by app developers, which can be very error-prone and time-consuming. In this paper, we propose DroidLink to automatically generating deep links for existing Android apps. We design a deep link model suitable for automatic generation. Then we explore the transition of pages and build a navigation graph based on static and dynamic analysis of Android apps. Next, we realize an updating mechanism that keeps on revisiting the target app and discover new pages, and thus generates deep links for every single page of the app. Finally, we repackage the app with deep link supports, but requires no additional deployment requirements. We generate deep links for some popular apps and demonstrate the feasibility of DroidLink.
研究动机与目标
- 为解决当前 Android 应用中深度链接生成缺乏自动化的问题,该问题目前需要大量手动工作且易出错。
- 使第三方应用和服务能够通过标准化 URI 直接访问 Android 应用内的特定内容页面。
- 构建一个可扩展的自动化系统,发现应用中所有可导航页面,并在不修改原始应用代码的前提下生成有效的深度链接。
- 通过与现有应用商店和搜索引擎兼容的方式发布和维护深度链接,支持应用索引与互操作性。
提出的方法
- 设计一种专用于 Android 应用的深度链接模型,以捕捉内容页面的结构与行为依赖关系。
- 对应用字节码进行静态分析,提取活动间的关系,构建可能的页面跳转导航图。
- 通过 MonkeyRunner 进行动态分析,模拟用户交互,以最少的跳转序列探索所有可访问页面。
- 实现增量更新机制,定期重新访问应用,以发现新添加或隐藏的页面。
- 使用轻量级修改技术对原始应用进行重新打包,集成生成的深度链接,同时保持功能完整且无需修改原始部署流程。
- 与应用商店的后端云服务集成,以维护并公开深度链接,支持索引与发现。
实验结果
研究问题
- RQ1是否可以无需手动重构,自动为 Android 应用的所有内容页面生成深度链接?
- RQ2如何自动发现并建模 Android 应用的导航结构,以支持深度链接生成?
- RQ3哪些技术能够实现通过动态探索可靠且可扩展地发现应用中所有可访问页面?
- RQ4如何以支持应用索引与跨应用互操作性的方式发布和维护深度链接?
- RQ5所提出的系统在多大程度上能为真实世界中复杂度较高的 Android 应用生成有效且可工作的深度链接?
主要发现
- DroidLink 在多个主流 Android 应用中成功为所有内容页面生成了深度链接,证明了自动化深度链接生成的可行性。
- 静态分析与动态探索的结合显著提升了页面发现的覆盖率与准确性,仅通过最少的跳转序列即可发现所有可导航页面。
- 增量更新机制能有效检测随时间新增或修改的页面,确保深度链接的长期可维护性。
- 集成深度链接后的重新打包应用功能正常,支持通过 URI 直接导航,且无需修改原始应用的部署方式。
- 该系统已集成至中国头部 Android 应用商店,验证了其在真实环境中的可部署性,并与现有应用索引流水线兼容。
- 该方法显著减少了实现深度链接所需的手动工作量,使应用开发者能够大规模采用。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。