skip to main content
10.1145/3332165.3347890acmconferencesArticle/Chapter ViewAbstractPublication PagesuistConference Proceedingsconference-collections
research-article
Public Access

X-Droid: A Quick and Easy Android Prototyping Framework with a Single-App Illusion

Authors Info & Claims
Published:17 October 2019Publication History

ABSTRACT

We present X-Droid, a framework that provides Android app developers an ability to quickly and easily produce functional prototypes. Our work is motivated by the need for such ability and the lack of tools that provide it. Developers want to produce a functional prototype rapidly to test out potential features in real-life situations. However, current prototyping tools for mobile apps are limited to creating non-functional UI mockups that do not demonstrate actual features. With X-Droid, developers can create a new app that imports various kinds of functionality provided by other existing Android apps. In doing so, developers do not need to understand how other Android apps are implemented or need access to their source code. X-Droid provides a developer tool that enables developers to use the UIs of other Android apps and import desired functions into their prototypes. X-Droid also provides a run-time system that executes other apps' functionality in the background on off-the-shelf Android devices for seamless integration. Our evaluation shows that with the help of X-Droid, a developer imported a function from an existing Android app into a new prototype with only 51 lines of Java code, while the function itself requires 10,334 lines of Java code to implement (i.e., 200× improvement).

Skip Supplemental Material Section

Supplemental Material

ufp3410pv.mp4

mp4

6.4 MB

p95-kim.mp4

mp4

481 MB

References

  1. Steven D Tripp and Barbara Bichelmeyer. Rapid prototyping: An alternative instructional design strategy. Educational Technology Research and Development, 38(1):31--44, 1990.Google ScholarGoogle ScholarCross RefCross Ref
  2. Joel Brandt, Philip J Guo, Joel Lewenstein, Mira Dontcheva, and Scott R Klemmer. Two studies of opportunistic programming: interleaving web foraging, learning, and writing code. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, pages 1589--1598. ACM, 2009.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Xiong Zhang and Philip J Guo. Fusion: Opportunistic web prototyping with ui mashups. In The 31st Annual ACM Symposium on User Interface Software and Technology, pages 951--962. ACM, 2018.Google ScholarGoogle Scholar
  4. Ingbert R Floyd, M Cameron Jones, Dinesh Rathi, and Michael B Twidale. Web mash-ups and patchwork prototyping: User-driven technological innovation with web 2.0 and open source software. In 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07), pages 86--86. IEEE, 2007.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M Cameron Jones, Ingbert R Floyd, and Michael B Twidale. Patchwork prototyping with open source software. In Software Applications: Concepts, Methodologies, Tools, and Applications, pages 1641--1656. IGI Global, 2009.Google ScholarGoogle ScholarCross RefCross Ref
  6. Balsamiq. rapid, effective and fun wireframing software. https://balsamiq.com/, 2019.Google ScholarGoogle Scholar
  7. Prototype faster, smarter and easier with mockplus! https://www.mockplus.com/?r=trista, 2019.Google ScholarGoogle Scholar
  8. Wireframe.cc - minimal wireframing tool. https://wireframe.cc/, 2019.Google ScholarGoogle Scholar
  9. Marvel app. https://marvelapp.com/, 2019.Google ScholarGoogle Scholar
  10. Invision | digital product design, workflow & collaboration. https://www.invisionapp.com/ , 2019.Google ScholarGoogle Scholar
  11. Uxpin | ui design and prototyping tool. https://www.uxpin.com/, 2019.Google ScholarGoogle Scholar
  12. Allen Cypher and Daniel Conrad Halbert. Watch what I do: programming by demonstration. MIT press, 1993.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Toby Jia-Jun Li, Amos Azaria, and Brad A Myers. Sugilite: creating multimodal smartphone automation by demonstration. In Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems, pages 6038--6049. ACM, 2017.Google ScholarGoogle Scholar
  14. Tanzirul Azim, Oriana Riva, and Suman Nath. ulink: Enabling user-defined deep linking to app content. In Proceedings of the 14th Annual International Conference on Mobile Systems, Applications, and Services (MobiSys), pages 305--318. ACM, 2016.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. redLeshed, Gilly and Haber, Eben M and Matthews, Tara and Lau, Tessa. redCoScripter: automating & sharing how-to knowledge in the enterprise. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, pages 1719--1728. ACM, 2008.Google ScholarGoogle Scholar
  16. redNichols, Jeffrey and Lau, Tessa. redMobilization by demonstration: using traces to re-author existing web sites. In Proceedings of the 13th international conference on Intelligent user interfaces, pages 149--158. ACM, 2008.Google ScholarGoogle Scholar
  17. redFujima, Jun and Lunzer, Aran and Hornbæk, Kasper and Tanaka, Yuzuru. redClip, connect, clone: combining application elements to build custom interfaces for information access. In Proceedings of the 17th annual ACM symposium on User interface software and technology, pages 175--184. ACM, 2004.Google ScholarGoogle Scholar
  18. Domenico Amalfitano, Anna Rita Fasolino, Porfirio Tramontana, Salvatore De Carmine, and Atif M Memon. Using gui ripping for automated testing of android applications. In Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 258--261. ACM, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Young-Min Baek and Doo-Hwan Bae. Automated model-based android gui testing using multi-level gui comparison criteria. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 238--249. ACM, 2016.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Shuai Hao, Bin Liu, Suman Nath, William GJ Halfond, and Ramesh Govindan. Puma: programmable ui-automation for large-scale dynamic analysis of mobile apps. In Proceedings of the 12th annual international conference on Mobile Systems, Applications, and Services (MobiSys), pages 204--217. ACM, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Chieh-Jan Mike Liang, Nicholas D Lane, Niels Brouwers, Li Zhang, Börje F Karlsson, Hao Liu, Yan Liu, Jun Tang, Xiang Shan, Ranveer Chandra, et al. Caiipa: Automated large-scale mobile app testing through contextual fuzzing. In Proceedings of the 20th annual international conference on Mobile computing and networking (MobiCom), pages 519--530. ACM, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Aravind Machiry, Rohan Tahiliani, and Mayur Naik. Dynodroid: An input generation system for android apps. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering (FSE), pages 224--234. ACM, 2013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Lenin Ravindranath, Suman Nath, Jitendra Padhye, and Hari Balakrishnan. Automatic and scalable fault detection for mobile applications. In Proceedings of the 12th annual international conference on Mobile Systems, Applications, and Services (MobiSys), pages 190--203. ACM, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Ting Su, Guozhu Meng, Yuting Chen, Ke Wu, Weiming Yang, Yao Yao, Geguang Pu, Yang Liu, and Zhendong Su. Guided, stochastic model-based gui testing of android apps. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (FSE), pages 245--256. ACM, 2017.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Selenium - web browser automation. https://www.seleniumhq.org/, 2019.Google ScholarGoogle Scholar
  26. Helium. https://heliumhq.com/, 2019.Google ScholarGoogle Scholar
  27. Scrapy. https://scrapy.org/, 2019.Google ScholarGoogle Scholar
  28. redStuerzlinger, Wolfgang and Chapuis, Olivier and Phillips, Dusty and Roussel, Nicolas. redUser interface facc ades: towards fully adaptable user interfaces. In Proceedings of the 19th annual ACM symposium on User interface software and technology, pages 309--318. ACM, 2006.Google ScholarGoogle Scholar
  29. redNichols, Jeffrey and Hua, Zhigang and Barton, John. redHighlight: a system for creating and deploying mobile web applications. In Proceedings of the 21st annual ACM symposium on User interface software and technology, pages 249--258. ACM, 2008.Google ScholarGoogle Scholar
  30. Rob Ennals and David Gay. User-friendly functional programming for web mashups. In ACM SIGPLAN Notices, volume 42, pages 223--234. ACM, 2007.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. James Lin, Jeffrey Wong, Jeffrey Nichols, Allen Cypher, and Tessa A Lau. End-user programming of mashups with vegemite. In Proceedings of the 14th international conference on Intelligent user interfaces, pages 97--106. ACM, 2009.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Jeffrey Wong and Jason I Hong. Making mashups with marmite: towards end-user programming for the web. In Proceedings of the SIGCHI conference on Human factors in computing systems, pages 1435--1444. ACM, 2007.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. redPokress, Shaileen Crawford and Veiga, José Juan Dominguez. redMIT App Inventor: Enabling personal mobile computing. Proceedings of PRoMoTo 2013, 2013.Google ScholarGoogle Scholar
  34. redThunkable.com: Drag and Drop Mobile App Builder for iOS and Android. https://thunkable.com/, 2019.Google ScholarGoogle Scholar
  35. Parallel space. http://parallel-app.com/, 2019.Google ScholarGoogle Scholar
  36. Parallel accounts. https://play.google.com/store/apps/details?id=com.in.parallel.accounts, 2019.Google ScholarGoogle Scholar
  37. Go multiple - parallel account. https://play.google.com/store/apps/details?id=com.jiubang.commerce.gomultiple, 2019.Google ScholarGoogle Scholar
  38. Do multiple - unlimited parallel account. https://play.google.com/store/apps/details?id=com.polestar.domultiple, 2019.Google ScholarGoogle Scholar
  39. Dr. clone: Parallel accounts, dual app, 2nd account. https://play.google.com/store/apps/details?id=com.trendmicro.tmas, 2019.Google ScholarGoogle Scholar
  40. Dynamicapk. https://github.com/CtripMobile/DynamicAPK, 2019.Google ScholarGoogle Scholar
  41. Dl: dynamic load framework for android. https://github.com/singwhatiwanna/dynamic-load-apk, 2019.Google ScholarGoogle Scholar
  42. Android dynamic loader. https://github.com/mmin18/AndroidDynamicLoader, 2019.Google ScholarGoogle Scholar
  43. Android pluginmanager. https://github.com/houkx/android-pluginmgr, 2019.Google ScholarGoogle Scholar
  44. Droid plugin. https://github.com/Qihoo360/DroidPlugin, 2019.Google ScholarGoogle Scholar
  45. Understand the activity lifecycle. https://developer.android.com/guide/components/activities/activity-lifecycle, 2019.Google ScholarGoogle Scholar
  46. Brian Pellin. Keepassdroid. http://www.keepassdroid.com/, 2019.Google ScholarGoogle Scholar
  47. Lorenzo Gomez, Iulian Neamtiu, Tanzirul Azim, and Todd Millstein. Reran: Timing-and touch-sensitive record and replay for android. In Software Engineering (ICSE), 2013 35th International Conference on, pages 72--81. IEEE, 2013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Zhengrui Qin, Yutao Tang, Ed Novak, and Qun Li. Mobiplay: A remote execution based record-and-replay tool for mobile applications. In Proceedings of the 38th International Conference on Software Engineering (ICSE), pages 571--582. ACM, 2016.Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Matthew Halpern, Yuhao Zhu, Ramesh Peri, and Vijay Janapa Reddi. Mosaic: cross-platform user-interaction record and replay for the fragmented android ecosystem. In Performance Analysis of Systems and Software (ISPASS), 2015 IEEE International Symposium on, pages 215--224. IEEE, 2015.Google ScholarGoogle ScholarCross RefCross Ref
  50. Monkey runner. https://developer.android.com/studio/test/monkeyrunner/index.html, 2019.Google ScholarGoogle Scholar
  51. Proguard, the open source optimizer for java bytecode. https://www.guardsquare.com/en/products/proguard, 2019.Google ScholarGoogle Scholar
  52. Sharath Chandrashekhara, Taeyeon Ki, Kyungho Jeon, Karthik Dantu, and Steven Y Ko. Bluemountain: An architecture for customized data management on mobile systems. In Proceedings of the 23rd Annual International Conference on Mobile Computing and Networking (MobiCom), pages 396--408. ACM, 2017.Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Taeyeon Ki, Alexander Simeonov, Bhavika Pravin Jain, Chang Min Park, Keshav Sharma, Karthik Dantu, Steven Y Ko, and Lukasz Ziarek. Reptor: Enabling api virtualization on android for platform openness. In Proceedings of the 15th Annual International Conference on Mobile Systems, Applications, and Services (MobiSys), pages 399--412. ACM, 2017.Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Chris Lattner and Vikram Adve. Llvm: A compilation framework for lifelong program analysis & transformation. In Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization (CGO), page 75. IEEE Computer Society, 2004.Google ScholarGoogle Scholar
  55. Lenin Ravindranath, Jitendra Padhye, Sharad Agarwal, Ratul Mahajan, Ian Obermiller, and Shahin Shayandeh. Appinsight: Mobile app performance monitoring in the wild. In OSDI, volume 12, pages 107--120, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. William Enck, Peter Gilbert, Seungyeop Han, Vasant Tendulkar, Byung-Gon Chun, Landon P Cox, Jaeyeon Jung, Patrick McDaniel, and Anmol N Sheth. Taintdroid: an information-flow tracking system for realtime privacy monitoring on smartphones. ACM Transactions on Computer Systems (TOCS), 32(2):5, 2014.Google ScholarGoogle Scholar
  57. Steven Arzt, Siegfried Rasthofer, and Eric Bodden. Instrumenting android and java applications as easy as abc. In International Conference on Runtime Verification (RV), pages 364--381. Springer, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  58. Haichen Shen, Aruna Balasubramanian, Anthony LaMarca, and David Wetherall. Enhancing mobile apps to use sensor hubs without programmer effort. In Proceedings of the 2015 ACM International Joint Conference on Pervasive and Ubiquitous Computing (UbiComp), pages 227--238. ACM, 2015.Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Mohammed Rangwala, Ping Zhang, Xukai Zou, and Feng Li. A taxonomy of privilege escalation attacks in android applications. International Journal of Security and Networks, 9(1):40--55, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Lucas Davi, Alexandra Dmitrienko, Ahmad-Reza Sadeghi, and Marcel Winandy. Privilege escalation attacks on android. In international conference on Information security, pages 346--360. Springer, 2010.Google ScholarGoogle Scholar
  61. Ryan Stevens, Clint Gibler, Jon Crussell, Jeremy Erickson, and Hao Chen. Investigating user privacy in android ad libraries. In Workshop on Mobile Security Technologies (MoST), volume 10, 2012.Google ScholarGoogle Scholar
  62. Michael Backes, Sven Bugiel, Erik Derr, Patrick D McDaniel, Damien Octeau, and Sebastian Weisgerber. On demystifying the android application framework: Re-visiting android permission specification analysis. In USENIX Security Symposium, pages 1101--1118, 2016.Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Password safe. https://pwsafe.org/, 2019.Google ScholarGoogle Scholar
  64. Wish local. https://wish-local-buy-sell.en.softonic.com/android, 2019.Google ScholarGoogle Scholar
  65. Universal tv remote control. https://play.google.com/store/apps/details?id=codematics.universal.tv.remote.control, 2019.Google ScholarGoogle Scholar
  66. Radiodroid 2. https://play.google.com/store/apps/details?id=net.programmierecke.radiodroid2, 2019.Google ScholarGoogle Scholar
  67. CodePath. Must have libraries. https://github.com/codepath/android_guides/wiki/Must-Have-Libraries, 2019.Google ScholarGoogle Scholar
  68. Rishab A Ghosh, Ruediger Glott, Bernhard Krieger, and Gregorio Robles. Free/libre and open source software: Survey and study, 2002.Google ScholarGoogle Scholar

Index Terms

  1. X-Droid: A Quick and Easy Android Prototyping Framework with a Single-App Illusion

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        UIST '19: Proceedings of the 32nd Annual ACM Symposium on User Interface Software and Technology
        October 2019
        1229 pages
        ISBN:9781450368162
        DOI:10.1145/3332165

        Copyright © 2019 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 17 October 2019

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate842of3,967submissions,21%

        Upcoming Conference

        UIST '24

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader