Understanding and Detecting Callback Compatibility Issues for Android Applications
The control flows of Android apps are largely driven by the protocols that govern how callback APIs are invoked in response to various events. When these callback APIs evolve along with the Android framework, the changes in their invocation protocols can induce unexpected control flows to existing A...
Gespeichert in:
| Veröffentlicht in: | 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE) S. 532 - 542 |
|---|---|
| Hauptverfasser: | , , , |
| Format: | Tagungsbericht |
| Sprache: | Englisch |
| Veröffentlicht: |
ACM
01.09.2018
|
| Schlagworte: | |
| ISSN: | 2643-1572 |
| Online-Zugang: | Volltext |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Abstract | The control flows of Android apps are largely driven by the protocols that govern how callback APIs are invoked in response to various events. When these callback APIs evolve along with the Android framework, the changes in their invocation protocols can induce unexpected control flows to existing Android apps, causing various compatibility issues. We refer to these issues as callback compatibility issues. While Android framework updates have received due attention, little is known about their impacts on app control flows and the callback compatibility issues thus induced. To bridge the gap, we examined Android documentations and conducted an empirical study on 100 real-world callback compatibility issues to investigate how these issues were induced by callback API evolutions. Based on our empirical findings, we propose a graph-based model to capture the control flow inconsistencies caused by API evolutions and devise a static analysis technique, Cider, to detect callback compatibility issues. Our evaluation of Cider on 20 popular open-source Android apps shows that Cider is effective. It detected 13 new callback compatibility issues in these apps, among which 12 issues were confirmed and 9 issues were fixed. |
|---|---|
| AbstractList | The control flows of Android apps are largely driven by the protocols that govern how callback APIs are invoked in response to various events. When these callback APIs evolve along with the Android framework, the changes in their invocation protocols can induce unexpected control flows to existing Android apps, causing various compatibility issues. We refer to these issues as callback compatibility issues. While Android framework updates have received due attention, little is known about their impacts on app control flows and the callback compatibility issues thus induced. To bridge the gap, we examined Android documentations and conducted an empirical study on 100 real-world callback compatibility issues to investigate how these issues were induced by callback API evolutions. Based on our empirical findings, we propose a graph-based model to capture the control flow inconsistencies caused by API evolutions and devise a static analysis technique, Cider, to detect callback compatibility issues. Our evaluation of Cider on 20 popular open-source Android apps shows that Cider is effective. It detected 13 new callback compatibility issues in these apps, among which 12 issues were confirmed and 9 issues were fixed. |
| Author | Wei, Lili Liu, Yepang Cheung, Shing-Chi Huang, Huaxun |
| Author_xml | – sequence: 1 givenname: Huaxun surname: Huang fullname: Huang, Huaxun organization: The Hong Kong University of Science and Technology,Hong Kong, China – sequence: 2 givenname: Lili surname: Wei fullname: Wei, Lili organization: The Hong Kong University of Science and Technology,Hong Kong, China – sequence: 3 givenname: Yepang surname: Liu fullname: Liu, Yepang organization: Southern University of Science and Technology,Shenzhen,China – sequence: 4 givenname: Shing-Chi surname: Cheung fullname: Cheung, Shing-Chi organization: The Hong Kong University of Science and Technology,Hong Kong, China |
| BookMark | eNotj81KAzEYRaMo2NauXbjJC0xN8k3-lmW0WigIYsFd-SbJSHSaGSbjom_v-LM6nMvlwp2Ti9SlQMgNZyvOS3kHAgwv9eqXhp-R-ZQykBb02zmZCVVCwaUWV2SZ8wdjTBjNpJAz8rJPPgx5xORjeqcT6H0Ygxt_rMK2rdF90qo79jjGOrZxPNFtzl8h06Yb6Dr5oYuervu-jW6qdClfk8sG2xyW_1yQ_ebhtXoqds-P22q9K1BoORaGWWOQ194rrZxGzrlAEMaAUJOrGpzF0ocApUQbsEEpAZVtrHasdhYW5PZvN4YQDv0QjzicDnZ6x5SCb5bCUYw |
| ContentType | Conference Proceeding |
| DBID | 6IE 6IL CBEJK RIE RIL |
| DOI | 10.1145/3238147.3238181 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Proceedings Order Plan All Online (POP All Online) 1998-present by volume IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP All) 1998-Present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISBN | 145035937X 9781450359375 |
| EISSN | 2643-1572 |
| EndPage | 542 |
| ExternalDocumentID | 9000066 |
| Genre | orig-research |
| GroupedDBID | 29I 6IE 6IF 6IH 6IK 6IL 6IM 6IN 6J9 AAJGR AAWTH ABLEC ACREN ADYOE ADZIZ AFYQB ALMA_UNASSIGNED_HOLDINGS AMTXH APO BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK CHZPO IEGSK IPLJI M43 OCL RIE RIL |
| ID | FETCH-LOGICAL-a275t-80988a1bdd676c7a1112a32883266c76b3c9a4dee345a9eafa553a69f97c0bc93 |
| IEDL.DBID | RIE |
| ISICitedReferencesCount | 47 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000553784500051&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| IngestDate | Wed Aug 13 06:22:43 EDT 2025 |
| IsPeerReviewed | false |
| IsScholarly | true |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-a275t-80988a1bdd676c7a1112a32883266c76b3c9a4dee345a9eafa553a69f97c0bc93 |
| PageCount | 11 |
| ParticipantIDs | ieee_primary_9000066 |
| PublicationCentury | 2000 |
| PublicationDate | 2018-Sept. |
| PublicationDateYYYYMMDD | 2018-09-01 |
| PublicationDate_xml | – month: 09 year: 2018 text: 2018-Sept. |
| PublicationDecade | 2010 |
| PublicationTitle | 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE) |
| PublicationTitleAbbrev | ASE |
| PublicationYear | 2018 |
| Publisher | ACM |
| Publisher_xml | – name: ACM |
| SSID | ssj0002870525 ssj0051577 |
| Score | 2.3512354 |
| Snippet | The control flows of Android apps are largely driven by the protocols that govern how callback APIs are invoked in response to various events. When these... |
| SourceID | ieee |
| SourceType | Publisher |
| StartPage | 532 |
| SubjectTerms | Analytical models Android API callback compatibility Documentation empirical study Protocols Runtime Static analysis |
| Title | Understanding and Detecting Callback Compatibility Issues for Android Applications |
| URI | https://ieeexplore.ieee.org/document/9000066 |
| WOSCitedRecordID | wos000553784500051&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LTwIxEJ4A8eAJFYzv9ODRhV3a7eNoUOKJECMJNzJ9bEIkYHAx8d_bdlfg4MVTH6emTeebdma-D-BeSdRGMZME7vSE-QdHgkUmk5wKQykynjoZxSbEeCxnMzVpwMOuFsY5F5PPXC90Yyzfrs02fJX1VbSuvAlNIXhVq7X7TwkBu3zPs-dhWoiayidjeZ8GaGKiF9tAYn2gpRKhZNT-3yJOoLuvySOTHdqcQsOtzqD9K8pA6jvagdfpYbkK8Q15ciFSEEZDXC41mncSzUBZZcZ-k0qCj3j_lYQEx_XCkseDwHYXpqPnt-FLUgsnJDgQeelRR0mJmbaWC24Eens2QBp0hT0cG8E1NQqZdY6yHJXDAvOcIleFEib1R0fPobVar9wFEF5IJ1w6sNL6p5guVKppxrTyuK9oYegldMIWzT8qbox5vTtXf09fw7F3OGSVo3UDrXKzdbdwZL7KxefmLh7oD01EoHY |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LTwIxEJ4gmugJFYxve_Dowu72fTQowYiEGEi4kW63mxAIGFxM_Pe23RU4ePHUx6lp0_mmnZnvA7iXQiVaEh047vSA2AdHoLJIBBRzjbEiLDTCi03wfl-Mx3JQgYdNLYwxxiefmabr-lh-utRr91XWkt66sj3Yp4TEYVGttflRcSE7umXas0DNeUnmExHawg6cCG_61tFY76ipeDDp1P63jGNobKvy0GCDNydQMYtTqP3KMqDyltbhfbRbsIJsg56MixW4UVvN54nSM-QNQV7kxn6jQoQPWQ8WuRTH5TRFjzuh7QaMOs_DdjcopRMCFXOaW9yRQqgoSVPGmebKWrRYYacsbAFZc5ZgLRVJjcGEKmlUpijFislMch3aw8NnUF0sF-YcEMuE4SaMU5Hax1iSyTDBEUmkRX6JM40voO62aPJRsGNMyt25_Hv6Dg67w7fepPfSf72CI-t-iCJj6xqq-WptbuBAf-XTz9WtP9wf1OOjvQ |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=proceeding&rft.title=2018+33rd+IEEE%2FACM+International+Conference+on+Automated+Software+Engineering+%28ASE%29&rft.atitle=Understanding+and+Detecting+Callback+Compatibility+Issues+for+Android+Applications&rft.au=Huang%2C+Huaxun&rft.au=Wei%2C+Lili&rft.au=Liu%2C+Yepang&rft.au=Cheung%2C+Shing-Chi&rft.date=2018-09-01&rft.pub=ACM&rft.eissn=2643-1572&rft.spage=532&rft.epage=542&rft_id=info:doi/10.1145%2F3238147.3238181&rft.externalDocID=9000066 |