Gesto: Mapping UI Events to Gestures and Voice Commands

Slides:



Advertisements
Similar presentations
Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.
Advertisements

Test Automation on Mobile environnents Eder Figueroa 4/29/203.
Android architecture overview
ANDROID OPERATING SYSTEM Guided By,Presented By, Ajay B.N Somashekar B.T Asst Professor MTech 2 nd Sem (CE)Dept of CS & E.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Standard 1 - Objective 2: Understand, evaluate, and use computer software.
Introduction to Android Platform Overview
App Development on Android. Contents  First Milestone  Second Milestone  Third Milestone  Last Milestone 
Efficient Privilege De-Escalation for Ad Libraries in Mobile Apps Bin Liu (SRA), Bin Liu (CMU), Hongxia Jin (SRA), Ramesh Govindan (USC)
Mobile Application Development with ANDROID Tejas Lagvankar UMBC 29 April 2009.
Android Introduction Based on slides made by
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Android for Java Developers Denver Java Users Group Jan 11, Mike
Automatically Repairing Broken Workflows for Evolving GUI Applications Sai Zhang University of Washington Joint work with: Hao Lü, Michael D. Ernst.
ANDROID L. Grewe Components  Java Standard Development Kit (JDK) (download) (latest version)  AndroidStudio.
ANDROID BY:-AANCHAL MEHTA MNW-880-2K11. Introduction to Android Open software platform for mobile development A complete stack – OS, Middleware, Applications.
Created By. Jainik B Patel Prashant A Goswami Gujarat Vidyapith Computer Department Ahmedabad.
Mobile Application Development with ANDROID Umang Patel(6537) LDCE.
Enhancing Mobile Apps to Use Sensor Hubs without Programmer Effort Haichen Shen, Aruna Balasubramanian, Anthony LaMarca, David Wetherall 1.
Events. Slide 2©SoftMoore Consulting Events Events are generated when a user interacts with the view objects of an application. Examples –button clicked–
1 Android Workshop Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
Android operating system N. Sravani M. Tech(CSE) (09251D5804)
A Software Energy Analysis Method using Executable UML for Smartphones Kenji Hisazumi System LSI Research Center Kyushu University.
Accelerometer based motion gestures for mobile devices Presented by – Neel Parikh Advisor Committee members Dr. Chris Pollett Dr. Robert Chun Dr. Mark.
Android Training in Chandigarh. What is Android Android is a mobile operating system based on the Linux Kernel. The goal of android project is to create.
Introduction to Android Chapter 1 1. Objectives Understand what Android is Learn the differences between Java and Android Java Examine the Android project.
The Basics of Android App Development Sankarshan Mridha Satadal Sengupta.
A presentation on Android and Android project Around Me
DISCOVERING COMPUTERS 2018 Digital Technology, Data, and Devices
Mobile Device Development
Applications Active Web Documents Active Web Documents.
Android Mobile Application Development
How is Clicklearn licensed
Security and Programming Language Work on SmartPhones
Visit for more Learning Resources
The world’s most advanced mobile platform
Record and Replay for Android: Are We There Yet in Industrial Cases?
Android Runtime – Dalvik VM
Pilot Walktour Operation Guide V3.5 (Android)
Chapter 2: Operating-System Structures
Outline Introduction Related Work
Computing.
Android.
APK Downloader
TaintART: A Practical Multi-level Information-Flow Tracking System for Android RunTime Sadiq Basha.
AppShield: Enabling Multi-entity Access Control Cross Platforms for Mobile App Management Zhengyang Qu1, Guanyu Guo2, Zhengyue Shao2, Vaibhav Rastogi3,
On the road: Test automation in practice for a BMW map update service
Pilot Walktour Operation Guide V3.4 (Android)
Introduction Enosis Learning.
CMPE419 Mobile Application Development
Lesson 1: Buttons and Events – 12/18
Introduction Enosis Learning.
Application Development A Tutorial Driven Course
Evaluating Transaction System Performance
Android Topics Custom ArrayAdapters Creating an Event Listener
CHAPTER 1 Introduction Chapter objectives: Understand what Android is
Android Developer Fundamentals V2
How to Improve Releasing Efficiency via i18N/L10n Test Automation.
Collaborative Collections
Midway Milestone Presentation: FlexiVoice
The Most Popular Android UI Automation Testing Tool Andrii Voitenko
Android Introduction Platform Mihail L. Sichitiu.
Android Platform, Android App Basic Components
Mobile Programming Dr. Mohsin Ali Memon.
Getting Started with Android…
CMPE419 Mobile Application Development
Mimic: UI Compatibility Testing System for Android Apps
Presentation transcript:

Gesto: Mapping UI Events to Gestures and Voice Commands Chang Min Park, Taeyeon Ki, Ali J. Ben Ali, Nikhil Sunil Pawar, Karthik Dantu, Steven Y. Ko, and Lukasz Ziarek University at Buffalo, The State University of New York

What is Gesto? Task automation system – Maps UI actions to a gesture or voice command or How does Gesto enable task automation? Record Start Select (Gestures or Voice) UI Actions Finish Replay Trigger (Gestures or Voice) Replay the UI Actions

Example Scenarios Multiple scenarios requiring task automation 1. Simplifying UI actions 2. Long sequence of UI actions 3. Frequently used UI actions e.g., Spotify App e.g., Yelp App e.g., Bing App

Demo Video Record and Replay – Yelp App (Instrumented with Gesto) Due to a size limitation, the video was removed. Please check the demo videos on the website.

How Does Current Task Automation Work without Gesto? To provide the functionality, each app must implement it. Developers Manual: app developers need to implement the functionality manually. Users Regular App Code generate Gesto No developer’s involvement – automatic transformation of existing apps User-defined UI actions Application Task Automation

How Does Gesto Work? Instruments existing apps and injects record and replay functionality No App-source Code No Root Access No Customized OS Users Gesto System Modification Injection Existing Application Java Bytecode Instrumentation Instrumented Application Possible to provide as a desktop tool

Gesto Overview How does Gesto record UI actions? How does Gesto map a gesture or a voice command to the UI actions? How does Gesto replay the UI actions? Gesto Recording Mapping Existing Application Instrumented Application Replaying

Gesto Overview (cont.) 1. How Does Gesto record UI actions? Android developers implement UI callbacks to handle UI actions. UI Callback Item 1 Item 2 Item 3 Event listener interface for a UI object Gets triggered by a user’s UI action Button onClick onItemClick onTextChanged 1 2 3 4 5 6 7 8 Button b = new Button; b.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Developer’s Code } Gesto injects a logging method Logger.logOnClick(v); - Can record the UI callback whenever a user perform the UI action Using multiple logging methods, Gesto records various UI callbacks.

Gesto Overview (cont.) 2. How does Gesto map a gesture or a voice command to the UI actions? Currently supports 28 gestures and voice commands “Shake” - Sensey: open-source gesture recognition library - SpeechRecognizer: provided by Android Button1  onClick Button2  onClick TextBox  onTextChanged For each gesture or voice command, users can map a different sequence of UI actions. Mapping Process A user selects a gesture to map. Gesto maps the gesture with the recorded UI actions. Gesto stores the mapping in the app.

Gesto Overview (cont.) 3. How does Gesto replay the UI actions? A user triggers a gesture. App finds recorded UI callbacks for the gesture. “Shake” For each UI callback, Android provides a method that triggers the callback. onClick performClick “Shake” onItemClick performItemClick onFocusChange setFocusable onTextChanged setText Provided by Android platform With these methods, Gesto triggers the recorded UI actions.

Evaluation How successfully can Gesto instrument existing apps? Downloaded 1,000 popular apps from Google Play store How do the instrumented apps perform in runtime? Instrumented 4 use case applications (More questions are answered in the paper)

How Successfully Can Gesto Instrument Existing Apps? Downloaded 1,000 popular apps from Google Play store Instrumented the apps with Gesto – 949/1000 (95%) Failed to instrument 51 apps 27 apps – failed by Tools (Soot, apktool) 24 apps – failed by Gesto Category (Example) # of Apps Inst. Time Avg. APK Size Avg. APK Size Increase Avg. Game (Color Switch) 95 32.7s 12.7M 558.8K Entertainment (Roku) 129 34.1s 10.5M 437.4K Media (Spotify Music) 132 28.7s 9.9M 408.4K Education (Brilliant) 114 33.0s 10.9M 718.0K Personalization (Alarmy) 118 27.7s 8.1M 364.3K Productivity (Evernote) 116 31.5s 7.7M 647.3K Business (Venmo) 91 33.8s 10.4M 435.8K Social (Yelp) 154 31.9s 675.7K Total 949 31.6s 10.0M 534.3K Cannot handle the multiple DEX files Multiple DEX files because of the size DEX file - Dalvik executable file. Android programs are compiled into DEX files. Successfully instruments existing applications with modest size increases 7.2%

How Do the Instrumented Apps Perform in Runtime? Instrumented 4 use case applications – Spotify, Yelp, Bing, and AVG Cleaner Performed a defined sequence of UI actions for each app Spotify Yelp “Shake” gesture “Face-down” gesture

How Do the Instrumented Apps Perform in Runtime? (cont.) Instrumented 4 use case applications – Spotify, Yelp, Bing, and AVG Cleaner Performed a defined sequence of UI actions for each app 3 types of run – original, instrumented (record), and instrumented (replay) Bing AVG Cleaner “Bitcoin” voice command “Shake” gesture

How Do the Instrumented Apps Perform in Runtime? (cont.) Evaluated – latency, heap usage, and energy consumption Latency LG Nexus5 Android 6.0.1 Less than 1 sec overhead Requires extra gestures

How Do the Instrumented Apps Perform in Runtime? (cont.) Evaluated – latency, heap usage, and energy consumption Heap Usage LG Nexus5 Android 6.0.1 Incurs 5-15% overhead when a gesture gets performed Time (sec)

How Do the Instrumented Apps Perform in Runtime? (cont.) Evaluated – latency, heap usage, and energy consumption Energy Consumption App Name Average (J) Std Dev (J) Spotify 68.9 5.2 Inst. Spotify (Record) 75.0 5.5 Inst. Spotify (Replay) 78.5 4.8 Yelp 55.5 5.1 Inst. Yelp (Record) 67.8 4.9 Inst. Yelp (Replay) 64.9 Bing 75.9 4.3 Inst. Bing (Record) 86.1 6.3 Inst. Bing (Replay) 86.9 AVG Cleaner 56.5 4.7 Inst. AVG Cleaner (Record) 66.0 3.9 Inst. AVG Cleaner (Replay) 63.2 2.4 Samsung Galaxy S4 Android 7.1.2 Monsoon power monitor incurs 16.9% overhead when a recording or a replaying is performed Mainly from extra sensors Gesto uses Can be reduced by existing energy efficient gestures or voice recognition

Show that Gesto incurs modest overhead in runtime How Do the Instrumented Apps Perform in Runtime? (cont.) Latency Incurs less than 1 sec overhead Heap Usage Incurs 5-15% overhead only when gestures get triggered Energy Consumption Incurs 16.9% overhead but can be optimized by other techniques Show that Gesto incurs modest overhead in runtime

What about Other Systems? Culebra Multiple systems – enabling record and replay feature on existing apps Limitations Intrusive – require app-source, root access, or customized OS Position (coordinate) based – don’t work on other device (different screen size) Mainly for testing – require a desktop control No mapping – with gestures and voice command Frep Screen Button (x,y) Many challenges solved in the paper

Conclusion Gesto Evaluation shows that Gesto Provides task automation Does not require - App-source code, root access, customized OS, and desktop control Successfully handles Recording UI actions – logging UI callbacks Mapping the UI actions – using various gestures and voice commands Replaying the UI actions – using triggering methods for UI actions Evaluation shows that Gesto Successfully instruments existing apps with modest size increases Incurs modest performance overhead in runtime