一句话:通过访谈 14 名 Android 开发者,揭示采用 linter 检测性能坏实践的好处与挑战。
移动应用在资源受限设备上运行,性能是用户体验的关键,开发者本应避免性能坏实践。已有研究识别出多种性能坏实践,并提出静态分析器(linter)来检测和修复它们;然而实践中的 Android 开发者往往被动处理性能问题,很少借助 linter。为探究这一研究与开发社区之间的鸿沟,本文开展定性研究,访谈了 14 名经验丰富的 Android 开发者,分析他们使用 linter 识别性能坏实践时的感知收益与约束。研究描述了开发者为何以及如何利用静态源码分析器提升应用性能,并揭示了在性能场景下采用静态分析所面临的重要挑战,对开发者与研究者均有启示。
With millions of applications (apps) distributed through mobile markets, engaging and retaining end-users challenge Android developers to deliver a nearly perfect user experience. As mobile apps run in resource-limited devices, performance is a critical criterion for the quality of experience. Therefore, developers are expected to pay much attention to limit performance bad practices. On the one hand, many studies already identified such performance bad practices and showed that they can heavily impact app performance. Hence, many static analysers, a.k.a. linters, have been proposed to detect and fix these bad practices. On the other hand, other studies have shown that Android developers tend to deal with performance reactively and they rarely build on linters to detect and fix performance bad practices. In this paper, we therefore perform a qualitative study to investigate this gap between research and development community. In particular, we performed interviews with 14 experienced Android developers to identify the perceived benefits and constraints of using linters to identify performance bad practices in Android apps. Our observations can have a direct impact on developers and the research community. Specifically, we describe why and how developers leverage static source code analysers to improve the performance of their apps. On top of that, we bring to light important challenges faced by developers when it comes to adopting static analysis for performance purposes.