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).
Supplemental Material
- Steven D Tripp and Barbara Bichelmeyer. Rapid prototyping: An alternative instructional design strategy. Educational Technology Research and Development, 38(1):31--44, 1990.Google ScholarCross Ref
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- Balsamiq. rapid, effective and fun wireframing software. https://balsamiq.com/, 2019.Google Scholar
- Prototype faster, smarter and easier with mockplus! https://www.mockplus.com/?r=trista, 2019.Google Scholar
- Wireframe.cc - minimal wireframing tool. https://wireframe.cc/, 2019.Google Scholar
- Marvel app. https://marvelapp.com/, 2019.Google Scholar
- Invision | digital product design, workflow & collaboration. https://www.invisionapp.com/ , 2019.Google Scholar
- Uxpin | ui design and prototyping tool. https://www.uxpin.com/, 2019.Google Scholar
- Allen Cypher and Daniel Conrad Halbert. Watch what I do: programming by demonstration. MIT press, 1993.Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Selenium - web browser automation. https://www.seleniumhq.org/, 2019.Google Scholar
- Helium. https://heliumhq.com/, 2019.Google Scholar
- Scrapy. https://scrapy.org/, 2019.Google Scholar
- 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 Scholar
- 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 Scholar
- Rob Ennals and David Gay. User-friendly functional programming for web mashups. In ACM SIGPLAN Notices, volume 42, pages 223--234. ACM, 2007.Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- redPokress, Shaileen Crawford and Veiga, José Juan Dominguez. redMIT App Inventor: Enabling personal mobile computing. Proceedings of PRoMoTo 2013, 2013.Google Scholar
- redThunkable.com: Drag and Drop Mobile App Builder for iOS and Android. https://thunkable.com/, 2019.Google Scholar
- Parallel space. http://parallel-app.com/, 2019.Google Scholar
- Parallel accounts. https://play.google.com/store/apps/details?id=com.in.parallel.accounts, 2019.Google Scholar
- Go multiple - parallel account. https://play.google.com/store/apps/details?id=com.jiubang.commerce.gomultiple, 2019.Google Scholar
- Do multiple - unlimited parallel account. https://play.google.com/store/apps/details?id=com.polestar.domultiple, 2019.Google Scholar
- Dr. clone: Parallel accounts, dual app, 2nd account. https://play.google.com/store/apps/details?id=com.trendmicro.tmas, 2019.Google Scholar
- Dynamicapk. https://github.com/CtripMobile/DynamicAPK, 2019.Google Scholar
- Dl: dynamic load framework for android. https://github.com/singwhatiwanna/dynamic-load-apk, 2019.Google Scholar
- Android dynamic loader. https://github.com/mmin18/AndroidDynamicLoader, 2019.Google Scholar
- Android pluginmanager. https://github.com/houkx/android-pluginmgr, 2019.Google Scholar
- Droid plugin. https://github.com/Qihoo360/DroidPlugin, 2019.Google Scholar
- Understand the activity lifecycle. https://developer.android.com/guide/components/activities/activity-lifecycle, 2019.Google Scholar
- Brian Pellin. Keepassdroid. http://www.keepassdroid.com/, 2019.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- Monkey runner. https://developer.android.com/studio/test/monkeyrunner/index.html, 2019.Google Scholar
- Proguard, the open source optimizer for java bytecode. https://www.guardsquare.com/en/products/proguard, 2019.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- Password safe. https://pwsafe.org/, 2019.Google Scholar
- Wish local. https://wish-local-buy-sell.en.softonic.com/android, 2019.Google Scholar
- Universal tv remote control. https://play.google.com/store/apps/details?id=codematics.universal.tv.remote.control, 2019.Google Scholar
- Radiodroid 2. https://play.google.com/store/apps/details?id=net.programmierecke.radiodroid2, 2019.Google Scholar
- CodePath. Must have libraries. https://github.com/codepath/android_guides/wiki/Must-Have-Libraries, 2019.Google Scholar
- Rishab A Ghosh, Ruediger Glott, Bernhard Krieger, and Gregorio Robles. Free/libre and open source software: Survey and study, 2002.Google Scholar
Index Terms
- X-Droid: A Quick and Easy Android Prototyping Framework with a Single-App Illusion
Recommendations
Prototyping Functional Android App Features with ProDroid (poster)
MobiSys '19: Proceedings of the 17th Annual International Conference on Mobile Systems, Applications, and ServicesWe present ProDroid, a framework that provides Android app developers an ability to quickly produce functional prototypes. With ProDroid, developers can create a new app that imports various kinds of functionality provided by other existing Android ...
TruZ-Droid: Integrating TrustZone with Mobile Operating System
MobiSys '18: Proceedings of the 16th Annual International Conference on Mobile Systems, Applications, and ServicesMobile devices today provide a hardware-protected mode called Trusted Execution Environment (TEE) to help protect users from a compromised OS and hypervisor. Today TEE can only be leveraged either by vendor apps or by developers who work with the ...
Comments