An Efficient Android App Debloating Approach Based on Multi-layer Dependence Graph
Android apps are getting bloated by continuously integrating possibly unnecessary functional modules. This trend of software bloat negatively impacts the performance of static analysis tools. As a result, analysis reports are more likely to contain false positives and experience analysis timeouts. Consequently, developers are forced to manually inspect and troubleshoot errors, as well as restart the analysis process, making analyzers more time-consuming and less user-friendly. However, existing approaches for Android app debloating almost only consider how to remove redundant code elements or functional features from the perspective of users, thus they are unsuitable for the analyzer-oriented app debloating task in most cases.
To fill this gap, we propose an Android app debloating approach that employs a novel Multi-layer Dependence Graph (MDG) structure to represent the app under analysis. We hierarchically construct the MDG by sequentially analyzing and capturing dependence at the class, method, and statement levels. Throughout this process, we dynamically identify hotspot classes and narrow down the scope for further dependence extraction, thereby alleviating the challenge of a too complicated graph structure caused by the excessive app size. We implement our approach as the tool FlowSlicer, a novel MDG-based static Android app debloater. We evaluate FlowSlicer by utilizing it to debloat the input app first and then observing the performance difference of two analysis processes which accept the original and the debloated app as input respectively. The evaluation is performed on both the hand-crafted and the real-world apps in our benchmark. Our results show that FlowSlicer is not only capable of effectively debloating Android apps but also enhancing the performance of static analyzers. For instance, cooperating with FlowSlicer, the analyzer FlowDroid could detect 212 more leaks in real-world apps in our benchmark.
Thu 11 SepDisplayed time zone: Auckland, Wellington change
13:30 - 15:00 | Session 10 - Code Quality 2Research Papers Track / Industry Track / Registered Reports at Case Room 2 260-057 Chair(s): Judith Perera Fuchs University of Canterbury, New Zealand | ||
13:30 15m | ADPP: Automated Data-centric Program Partitioning Research Papers Track Xuming Jin College of Computer Science and Technology, Nanjing University of Aeronautics and Astronautics, Hao Han College of Computer Science and Technology, Nanjing University of Aeronautics and Astronautics | ||
13:45 15m | Roseau: Fast, Accurate, Source-based Breaking Change Analysis in Java Research Papers Track Corentin Latappy Univ. Bordeaux, CNRS, Bordeaux INP, LaBRI, UMR 5800, Promyze, Thomas Degueule CNRS, Jean-Rémy Falleri Univ. Bordeaux, Bordeaux INP, CNRS, LaBRI, UMR5800, F-33400 Talence, France, Romain Robbes CNRS, LaBRI, University of Bordeaux, Lina Ochoa Eindhoven University of Technology Pre-print | ||
14:00 15m | An Efficient Android App Debloating Approach Based on Multi-layer Dependence Graph Research Papers Track Hengqin Yang Institute of Software, Chinese Academy of Sciences, Jiwei Yan Institute of Software at Chinese Academy of Sciences, Jun Yan Institute of Software, Chinese Academy of Sciences, Jian Zhang Institute of Software at Chinese Academy of Sciences; University of Chinese Academy of Sciences, Bin Liang Renmin University of China, China | ||
14:15 15m | Combining Insights from Multiple Tools to Manage Technical Debt in Industrial C# Projects Industry Track Simeon Tverdal SINTEF Digital, Phu Nguyen SINTEF, Arda Goknil SINTEF Digital, Antonio Martini University of Oslo, Norway, Merve Astekin SINTEF, Mili Orucevic Visma, Maren Maritsdatter Kruke Visma software international AS, Håvard Stranden AKVA group | ||
14:30 15m | Code Readability in the Age of Large Language Models: An Industrial Case Study from Atlassian Industry Track Wannita Takerngsaksiri Monash University, Kla Tantithamthavorn Monash University and Atlassian, Michael Fu The University of Melbourne, Jirat Pasuksmit Atlassian, Kun Chen Atlassian, Ming Wu Atlassian | ||
14:45 10m | How Do Code Smells Affect Skill Growth in Scratch Novice Programmers? Registered Reports Ricardo Hidalgo Aragón Universidad Rey Juan Carlos, Jesus M. Gonzalez-Barahona Universidad Rey Juan Carlos, Gregorio Robles Universidad Rey Juan Carlos Pre-print | ||