Empirical Software Engineering

, Volume 22, Issue 1, pp 505–546 | Cite as

An empirical study of emergency updates for top android mobile apps

Article

Abstract

The mobile app market continues to grow at a tremendous rate. The market provides a convenient and efficient distribution mechanism for updating apps. App developers continuously leverage such mechanism to update their apps at a rapid pace. The mechanism is ideal for publishing emergency updates (i.e., updates that are published soon after the previous update). In this paper, we study such emergency updates in the Google Play Store. Examining more than 44,000 updates of over 10,000 mobile apps in the Google Play Store, we identify 1,000 emergency updates. By studying the characteristics of such emergency updates, we find that the emergency updates often have a long lifetime (i.e., they are rarely followed by another emergency update). Updates preceding emergency updates often receive a higher ratio of negative reviews than the emergency updates. However, the release notes of emergency updates rarely indicate the rationale for such updates. Hence, we manually investigate the binary changes of several of these emergency updates. We find eight patterns of emergency updates. We categorize these eight patterns along two categories “Updates due to deployment issues” and “Updates due to source code changes”. We find that these identified patterns of emergency updates are often associated with simple mistakes, such as using a wrong resource folder (e.g., images or sounds) for an app. We manually examine each pattern and document its causes and impact on the user experience. App developers should carefully avoid these patterns in order to improve the user experience.

Keywords

Android mobile apps Emergency updates Patterns SDK version Permissions Empirical study Software engineering 

References

  1. ABI Research Android Will Account for 58% of Smartphone App Downloads in 2013, with iOS Commanding a Market Share of 75% in Tablet Apps. https://www.abiresearch.com/press/android-will-account-for-58-of-smartphone-app-down/ (Last accessed March 2016)
  2. Akdeniz (2013) Akdeniz: Google play crawler. https://github.com/Akdeniz/google-play-crawler
  3. Alvarez H (2016) A guide to color, ux, and conversion rates. http://www.usertesting.com/blog/2014/12/02/color-ux-conversion-rates/. Accessed March 2016
  4. Android Studio (2016) Managing projects overview - android developers. https://developer.android.com/tools/projects/index.html. Accessed March 2016
  5. Apktool (2016) Apktool - a tool for reverse engineering android apk files. http://ibotpeaches.github.io/Apktool/. Accessed March 2016
  6. Apple Developer (2016) iOS human interface guidelines: Color and typography. https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/ColorImagesText.html. Accessed March 2016
  7. Arakelyan A (2016) Which color is right for your mobile app icon. https://www.iconsmind.com/color-right-mobile-app-icon/. Accessed March 2016
  8. Bacchelli A, Bird C (2013) Expectations, outcomes, and challenges of modern code review. In: 35th international conference on software engineering, ICSE ’13. http://dl.acm.org/citation.cfm?id=2486882, San Francisco, pp 712–721
  9. Banerjee A, Chong LK, Chattopadhyay S, Roychoudhury A (2014) Detecting energy bugs and hotspots in mobile apps. In: Proceedings of the 22Nd ACM SIGSOFT international symposium on foundations of software engineering, FSE 2014. ACM, New York, pp 588–598Google Scholar
  10. Bavota G, Vásquez ML, Bernal-Cárdenas CE, Penta MD, Oliveto R, Poshyvanyk D (2015) The impact of API change- and fault-proneness on the user ratings of android apps. IEEE Trans Software Eng 41(4):384–407CrossRefGoogle Scholar
  11. CFR (2016) Cfr - another java decompiler. http://www.benf.org/other/cfr/. Accessed March 2016
  12. Colblindor (2016) Coblis color blindness simulator. http://www.color-blindness.com/coblis-color-blindness-simulator/. Accessed March 2016
  13. Color Oracle (2016) Color oracle, design for the color impaired. http://colororacle.org. Accessed March 2016
  14. Dex2jar (2016) Dex2jar download - sourceforge.net. http://sourceforge.net/projects/dex2jar/. Accessed March 2016
  15. Distimo (2013) Google play store, united states, top overall, free, week 35 2013. http://www.distimo.com/leaderboards/google-play-store/united-states/top-overall/free
  16. F-Droid (2016) F-droid. http://f-droid.org/. Accessed March 2016
  17. Felt AP, Chin E, Hanna S, Song D, Wagner D (2011) Android permissions demystified. In: Proceedings of the 18th ACM conference on computer and communications security, CCS ’11. ACM, New York, pp 627–638Google Scholar
  18. FindBugs (2016) Findbugs TM - find bugs in java programs. http://findbugs.sourceforge.net. Accessed March 2016
  19. Gehan EA (1965) A generalized wilcoxon test for comparing arbitrarily singly-censored samples. Biometrika 52(1–2):203–223MathSciNetCrossRefMATHGoogle Scholar
  20. Google Android (2016a) Uses-sdk android developers. http://developer.android.com/guide/topics/manifest/uses-sdk-element.html. Accessed March 2016
  21. Google Android (2016b) Uses-feature, android developers. http://developer.android.com/guide/topics/manifest/uses-feature-element.html. Accessed March 2016
  22. Google Android (2016c) Permission, android developers. http://developer.android.com/guide/topics/manifest/permission-element.htmlhttp://developer.android.com/guide/topics/manifest/permission- http://developer.android.com/guide/topics/manifest/permission-element.html. Accessed March 2016
  23. Google Support (2016) Update your apps - developer console help. https://support.google.com/googleplay/android-developer/answer/113476?hl=en. Accessed March 2016
  24. Gorla A, Tavecchia I, Gross F, Zeller A (2014) Checking app behavior against app descriptions. In: Proceedings of the 36th International Conference on Software Engineering, ICSE 2014. ACM, New York, pp 1025–1035Google Scholar
  25. Guana V, Rocha F, Hindle A, Stroulia E (2012) Do the stars align? Multidimensional analysis of android’s layered architecture. In: 9th IEEE working conference of mining software repositories, MSR 2012, Zurich, pp 124–127Google Scholar
  26. Gui J, Mcilroy S, Nagappan M, Halfond WGJ (2015) Truth in advertising: the hidden cost of mobile ads for software developers. In: 37th International Conference on Software Engineering, ICSE ’15, FlorenceGoogle Scholar
  27. Guzman E, Maalej W (2014) How do users like this feature? A fine grained sentiment analysis of app reviews. In: IEEE 22nd international requirements engineering conference, RE 2014, Karlskrona, pp 153– 162Google Scholar
  28. Han D, Zhang C, Fan X, Hindle A, Wong K, Stroulia E (2012) Understanding android fragmentation with topic analysis of vendor-specific bugs. In: 19th working conference on reverse engineering, WCRE 2012, Kingston, pp 83–92Google Scholar
  29. Harman M, Jia Y, Zhang Y (2012) App store mining and analysis: MSR for app stores. In: 9th IEEE working conference of mining software repositories, MSR 2012, Zurich, pp 108–111Google Scholar
  30. Hassan AE, Holt RC (2004) Predicting change propagation in software systems. In: 20th international conference on software maintenance (ICSM 2004). doi:10.1109/ICSM.2004.1357812, Chicago, pp 284–293
  31. Hecht G, Omar B, Rouvoy R, Moha N, Duchien L (2015) Tracking the software quality of android applications along their evolution. In: Grunske L, Whalen M (eds) 30th IEEE/ACM international conference on automated software engineering. Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015). https://hal.inria.fr/hal-01178734. IEEE, Lincoln, p 12
  32. Hemmati H, Fang Z, Mantyla MV (2015) Prioritizing manual test cases in traditional and rapid release environments. In: 8th IEEE international conference on software testing, verification and validation, ICST 2015, Graz, pp 1–10Google Scholar
  33. Hyzap (2016). https://www.heyzap.com. Last accessed March 2016
  34. Stuart Dredge (2016) Information commissioner’s office releases app privacy guidelines. http://www.theguardian.com/technology/2013/dec/19/information-commissioners-office-app-privacy-guidelines. Accessed March 2016
  35. Joorabchi ME, Mesbah A, Kruchten P (2013) Real challenges in mobile app development. In: 2013 ACM / IEEE international symposium on empirical software engineering and measurement, Baltimore, pp 15–24Google Scholar
  36. Khalid H, Nagappan M, Hassan AE (2015) Examining the relationship between findbugs warnings and end user ratings: a case study on 10,000 android apps. IEEE Soft 99Google Scholar
  37. Khalid H, Nagappan M, Shihab E, Hassan AE (2014) Prioritizing the devices to test your app on: a case study of android game apps. In: Proceedings of the 22Nd ACM SIGSOFT international symposium on foundations of software engineering, FSE 2014. ACM, New York, pp 610–620Google Scholar
  38. Khalid H, Shihab E, Nagappan M, Hassan AE (2015) What do mobile app users complain about? IEEE Soft 32(3):70–77CrossRefGoogle Scholar
  39. Khomh F, Adams B, Dhaliwal T, Zou Y (2015) Understanding the impact of rapid releases on software quality - the case of firefox. Empir Softw Eng 20(2):336–373CrossRefGoogle Scholar
  40. Khomh F, Dhaliwal T, Zou Y, Adams B (2012) Do faster releases improve software quality?: An empirical case study of mozilla firefox. In: Proceedings of the 9th IEEE working conference on mining software repositories, MSR ’12. IEEE Press, Piscataway, pp 179–188Google Scholar
  41. Linares-Vásquez M, Bavota G, Bernal-Cárdenas C, Di Penta M, Oliveto R, Poshyvanyk D (2013) API change and fault proneness: a threat to the success of android apps. In: Proceedings of the 2013 9th joint meeting on foundations of software engineering, ESEC/FSE 2013. ACM, New York, pp 477–487Google Scholar
  42. Maalej W, Nabil H (2015) Bug report, feature request, or simply praise? On automatically classifying app reviews. In: 23rd IEEE international requirements engineering conference, RE 2015. doi:10.1109/RE.2015.7320414, Ottawa, pp 116–125
  43. Mäntylä MV, Khomh F, Adams B, Engström E, Petersen K (2013) On rapid releases and software testing. In: Proceedings of the 2013 IEEE international conference on software maintenance, ICSM ’13. IEEE Computer Society, Washington, pp 20–29Google Scholar
  44. Mäntylä MV, Adams B, Khomh F, Engström E, Petersen K (2014) On rapid releases and software testing: a case study and a semi-systematic literature review. Empir Softw Eng:1–42Google Scholar
  45. Martin W, Harman M, Jia Y, Sarro F, Zhang Y (2015) The app sampling problem for app store mining. In: 12th IEEE/ACM working conference on mining software repositories, MSR 2015. doi:10.1109/MSR.2015.19, Florence, pp 123–133
  46. Martin Poschenrieder (2016) 77% will not download a Retail app rated lower than 3 stars. http://blog.testmunk.com/77-will-not-download-a-retail-app-rated-lower-than-3-stars/. Accessed March 2016
  47. McIlroy S (2014) Empirical studies of the distribution and feedback mechanisms of mobile app stores. Master’s thesis, Queen’s UniversityGoogle Scholar
  48. McIlroy S, Ali N, Khalid H, Hassan AE (2015) Analyzing and automatically labelling the types of user issues that are raised in mobile app reviews. Empir Softw EngGoogle Scholar
  49. Pandita R, Xiao X, Yang W, Enck W, Xie T (2013) Whyper: Towards automating risk assessment of mobile applications. In: Presented as part of the 22nd USENIX Security Symposium (USENIX Security 13), pp 527–542. USENIX, WashingtonGoogle Scholar
  50. Pathak A, Hu YC, Zhang M (2011) Bootstrapping energy debugging on smartphones: a first look at energy bugs in mobile devices. In: Tenth ACM Workshop on Hot Topics in Networks (HotNets-X), HOTNETS ’11, Cambridge, p 5Google Scholar
  51. Pathak A, Jindal A, Hu YC, Midkiff SP (2012) What is keeping my phone awake?: characterizing and detecting no-sleep energy bugs in smartphone apps. In: The 10th International Conference on Mobile Systems, Applications, and Services, MobiSys’12, Ambleside, pp 267–280Google Scholar
  52. Ravindranath L, Padhye J, Agarwal S, Mahajan R, Obermiller I, Shayandeh S (2012) Appinsight: mobile app performance monitoring in the wild. In: 10th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2012, Hollywood, pp 107–120Google Scholar
  53. Robotium (2016). https://code.google.com/p/robotium/. Accessed March 2016
  54. Ruiz IJM, Adams B, Nagappan M, Dienst S, Berger T, Hassan AE (2014) A large-scale empirical study on software reuse in mobile apps. IEEE Software 31(2):78–86. doi:10.1109/MS.2013.142 CrossRefGoogle Scholar
  55. Ruiz IJM, Nagappan M, Adams B, Hassan AE (2012) Understanding reuse in the android market. In: IEEE 20th international conference on program comprehension, ICPC 2012. doi:10.1109/ICPC.2012.6240477, Passau, pp 113–122
  56. Smali2java (2016). http://www.hensence.com/en/smali2java/. Last accessed March 2016
  57. Smith J (2016) How to use the psychology of color to increase website conversions. https://blog.kissmetrics.com/psychology-of-color-and-conversions/. Accessed March 2016
  58. Sofia (2016) Chapter 2 structure of an android app. http://sofia.cs.vt.edu/sofia-2114/book/chapter2.html. Accessed March 2016
  59. Souza R, von Flach G, Chavez C, Bittencourt RA (2014) Do rapid releases affect bug reopening? A case study of firefox. In: 2014 Brazilian symposium on software engineering, Maceió, pp 31–40Google Scholar
  60. Souza R, von Flach G, Chavez C, Bittencourt RA (2015) Rapid releases and patch backouts: a software analytics approach. IEEE Software 32(2):89–96CrossRefGoogle Scholar
  61. Stackoverflow (2016a) Remove extra unwanted permissions from manifest android, stackoverflow. http://stackoverflow.com/questions/8257412/remove-extra-unwanted-permissions-from-manifest-android. Accessed March 2016
  62. Stackoverflow (2016b) How to check if android permission is actually being used?, stackoverflow. http://stackoverflow.com/questions/24858462/how-to-check-if-android-permission-is-actually-being-used. Accessed March 2016
  63. Stackoverflow (2016c) Storage limit in raw and asset folder in android. http://stackoverflow.com/questions/14995756/storage-limit-in-raw-and-asset-folder-in-android. Accessed March 2016
  64. Stackoverflow (2016d) Difference between /res and /assets directories. http://stackoverflow.com/questions/5583608/difference-between-res-and-assets-directories. Accessed March 2016
  65. Stackoverflow (2016e) Clean up unused android permissions, stackoverflow. http://stackoverflow.com/questions/18362305/clean-up-unused-android-permissions. Accessed March 2016
  66. Statista (2016a) Number of apps available in leading app stores as of July 2015. http://www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/. Accessed March 2016
  67. Statista (2016b) Google play: number of downloads 2010-2013. http://www.statista.com/statistics/281106/number-of-android-app-downloads-from-google-play/. Accessed March 2016
  68. Syer MD, Nagappan M, Hassan AE, Adams B (2013) Revisiting prior empirical findings for mobile apps: an empirical case study on the 15 most popular open-source android apps. In: Center for advanced studies on collaborative research, CASCON ’13. http://dl.acm.org/citation.cfm?id=2555553, Toronto, pp 283–297
  69. Syer MD, Nagappan M, Adams B, Hassan AE (2015) Studying the relationship between source code quality and mobile platform dependence. Softw Qual J 23(3):485–508. doi:10.1007/s11219-014-9238-2 CrossRefGoogle Scholar
  70. Wan M, Jin Y, Li D, Halfond WGJ (2015) Detecting display energy hotspots in android apps. In: 8th IEEE international conference on software testing, verification and validation, ICST 2015, Graz, pp 1–10Google Scholar
  71. Wikipedia (2016) Wikipedia Patch Tuesday. http://en.wikipedia.org/wiki/Patch_Tuesday. Accessed March 2016
  72. Xu W, Zhang F, Zhu S (2013) Permlyzer: analyzing permission usage in android applications. In: IEEE 24th international symposium on software reliability engineering, ISSRE 2013. doi:10.1109/ISSRE.2013.6698893, Pasadena, pp 400–410
  73. Zimmermann T, Weißgerber P, Diehl S, Zeller A (2004) Mining version histories to guide software changes. In: 26th international conference on software engineering (ICSE 2004), pp 563–572, Edinburgh. doi:10.1109/ICSE.2004.1317478

Copyright information

© Springer Science+Business Media New York 2016

Authors and Affiliations

  1. 1.Software Analysis and Intelligence Lab (SAIL), School of ComputingQueen’s UniversityKingstonCanada
  2. 2.Department of Computer Science and Software EngineeringConcordia UniversityMontrealCanada

Personalised recommendations