CIDER: Understanding and Detecting Callback Compatibility Issues for Android Applications

Empirical Study

Our empirical study aims to answer the following research questions:

  • RQ1: How do the evolutions of callback APIs change the API invocation protocols? Are there any frequently-evolved callback APIs?
  • RQ2: How do the evolutions of callback APIs induce callback compatibility issues? Are there major issue-inducing causes?

  • You can download the following datasets for research purposes.

    Note: The empirical dataset is only applicable for personal usage.

    RQ1 Callback API Evolutions

    To answer this research question, we need to collect a list of callback APIs and study how they evolved.

    In total, we collected 2,589 callback APIs to form the callback API list. We further refer to the code commits in AOSP to study the updates of callback APIs, and categorized them into two groups: reachability change and API behavioral modification.

    Click here to download and view the list of callback APIs.

    RQ2 Causes of Callback Compatibility Issues

    To understand how callback API evolutions can induce compatibility issues in real Android applications, we investigated 100 callback compatibility issues from 50 open-source projects on GitHub.

    We further analyzed the online discussions, issue patches, and issue git commits to understand the practices of app developers to fix issues.

    We categorized issues into two categories: CCFG structural changes and CCFG non-structural changes.

    Click here to download and view the detailed information of issues in our empirical study. Note that several issues are highlighted in our research paper.


    Huaxun Huang
    Lili Wei
    Yepang Liu
    Shing-Chi Cheung