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)

Read more

Summary

INTRODUCTION

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

MOTIVATION
ANDROID RELEVANT FEATURES
DEFINITION
DISCUSSION
EXPERIMENTS BS
LIMITATIONS AND FUTURE
Findings
VIII. CONCLUSION

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

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.