Abstract
In Android, activity instances at an application’s run time are organized in a back stack, and users always interact with the top instance of the stack. Users’ interactions may trigger activity launchings, which change the state of the back stack. Therefore, back-stack transition analysis is closely related to activity transition analysis, which is fundamental for understanding Android behaviors. Existing activity transition analyses are not sensitive to back-stack-related configurations, which suppose all activities are launched with the default configuration, and thus model infeasible transitions and incorrect back-stack states when there are non-default configurations in an application. In this paper, we present a tool, BSSimulator, to perform the static back-stack transition analysis. The proposed analysis contains two types of graph constructions: the activity launching graph that represents activity transitions with extracted back-stack-related configurations, and the back-stack transition graph that simulates the changes of the back stack triggered by activity launchings and back events. The study conducted on 968 open source apps from F-droid indicates that non-default configurations are in common use. The evaluations on 35 commonly used apps validate the high-precision of the generated activity launching graphs, and indicate that the proposed back-stack transition analysis outperforms the state-of-the-art one by 29.8% in avoiding 3-length infeasible paths.
Highlights
Android is one of the most popular operating systems for mobile devices
Activity instances created during the software run time are organized in a back stack [9], so that users can return from the current instance to the previous one correctly
To facilitate launch-type-sensitive back-stack transition analysis, we propose activity launching graph (ALG) and back-stack transition graph (BSTG)
Summary
Android is one of the most popular operating systems for mobile devices. Android applications (apps) are becoming more complex in capacity, structure, behavior, and functionality [1], [2], which drives it more problematic for researchers to understand apps’ behaviors [3]–[5]. Considering the task to generate GUI models, an infeasible back-stack transition triggered by a back event from an incorrect back-stack state navigates an incorrect target activity, which corresponds to an infeasible edge in the GUI model. Specifying the target activities and part of the back-stack-related configurations for a launching requires a precise points-to analysis on intent object, which should handle much intentrelated APIs provided by the Android platform. BSSimulator, to perform launch-typesensitive back-stack transition analysis, which constructs ALGs and launch-type-sensitive BSTGs automatically. We introduce the launch-type-sensitive back-stack transition analysis, and propose ALG and BSTG for precise back-stack simulations. The evaluations on 35 commonly used apps validate the high-precision of the generated ALGs, and indicates that the launch-type-sensitive back-stack transition analysis outperforms the insensitive one by 29.8% in avoiding 3-length infeasible paths
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.