TY - GEN
T1 - NChecker
T2 - 11th European Conference on Computer Systems, EuroSys 2016
AU - Jin, Xinxin
AU - Huang, Peng
AU - Xu, Tianyin
AU - Zhou, Yuanyuan
N1 - Funding Information:
We greatly appreciate Eurosys anonymous reviewers for their insightful feedback. We especially thank our shepherd, Dr. Oriana Riva, for her great effort to help us improve the paper. We also thank Jiaqi Zhang, Tianwei Sheng Weiwei Xiong, Yanqin Jin, Liqiong Yang, Congming Chen for their discussions and paper proof-reading. Last but not the least, we are grateful to the volunteers who participated our user study. This research is supported by NSF CNS-1017784 and NSF CNS-1321006.
Publisher Copyright:
Copyright © 2016 ACM.
Copyright:
Copyright 2016 Elsevier B.V., All rights reserved.
PY - 2016/4/18
Y1 - 2016/4/18
N2 - Most of today's mobile apps rely on the underlying networks to deliver key functions such as web browsing, file synchronization, and social networking. Compared to desktop-based networks, mobile networks are much more dynamic with frequent connectivity disruptions, network type switches, and quality changes, posing unique programming challenges for mobile app developers. As revealed in this paper, many mobile app developers fail to handle these intermittent network conditions in the mobile network programming. Consequently, network programming defects (NPDs) are pervasive in mobile apps, causing bad user experiences such as crashes, data loss, etc. Despite the development of network libraries in the hope of lifting the developers' burden, we observe that many app developers fail to use these libraries properly and still introduce NPDs. In this paper, we study the characteristics of the realworld NPDs in Android apps towards a deep understanding of their impacts, root causes, and code patterns. Driven by the study, we build NChecker, a practical tool to detect NPDs by statically analyzing Android app binaries. NChecker has been applied to hundreds of real Android apps and detected 4180 NPDs from 285 randomly-selected apps with a 94+% accuracy. Our further analysis of these defects reveals the common mistakes of app developers in working with the existing network libraries' abstractions, which provide insights for improving the usability of mobile network libraries.
AB - Most of today's mobile apps rely on the underlying networks to deliver key functions such as web browsing, file synchronization, and social networking. Compared to desktop-based networks, mobile networks are much more dynamic with frequent connectivity disruptions, network type switches, and quality changes, posing unique programming challenges for mobile app developers. As revealed in this paper, many mobile app developers fail to handle these intermittent network conditions in the mobile network programming. Consequently, network programming defects (NPDs) are pervasive in mobile apps, causing bad user experiences such as crashes, data loss, etc. Despite the development of network libraries in the hope of lifting the developers' burden, we observe that many app developers fail to use these libraries properly and still introduce NPDs. In this paper, we study the characteristics of the realworld NPDs in Android apps towards a deep understanding of their impacts, root causes, and code patterns. Driven by the study, we build NChecker, a practical tool to detect NPDs by statically analyzing Android app binaries. NChecker has been applied to hundreds of real Android apps and detected 4180 NPDs from 285 randomly-selected apps with a 94+% accuracy. Our further analysis of these defects reveals the common mistakes of app developers in working with the existing network libraries' abstractions, which provide insights for improving the usability of mobile network libraries.
UR - http://www.scopus.com/inward/record.url?scp=84971505772&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84971505772&partnerID=8YFLogxK
U2 - 10.1145/2901318.2901353
DO - 10.1145/2901318.2901353
M3 - Conference contribution
AN - SCOPUS:84971505772
T3 - Proceedings of the 11th European Conference on Computer Systems, EuroSys 2016
BT - Proceedings of the 11th European Conference on Computer Systems, EuroSys 2016
PB - Association for Computing Machinery, Inc
Y2 - 18 April 2016 through 21 April 2016
ER -