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
CS519 - Cloud Twin: Native Execution of Android Applications on the Windows Phone
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. 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. MOTIVATION
One of the challenges of mobile
development is necessity of supporting
mobile application for different platforms
3
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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