Journal Article

A Systematical Study on Application Performance Management Libraries for Apps.

Yutian Tang, Haoyu Wang, Xian Zhan, Xiapu Luo, Yajin Zhou, Hao Zhou, Qiben Yan, Yulei Sui, Jacky W. Keung
IEEE Trans. Software Eng. 2022 10.1109/TSE.2021.3077654

Abstract

Being able to automatically detect the performance issues in apps can significantly improve apps' quality as well as having a positive influence on user satisfaction. Application Performance Management (APM) libraries are used to locate the apps' performance bottleneck, monitor their behaviors at runtime, and identify potential security risks. Although app developers have been exploiting application performance management (APM) tools to capture these potential performance issues, most of them do not fully understand the internals of these APM tools and the effect on their apps. To fill this gap, in this paper, we conduct the first systematic study on APMs for apps by scrutinizing 25 widely-used APMs for Android apps and develop a framework named APMHunter for exploring the usage of APMs in Android apps. Using APMHunter, we conduct a large-scale empirical study on 500,000 Android apps to explore the usage patterns of APMs and discover the potential misuses of APMs. We obtain two major findings: 1) some APMs still employ deprecated permissions and approaches, which makes APMs fail to perform as expected; 2) inappropriate use of APMs can cause privacy leaks. Thus, our study suggests that both APM vendors and developers should design and use APMs scrupulously. Index Terms-Empirical study, android, application performance management Ç 1 INTRODUCTION NDROID is dominating the market for smartphone operating systems today. There are around 3 million apps in the Google Play store according to a report from AppBrain [1]. With high smartphone penetration, mobile apps have become indispensable to billions of users. The runtime performance of an app can significantly affect its user experience. Thus, more and more Android developers tend to employ application performance management (APM) tools to cope with performance bottlenecks [2], [3]. APMS can be used in desktop and mobile applications, such as cloud applications, web applications, and mobile apps. APMs assist developers in locating the potential performance limitations in applications [4], [5]. However, developers may not have profound understandings of the A        Yutian Tang is with ShanghaiTech Univer

Keywords