Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3636534.3649357acmconferencesArticle/Chapter ViewAbstractPublication PagesmobicomConference Proceedingsconference-collections
research-article
Open access

Rethinking Process Management for Interactive Mobile Systems

Published: 29 May 2024 Publication History

Abstract

Modern mobile systems are featured by their increasing interactivity with users, which however is accompanied by a severe side effect---users constantly suffer from slow UI responsiveness (SUR). To date, the community have limited understandings of this issue for the challenges of comprehensively measuring SUR events on massive mobile devices. As a major Android phone vendor, in this paper we close the knowledge gap by conducting the first large-scale, long-term measurement study on SUR with 47M devices. Our study identifies the critical factors that lead to SUR from the perspectives of device, system, application, and app market. Most importantly, we note that the largest root cause lies in the wide existence of "hogging" apps, which persistently occupy an unreasonable amount of system resources by leveraging the optimistic design of Android process management. We have built on the insights to remodel Android process states by fully considering their time-sensitive transitions and the actual behaviors of processes, with remarkable real-world impact---the occurrences of SUR are reduced by 60%, together with 10.7% saving of battery consumption.

References

[1]
AndroidSoft. 2023. How To Keep Apps Running In The Background IPhone? https://www.androidphonesoft.com/blog/how-to-keep-apps-running-in-the-background-iphone/.
[2]
Anmol Sehgal. 2020. Android-Handlers, Loopers, MessageQueue Basics. https://anmolsehgal.medium.com/android-handlers-loopers-messagequeue-basics-d56a750df2cc.
[3]
apple.com. 2023. App Store Review Guidelines. https://developer.apple.com/app-store/review/guidelines/.
[4]
apple.com. 2023. Optimizing ProMotion refresh rates. https://developer.apple.com/documentation/quartzcore/optimizing_promotion_refresh_rates_for_iphone_13_pro_and_ipad_pro.
[5]
Baiqin Wang. 2021. Binder Introduction. https://medium.com/swlh/binder-introduction-54fb90feeecb.
[6]
Byung-Gon Chun, Sunghwan Ihm, Petros Maniatis, Mayur Naik, and Ashwin Patti. 2011. Clonecloud: Elastic Execution Between Mobile Device and Cloud. In Proc. of EuroSys.
[7]
csdn.net. 2023. Keeping Apps Alive in iOS. https://blog.csdn.net/WangQingLei0307/article/details/112002904.
[8]
Pradip Kumar Das, Sayantan Shome, and Abhishek Kumar Sarkar. 2016. Apps: Accelerating Performance and Power Saving in Smartphones Using Code Offload. In Proc. of IACC.
[9]
eBPF.io. 2023. eBPF Documentation. https://ebpf.io/what-is-ebpf/.
[10]
Eric Silverberg. 2021. Android Activity Lifecycle Considered Harmful. https://proandroiddev.com/android-activity-lifecycle-considered-harmful-98a5b00d287.
[11]
Liangyi Gong, Zhenhua Li, Hongyi Wang, Hao Lin, Xiaobo Ma, and Yunhao Liu. 2022. Overlay-Based Android Malware Detection at Market Scales: Systematically Adapting to the New Technological Landscape. Transactions on Mobile Computing 21 (2022).
[12]
Google.com. 2020. High Refresh Rate Rendering on Android. https://android-developers.googleblog.com/2020/04/high-refresh-rate-rendering-on-android.html.
[13]
Google.com. 2022. Android 12 Features and Changes List. https://developer.android.com/about/versions/12/summary.
[14]
Google.com. 2022. Google I/O 2022: What's new in Jetpack. https://android-developers.googleblog.com/2022/05/whats-new-in-jetpack.html.
[15]
Google.com. 2022. Multiple Refresh Rate. https://source.android.com/docs/core/graphics/multiple-refresh-rate.
[16]
Google.com. 2022. WebView. https://developer.android.com/reference/android/webkit/WebView.
[17]
Google.com. 2023. Android Debug Bridge (ADB). https://developer.android.com/tools/adb.
[18]
Google.com. 2023. Android Low Memory Killer Daemon. https://android.googlesource.com/platform/system/memory/lmkd/+/refs/heads/master/README.md.
[19]
Google.com. 2023. Android Processes and App Lifecycle. https://developer.android.com/guide/components/activities/process-lifecycle.
[20]
Google.com. 2023. Application fundamentals. https://developer.android.com/guide/components/fundamentals.
[21]
Google.com. 2023. Looper of Android. https://developer.android.com/reference/android/os/Looper.
[22]
Google.com. 2023. Overview of system tracing. https://source.android.com/docs/core/tests/debug/read-bug-reports.
[23]
Google.com. 2023. Performance of Rendering. https://developer.android.com/topic/performance/rendering.
[24]
Google.com. 2023. Reading Bug Reports. https://source.android.com/docs/core/tests/debug/read-bug-reports.
[25]
Google.com. 2023. SimplePerf on Android. https://developer.android.com/ndk/guides/simpleperf.
[26]
Google.com. 2023. The Slow Rendering of Android. https://developer.android.com/topic/performance/vitals/render.
[27]
Google.com. 2023. VSYNC. https://source.android.com/docs/core/graphics/implement-vsync.
[28]
Mark S Gordon, D Anoushe Jamshidi, Scott Mahlke, Z Morley Mao, and Xu Chen. 2012. COMET: Code Offload by Migrating Execution Transparently. In Proc. of OSDI.
[29]
Sangwook Shane Hahn, Sungjin Lee, Inhyuk Yee, Donguk Ryu, and Jihong Kim. 2018. FastTrack: Foreground App-Aware I/O Management for Improving User Experience of Android Smartphones. In Proc. of ATC.
[30]
https://perfetto.dev/. 2023. Quickstart: Record traces on Android. https://perfetto.dev/docs/quickstart/android-tracing.
[31]
Paul Jaccard. 1912. The Distribution of the Flora in the Alpine Zone. New phytologist 11, 2 (1912), 37--50.
[32]
Sooman Jeong, Kisung Lee, Seongjin Lee, Seoungbum Son, and Youjip Won. 2013. I/O Stack Optimization for Smartphones. In Proc. of ATC.
[33]
Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal. 2012. Cuckoo: A Computation Offloading Framework for Smartphones. In Proc. of MobiCASE.
[34]
kernel.org. 2023. eBPF maps. https://www.kernel.org/doc/html/v5.18/bpf/maps.html.
[35]
Ron Kohavi, Diane Tang, and Ya Xu. 2020. Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing. Cambridge University Press.
[36]
Sokol Kosta, Andrius Aucinas, Pan Hui, Richard Mortier, and Xinwen Zhang. 2012. Thinkair: Dynamic Resource Allocation and Parallel Execution in the Cloud for Mobile Code Offloading. In Proc. of Infocom.
[37]
Mingliang Li, Hao Lin, Cai Liu, Zhenhua Li, Feng Qian, Yunhao Liu, Nian Sun, and Tianyin Xu. 2020. Experience: Aging or Glitching? Why Does Android Stop Responding and What Can We Do About It?. In Proc. of MobiCom.
[38]
Hao Lin, Cai Liu, Zhenhua Li, Feng Qian, Mingliang Li, Ping Xiong, and Yunhao Liu. 2021. Aging or Glitching? What Leads to Poor Android Responsiveness and What Can We Do About It? IEEE Transactions on Mobile Computing 32 (2021).
[39]
Yu Lin, Semih Okur, and Danny Dig. 2015. Study and Refactoring of Android Asynchronous Programming (T). In Proc. of ASE.
[40]
Yu Lin, Cosmin Radoi, and Danny Dig. 2014. Retrofitting Concurrency for Android Applications Through Refactoring. In Proc. of FSE.
[41]
Yu-Ying Liu, Alexander Moreno, Shuang Li, Fuxin Li, Le Song, and James M Rehg. 2017. Learning Continuous-Time Hidden Markov Models for Event Data. Mobile Health: Sensors, Analytic Methods, and Applications (2017), 361--387.
[42]
Yu Luo, Kirk Rodrigues, Cuiqin Li, Feng Zhang, Lijin Jiang, Bing Xia, David Lion, and Ding Yuan. 2022. Hubble: Performance Debugging with In-Production, Just-In-Time Method Tracing on Android. In Proc. of OSDI.
[43]
Todd K Moon. 1996. The Expectation-Maximization Algorithm. IEEE Signal Processing Magazine 13, 6 (1996), 47--60.
[44]
David T Nguyen. 2014. Improving Smartphone Responsiveness Through I/O Optimizations. In Proc. of UbiComp.
[45]
Adrian Nistor, Linhai Song, Darko Marinov, and Shan Lu. 2013. Toddler: Detecting Performance Problems via Similar Memory-Access Patterns. In Proc. of ICSE.
[46]
Thanaporn Ongkosit and Shingo Takada. 2014. Responsiveness Analysis Tool for Android Application. In Proc. of DeMobile.
[47]
Perfetto.dev. 2023. ATrace: Android System and App Trace Events. https://perfetto.dev/docs/data-sources/atrace.
[48]
Quentin Monnet. 2020. eBPF assembly with LLVM. https://qmonnet.github.io/whirl-offload/2020/04/12/llvm-ebpf-asm/.
[49]
Lawrence Rabiner and Biinghwang Juang. 1986. An introduction to Hidden Markov Models. ASSP Magazine 3, 1 (1986), 4--16.
[50]
Rafael J. Wysocki. 2007. Freezing of Tasks. https://www.kernel.org/doc/html/next/power/freezing-of-tasks.html.
[51]
Siegfried Rasthofer, Steven Arzt, Stefan Triller, and Michael Pradel. 2017. Making Malory Behave Maliciously: Targeted Fuzzing of Android Execution Environments. In Proc. of ICSE.
[52]
Lenin Ravindranath, Jitendra Padhye, Sharad Agarwal, Ratul Mahajan, Ian Obermiller, and Shahin Shayandeh. 2012. AppInsight: Mobile App Performance Monitoring in The Wild. In Proc. of OSDI.
[53]
reddit.com. 2023. Is It Illegal to Continuosly Play Silent Audio File in the Background? https://www.reddit.com/r/swift/comments/10o11ap/is_it_illegal_to_continuosly_play_silent_audio/.
[54]
Scribbr. 2023. Guide and Examples of Pearson Correlation Coefficient. https://www.scribbr.com/statistics/pearson-correlation-coefficient/.
[55]
Surachai Thongkaew, Tsuyoshi Isshiki, Dongju Li, and Hiroaki Kunieda. 2015. Dalvik Bytecode Acceleration Using Fetch/Decode Hardware Extension. Journal of Information Processing 23 (2015).
[56]
Uber. 2018. Introducing Nanoscope: An Extremely Accurate Method Tracing Tool for Android. https://www.uber.com/en-JP/blog/nanoscope/.
[57]
Cheng Wang, Youfeng Wu, and Marcelo Cintra. 2013. Acceldroid: Co-designed Acceleration of Android Bytecode. In Proc. of CGO.
[58]
Yan Wang and Atanas Rountev. 2016. Profiling The Responsiveness of Android Applications via Automated Resource Amplification. In Proc. of MOBILESoft.
[59]
wetest.net. 2023. PerfDog: Full Platform Performance Test and Analysis Tool. https://perfdog.wetest.net/.
[60]
Wikipedia. 2023. Pearson correlation coefficient. https://en.wikipedia.org/wiki/Pearson_correlation_coefficient.
[61]
Dacong Yan, Shengqian Yang, and Atanas Rountev. 2013. Systematic Testing for Resource Leaks in Android Applications. In Proc. of ISSRE.
[62]
Yuxuan Yan, Zhenhua Li, Qi Alfred Chen, Christo Wilson, Tianyin Xu, Ennan Zhai, Yong Li, and Yunhao Liu. 2019. Understanding and Detecting Overlay-Based Android Malware at Market Scales. In Proc. of MobiSys.
[63]
Stephen Yang, Seo Jin Park, and John Ousterhout. 2018. NanoLog: A Nanosecond Scale Logging System. In Proc. of ATC.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ACM MobiCom '24: Proceedings of the 30th Annual International Conference on Mobile Computing and Networking
December 2024
2476 pages
ISBN:9798400704895
DOI:10.1145/3636534
This work is licensed under a Creative Commons Attribution International 4.0 License.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 29 May 2024

Check for updates

Author Tags

  1. interactive mobile systems
  2. slow UI responsiveness
  3. android resource management
  4. app behaviors

Qualifiers

  • Research-article

Funding Sources

Conference

ACM MobiCom '24
Sponsor:

Acceptance Rates

Overall Acceptance Rate 440 of 2,972 submissions, 15%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 917
    Total Downloads
  • Downloads (Last 12 months)917
  • Downloads (Last 6 weeks)164
Reflects downloads up to 03 Mar 2025

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media