[논문 리뷰] DroidLink: Automated Generation of Deep Links for Android Apps
DroidLink는 정적 및 동적 분석을 조합하여 네비게이션 그래프를 구축함으로써 안드로이드 앱에서 딥 링크를 자동으로 생성하는 프레임워크를 제안한다. 이는 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.
연구 동기 및 목표
- 현재 수작업이 많고 실수가 발생하기 쉬운 안드로이드 앱에서의 자동 딥 링크 생성 부족 문제를 해결하기 위해.
- 제3자 앱 및 서비스가 표준화된 URI를 통해 안드로이드 앱 내 특정 콘텐츠 페이지로 직접 접근할 수 있도록 하기 위해.
- 기존 앱 소스 코드를 수정하지 않고도 앱 내 모든 이동 가능한 페이지를 탐색하고 유효한 딥 링크를 생성할 수 있는 확장 가능한 자동화 시스템을 구축하기 위해.
- 기존 앱 스토어 및 검색 엔진과 호환되는 방식으로 딥 링크를 게시함으로써 앱 인덱싱 및 상호운용성을 지원하기 위해.
제안 방법
- 콘텐츠 페이지의 구조적 및 행동적 종속성을 포괄하는 안드로이드 앱 전용 딥 링크 모델을 설계하기 위해.
- 앱 바이트코드에 대한 정적 분 析을 수행하여 활동 간 관계를 추출하고 가능한 페이지 전환의 네비게이션 그래프를 구축하기 위해.
- 최소한의 전환으로도 모든 도달 가능한 페이지를 탐색할 수 있도록 MonkeyRunner를 통해 동적 분 析을 수행하여 사용자 상호작용을 시뮬레이션하기 위해.
- 주기적으로 앱을 재방문하여 새로 추가되거나 숨겨진 페이지를 탐지하는 증분 업데이트 메커니즘을 구현하기 위해.
- 기존 앱 코드를 수정하지 않고도 功能을 유지하면서도 경량 수정 기법을 사용해 생성된 딥 링크를 포함한 앱을 재패키징하기 위해.
- 앱 스토어의 백엔드 클라우드 서비스와 통합하여 딥 링크를 유지하고 노출함으로써 인덱싱 및 탐색을 가능하게 하기 위해.
실험 결과
연구 질문
- RQ1수작업 리팩터링 없이도 안드로이드 앱의 모든 콘텐츠 페이지에 대해 딥 링크를 자동으로 생성할 수 있는가?
- RQ2안드로이드 앱의 네비게이션 구조는 어떻게 자동으로 탐지하고 모델링할 수 있으며, 이는 딥 링크 생성을 지원하는 데 어떻게 기여하는가?
- RQ3동적 탐색을 통해 앱 내 모든 도달 가능한 페이지를 신뢰성 있고 스케일러블하게 탐지하는 데 어떤 기법이 필요한가?
- RQ4딥 링크는 어떻게 게시되고 유지되어야 하며, 이는 앱 인덱싱 및 앱 간 상호운용성을 지원하는 데 어떻게 기여하는가?
- RQ5제안된 시스템은 실제 복잡한 안드로이드 애플리케이션에 대해 얼마나 높은 수준의 유효하고 작동 가능한 딥 링크를 생성할 수 있는가?
주요 결과
- DroidLink는 여러 인기 있는 안드로이드 앱의 모든 콘텐츠 페이지에 대해 딥 링크를 성공적으로 생성하여 자동 딥 링크 생성의 타당성을 입증했다.
- 정적 분석과 동적 탐색의 조합이 최소한의 전환 시퀀스로 모든 이동 가능한 페이지를 탐지함으로써 커버리지와 정확도를 향상시켰다.
- 증분 업데이트 메커니즘이 시간이 지남에 따라 새로운 또는 수정된 페이지를 효과적으로 탐지하여 딥 링크의 장기적 유지보수성을 확보했다.
- 딥 링크가 포함된 재패키징된 앱은 원본 앱 배포 변경 없이도 정상적으로 기능하며 URI를 통한 직접 네비게이션을 지원했다.
- 시스템은 중국 내 상위 앱 스토어에 통합되어 실제 환경에서의 배포 가능성과 기존 앱 인덱싱 파이프라인과의 호환성을 입증했다.
- 이 방법은 딥 링크를 구현하기 위해 필요한 수작업을 크게 줄여주어 앱 개발자들이 대규모로 도입할 수 있도록 했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.