CS519 - Cloud Twin: Native Execution of Android Applications on the Windows Phone


Published on

Overview of the paper "Cloud Twin: Native Execution of Android Applications on the Windows Phone" by Holder et al. presented at Oregon State University for "Software Evolution for Mobility" class on Nov 18th 2013. Presentation time: 5 min

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

CS519 - Cloud Twin: Native Execution of Android Applications on the Windows Phone

  1. 1. CLOUD TWIN: NATIVE EXECUTION OF ANDROID APPLICATIONS ON THE WINDOWS PHONE Presentation type: paper review Class: CS 519 – Software Evolution for Mobility Presenter: Sergii Shmarkatiuk Date: 11/18/2013
  2. 2. PRESENTATION FORMAT  5-8 min for presentation Motivation  Proposed solution  Results  Main technical challenge addressed in the paper   17-20 min for discussion Every student provides an answer/comment to presented discussion question ( <45 sec)  We will put original ideas on the whiteboard  Every student picks most appealing/interesting research idea and explains why it is interesting ( <45 sec)  We will define the most popular idea for future research 2 based on students’ opinion. 
  3. 3. MOTIVATION One of the challenges of mobile development is necessity of supporting mobile application for different platforms 3
  4. 4. MOTIVATION Platform differences result in higher costs of mobile application development and maintenance 4
  5. 5. MOTIVATION Real challenges (Joorabchi et al.): Fragmentation across platforms  Fragmentation within the same platform  Behavioral consistency across platforms  Lack of support for automated migration across platforms  “re-coding against wildly different API sets” increases the cost and time-to-market within phases of design, development, testing, and maintenance, which is definitely a large issue for start-up and smaller companies. 5
  6. 6. PROPOSED SOLUTION Replicating UI from one platform (Android) to another platform (Windows Phone) using aspect-oriented programming and Reflection API.  Running source application (Android) in the cloud using platform emulator.  Capturing UI events generated by target application (Windows Phone) and sending them to the cloud.  Receiving UI updates generated by source application (Android) at target application (Windows Phone) side.  6
  7. 7. RESULTS Latency of a complete UI update time between pressing a button and updating text label in response Min (ms) 281 Avg (ms) 314 Max (ms) 846 7
  8. 8. MAIN TECHNICAL CHALLENGE 1. Analysis of interface's in-memory representation 2. Extraction of platform-independent model that can then be used to generate equivalent interface for another platform 8
  9. 9. EXAMPLE FROM RELATED WORK (CONVERTING SWING GUI TO ANDROID UI) Run the GUI application  Intercept the application using aspect oriented programming.  Extract the components using Reflection API  Reuse the logic of the application  Translate the components to platform independent domain specific language (XML-based)  Create method stubs for the listeners  9
  10. 10. QUESTIONS TO DISCUSS (~45 SEC FOR AN ANSWER) Sergii: Do you think it is a good idea to use XMLbased intermediate representation for the UI of source application?  Sergii: What do you consider to be an overhead of maintaining cloud-based emulators?  Caius: How does their approach scale? A whole Android emulator is quite heavy weight? While this is not a problem when you have only 1 user, how about when you have thousands? Could two or more sessions run in the same emulator?  10
  11. 11. QUESTIONS TO DISCUSS (~45 SEC FOR AN ANSWER) Sergii: How could we get to the point, when we could "Write once, Run on any Mobile Platform“?  Michael: This paper is another attempt to solve the "write once, run anywhere" universal code that has been the "holy grail" of programming that developers have been chasing for decades now. Java is just one of many examples of this. This approach seems to be significantly different in substance, but it still suffers from the common achilles heel of universal solutions, specifically poor performance.  11
  12. 12. QUESTIONS TO DISCUSS (~45 SEC FOR AN ANSWER) Arpit: What kind of information do static and dynamic analysis of apps may yield to help with portability?  Austin: What other platform pairs can this be extended to (e.g., Android accessing iOS apps)? Is there any reason that Windows Phone and Android are easier, and would is needed to make this happen for other platforms?  Mihai: …  12
  13. 13. IDEAS FOR BETTER EVALUATION Sergii: Use 3g/4g instead of wi-fi  Sergii: Calculate overall number and ratio of UI elements that cannot be converted to different platform  Sergii: Use real applications instead of tutorials  Arpit: Provide details of how many applications were able to run successfully on windows phone using android emulator as source  Caius: Provide list of tested applications  Caius, Austin: Test solution in different networks  Mihai: …  13
  14. 14. FOLLOW-UP RESEARCH IDEAS Ideas from the paper:  Increase UI component coverage  Support additional platforms (iOS) and languages (Objective C)  Automate API evolution  Create collaborative mobile applications Ideas related to general limitations of mobile platforms:  Security considerations  Usage of platform-specific hardware (NFC)  Handling native Open GL code  Fragmentation across platforms and within the same platform Other ideas:  Sergii: improve presented approach to make it useful for addressing needs of real applications.  Sergii: reduce number of layers in the solution, make it more robust and reusable.  Sergii: separating application into two parts – platform-independent (that could run in the cloud) and platform-specific part (that could run on device) 14
  15. 15. FOLLOW-UP RESEARCH IDEAS Other ideas:  Austin: compiling certain parts of the codebase into C++ libraries so that less data has to be sent to the emulator  Michael: OnLive gaming platform  Michael: make it work for gestures  Caius: running more sessions in the same emulator  Arpit: tool that looks at Android activity and creates a corresponding XAML form automatically and vice versa  Mihai: … 15
  16. 16. WHAT RESEARCH IDEA DO YOU FIND THE MOST INTERESTING TO WORK ON AND WHY? Separating application into platformindependent and platform-specific part Compiling certain parts of the codebase into C++ libraries OnLive gaming platform Gestures support Running more sessions in the same emulator Automatic conversion to and from XAML UI representation 16