SlideShare a Scribd company logo
1 of 25
Improving Enterprise Application
Quality with MOTODEV App Validator


Eric Cloninger (ericc@motorola.com)
Product Line Manager, Development Tools

                                                                                                                           #appval
MOTOROLA and the Stylized M Logo are trademarks or registered trademarks of Motorola Trademark Holdings, LLC. All other
trademarks are the property of their respective owners. © 2012 Motorola Mobility, Inc. All rights reserved.               moto.ly/appvalint
Improving Enterprise Application Quality with MOTODEV App Validator


Agenda

• Asset management in an Android project
• The Matrix of Pain
• The MOTODEV App Validator
• Extending the MOTODEV App Validator
• Q&A




  © 2012 Motorola Mobility, Inc.                                                     #appval   2
Improving Enterprise Application Quality with MOTODEV App Validator


Asset Management in Android

• An Android app (“APK”, aka “application package”) is a
  container for both code and non-code assets
• An app can have multiple copies of the same asset
• Applies to images, menus, strings, layouts, sounds, icons, etc.
• The Android runtime has an algorithm that determines the best
  resource to use based on
  location, carrier, language, display, screen orientation, dock
  status, keyboard availability, etc.

   © 2012 Motorola Mobility, Inc.                                                     #appval   3
Improving Enterprise Application Quality with MOTODEV App Validator


Structure of a simple Android App project



                                                                              AwesomeApp.APK




  © 2012 Motorola Mobility, Inc.                                                     #appval   4
Improving Enterprise Application Quality with MOTODEV App Validator




© 2012 Motorola Mobility, Inc.                                                     #appval   5
Improving Enterprise Application Quality with MOTODEV App Validator




© 2012 Motorola Mobility, Inc.                                                     #appval   6
Improving Enterprise Application Quality with MOTODEV App Validator


The Matrix of Pain




  © 2012 Motorola Mobility, Inc.                                                     #appval   7
Improving Enterprise Application Quality with MOTODEV App Validator


Statistics
http://bit.ly/fxFY7P                              Platform          Codename      API Level   Distribution
                                                  Android 1.5       Cupcake       3           0.6%
                                                  Android 1.6       Donut         4           1.1%
                                                  Android 2.1       Eclair        7           8.5%
                                                  Android 2.2       Froyo         8           30.4%
                                                  Android 2.3 -     Gingerbread   9           0.6%
                                                  Android 2.3.2
                                                  Android 2.3.3 -                 10          54.9%
                                                  Android 2.3.7
                                                  Android 3.0       Honeycomb     11          0.1%
                                                  Android 3.1                     12          1.5%
                                                  Android 3.2                     13          1.7%
                                                  Android 4.0 -     Ice Cream     14          0.3%
Data collected during a 14-day period             Android 4.0.2     Sandwich      15          0.3%
ending on January 3, 2012                         Android 4.0.3

     © 2012 Motorola Mobility, Inc.                                                           #appval        8
Improving Enterprise Application Quality with MOTODEV App Validator


Statistics, cont’d

 http://bit.ly/AfeZHn


                                                             ldpi      mdpi       hdpi      xhdpi

                                                    small    1.3%                 2.9%

                                                   normal    1.0%      17.5%      71%

                                                     large   0.1%      3.1%

                                                    xlarge             3.1%


Data collected during a 14-day period
ending on January 3, 2012


     © 2012 Motorola Mobility, Inc.                                                       #appval   9
Improving Enterprise Application Quality with MOTODEV App Validator


Sparse Matrix. Less pain, more risk.




  © 2012 Motorola Mobility, Inc.                                                     #appval   10
Improving Enterprise Application Quality with MOTODEV App Validator


Static Analysis

•   Solves a different problem set than runtime tests
•   Finds “Matrix of Pain” issues that runtime tests don‟t
•   Catches errors early in the development cycle
•   Automatable / scriptable systems




     © 2012 Motorola Mobility, Inc.                                                     #appval   11
MOTODEV App Validator
Improving Enterprise Application Quality with MOTODEV App Validator


MOTODEV App Validator

• Free static analysis tool that runs on Mac, Windows, and Linux
• Available as Eclipse plugins, a stand-alone command line tool,
  and as a drag-and-drop web app
• Operates on .APK files as well as contents of Eclipse projects
• Highly customizable for your needs
• Generates output as text, CSV, or XML for easy integration into
  existing development processes
• Download at http://moto.ly/mdsdl
   © 2012 Motorola Mobility, Inc.                                                     #appval   13
Improving Enterprise Application Quality with MOTODEV App Validator


MOTODEV App Validator – What it does

• Determines if an app requests too few or too many permissions
• Reports missing localized or default strings and missing
  drawable resources
• Discovers duplicate IDs in layouts
• Code problems (e.g. open database cursors that aren‟t closed)
• 35 unique conditions tested, described at the MOTODEV site
  – http://moto.ly/appvaldocs
  – More checkers and conditions added with each release

  © 2012 Motorola Mobility, Inc.                                                     #appval   14
Demo
 App Validator &
MOTODEV Studio
Improving Enterprise Application Quality with MOTODEV App Validator


MOTODEV App Validator – How it works

• Decomposes an Android application into its “file system”
• Examines the app manifest for improper values
• Decompiles Java code in the APK and examines code patterns
• Compares values of Android APIs parameters against the
  contents of resource directories
• Compares an app against device specifications to find issues
  that might occur on certain devices


    © 2012 Motorola Mobility, Inc.                                                     #appval   16
Improving Enterprise Application Quality with MOTODEV App Validator


App Validator vs. lint

• App Validator is a pre-flighting tool, meant to be your “last set of
  eyes” before you deploy your app
• lint is an improvement on the existing SDK tool called
  „layoutopt‟, which is intended for iterative improvement of your
  user interface
• Use lint during layout, design and coding
• Use App Validator while coding and before deploying to users or
  the Android Market

   © 2012 Motorola Mobility, Inc.                                                     #appval   17
Demo
 App Validator on
the command line
Improving Enterprise Application Quality with MOTODEV App Validator


Command Line
Usage:
APPVALIDATOR [OPTION[PRM]]...
APPVALIDATOR [OPTION[PRM]]... -input [FILE] [OPTION[PRM]]...

Options:
-sdk SDKPATH             Specify an Android SDK to be used during validation instead of the default one
-c CHK [PRM]             Specify a checker to be run by supplying its ID (CHK) and specific checker parameters (PRM).
-dc CHK[.CND]            Specify a checker or condition that should not run by supplying its ID. The other checkers will run normally.
-d [DEV]                 Specify a device that will be checked against your application for incompatibilities. Use 'none' to skip.
-wx [CHK[.CND]]          Increases the warning level for all or for a particular set of checkers or conditions specified by CHK and CND IDs
-xw [CHK[.CND]]          Decreases warning level for all or for the particular set of checkers or conditions specified by CHK and CND IDs
-output [TYPE]           Format output to the specified type. TYPE can be [text (default) | csv | xml].
-limit [COUNT]           Limit the number of output entries.
-list-checkers           List available checkers
-list-devices            List available devices
-describe-device [DEV]   Show information about a specific device
-help [CHK]              See information about general usage or about a checker by specifying its ID (CHK)
-vN                      Specify verbosity level, where N is one of: 0 (default, most succinct), 1, 2 (most verbose)
-wN                      Specify warning level, where N is one of: 0 (most severe warnings only), 1, 2 (default), 3, 4 (all warnings)




     © 2012 Motorola Mobility, Inc.                                                                                      #appval         19
Improving Enterprise Application Quality with MOTODEV App Validator


CSV output

appvalidator -input demo.apk -w4 output csv > foo.csv

type      checker_id      condition   description                                       file             suggestion
WARNING   codeChecker     openedCurso The cursor c at                                   comdemoapp Make sure that all cursors are closed to
                          rs          "com.demoapp.MainActivity.onCreate" does          MainActivity.jav avoid problems during app execution.
                                      not seem to be closed. 1 instance(s) using this   a
                                      variable were not closed."
WARNING   layout          missingId   The following ID was not defined in your layout   reslayout-     Add the missing ID to the layout file.
                                      file: myText"."                                   xlargemain.xml
WARNING   missingDrawable missingDraw Folder drawable-xhdpi" does not exist."           res              Create the drawable-xhdpi" folder inside
          Resources       ableFolders                                                                    the "res" folder and add the appropriate
                                                                                                         drawables to it."




    © 2012 Motorola Mobility, Inc.                                                                                                 #appval          20
Demo
App Validator @ MOTODEV
   moto.ly/webvalidator
Improving Enterprise Application Quality with MOTODEV App Validator


MOTODEV Testing Programs




• Online App Validator
  – http://moto.ly/webvalidator




• MOTOREADY App Testing for Motorola XOOM™
  • http://developer.motorola.com/testing/motoready/

   © 2012 Motorola Mobility, Inc.                                                     #appval   22
Improving Enterprise Application Quality with MOTODEV App Validator


MOTODEV App Validator SDK

• Extend the App Validator to add checkers and conditons that
  meet your own criteria
• Download the SDK at http://moto.ly/mdsdl
• Install guide at http://moto.ly/appvalsdkinstall
• Installs into MOTODEV Studio or Eclipse (requires PDE)
• Supported on the MOTODEV discussion boards
  – http://moto.ly/studiodb



  © 2012 Motorola Mobility, Inc.                                                     #appval   23
Improving Enterprise Application Quality with MOTODEV App Validator


MOTODEV App Validator SDK

• Context-aware API reference while editing and offline HTML
  Javadoc documentation
• Requires Eclipse and Java experience
  • Implement one method to get started
  • Operates on APKs and Eclipse projects
• Two samples for developers to begin their own work
  • findviewbyid – Search for calls to findViewById() that are within loops
  • androidlabel – Ensures that android:label in AndroidManifest.xml has a
    specific value or pattern

  © 2012 Motorola Mobility, Inc.                                                     #appval   24
Improving Enterprise Application Quality with MOTODEV App Validator


Thank you

• Slides available at slideshare.net/motodev later today
• “Office hours” with the MOTODEV Tools team and developer
  support members, February 15, 1:00 PM PT (21:00 UTC)
• Follow-up email, including a link to the recording, to registered
  attendees
• Q&A



   © 2012 Motorola Mobility, Inc.                                                     #appval   25

More Related Content

What's hot

The ultimate guide to mobile app testing with appium
The ultimate guide to mobile app testing with appiumThe ultimate guide to mobile app testing with appium
The ultimate guide to mobile app testing with appiumheadspin2
 
Everything You Need to Know About Testing Foldable Phones
Everything You Need to Know About Testing Foldable PhonesEverything You Need to Know About Testing Foldable Phones
Everything You Need to Know About Testing Foldable PhonesPerfecto by Perforce
 
Keeping Your Continuous Test Automation Suites Continuously Valuable in DevOps
Keeping Your Continuous Test Automation Suites Continuously Valuable in DevOpsKeeping Your Continuous Test Automation Suites Continuously Valuable in DevOps
Keeping Your Continuous Test Automation Suites Continuously Valuable in DevOpsPerfecto by Perforce
 
5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & Testing5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & TestingPerfecto by Perforce
 
Learn how to develop an application using SAP Mobile Platform SDK 3.0 for Win...
Learn how to develop an application using SAP Mobile Platform SDK 3.0 for Win...Learn how to develop an application using SAP Mobile Platform SDK 3.0 for Win...
Learn how to develop an application using SAP Mobile Platform SDK 3.0 for Win...Innovapptive Global Solutions Pvt Ltd.
 
Abinash Sahu with 5years6months java exp
Abinash Sahu with 5years6months  java expAbinash Sahu with 5years6months  java exp
Abinash Sahu with 5years6months java expAbinash Sahu
 
Accelerating Digital Transformation With API Lifecycle & Test Automation
Accelerating Digital Transformation With API Lifecycle & Test AutomationAccelerating Digital Transformation With API Lifecycle & Test Automation
Accelerating Digital Transformation With API Lifecycle & Test AutomationPerfecto by Perforce
 
Virgin Media's Mobile Quality Transformation
Virgin Media's Mobile Quality TransformationVirgin Media's Mobile Quality Transformation
Virgin Media's Mobile Quality TransformationPerfecto by Perforce
 
Cordova Mobile Application Developer Certification
Cordova Mobile Application Developer CertificationCordova Mobile Application Developer Certification
Cordova Mobile Application Developer CertificationVskills
 
introduction of application certification
introduction of application certificationintroduction of application certification
introduction of application certificationSamsung
 
Whitepaper KidoZen overview
Whitepaper KidoZen  overviewWhitepaper KidoZen  overview
Whitepaper KidoZen overviewkidozen
 
React native vs react js
React native vs react jsReact native vs react js
React native vs react jsJessica655282
 
How to increase the ui performance of apps designed using react
How to increase the ui performance of apps designed using react How to increase the ui performance of apps designed using react
How to increase the ui performance of apps designed using react MoonTechnolabsPvtLtd
 
What makes xamarin the best choice for multiplatform app development
What makes xamarin the best choice for multiplatform app development What makes xamarin the best choice for multiplatform app development
What makes xamarin the best choice for multiplatform app development MoonTechnolabsPvtLtd
 
O uso de tecnologias Intel na implantação de sistemas de alto desempenho
O uso de tecnologias Intel na implantação de sistemas de alto desempenhoO uso de tecnologias Intel na implantação de sistemas de alto desempenho
O uso de tecnologias Intel na implantação de sistemas de alto desempenhoIntel Software Brasil
 
Angular 12 brought several new features to the table
Angular 12 brought several new features to the tableAngular 12 brought several new features to the table
Angular 12 brought several new features to the tableMoon Technolabs Pvt. Ltd.
 
6 tips for choosing the right app testing tool
6 tips for choosing the right app testing tool6 tips for choosing the right app testing tool
6 tips for choosing the right app testing toolheadspin2
 

What's hot (20)

The ultimate guide to mobile app testing with appium
The ultimate guide to mobile app testing with appiumThe ultimate guide to mobile app testing with appium
The ultimate guide to mobile app testing with appium
 
Everything You Need to Know About Testing Foldable Phones
Everything You Need to Know About Testing Foldable PhonesEverything You Need to Know About Testing Foldable Phones
Everything You Need to Know About Testing Foldable Phones
 
Android 2.1-cdd
Android 2.1-cddAndroid 2.1-cdd
Android 2.1-cdd
 
Keeping Your Continuous Test Automation Suites Continuously Valuable in DevOps
Keeping Your Continuous Test Automation Suites Continuously Valuable in DevOpsKeeping Your Continuous Test Automation Suites Continuously Valuable in DevOps
Keeping Your Continuous Test Automation Suites Continuously Valuable in DevOps
 
5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & Testing5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & Testing
 
Sagar Aggarwal_1
Sagar Aggarwal_1Sagar Aggarwal_1
Sagar Aggarwal_1
 
Learn how to develop an application using SAP Mobile Platform SDK 3.0 for Win...
Learn how to develop an application using SAP Mobile Platform SDK 3.0 for Win...Learn how to develop an application using SAP Mobile Platform SDK 3.0 for Win...
Learn how to develop an application using SAP Mobile Platform SDK 3.0 for Win...
 
Abinash Sahu with 5years6months java exp
Abinash Sahu with 5years6months  java expAbinash Sahu with 5years6months  java exp
Abinash Sahu with 5years6months java exp
 
Madhusmita mohanty_MohantyCV
Madhusmita mohanty_MohantyCVMadhusmita mohanty_MohantyCV
Madhusmita mohanty_MohantyCV
 
Accelerating Digital Transformation With API Lifecycle & Test Automation
Accelerating Digital Transformation With API Lifecycle & Test AutomationAccelerating Digital Transformation With API Lifecycle & Test Automation
Accelerating Digital Transformation With API Lifecycle & Test Automation
 
Virgin Media's Mobile Quality Transformation
Virgin Media's Mobile Quality TransformationVirgin Media's Mobile Quality Transformation
Virgin Media's Mobile Quality Transformation
 
Cordova Mobile Application Developer Certification
Cordova Mobile Application Developer CertificationCordova Mobile Application Developer Certification
Cordova Mobile Application Developer Certification
 
introduction of application certification
introduction of application certificationintroduction of application certification
introduction of application certification
 
Whitepaper KidoZen overview
Whitepaper KidoZen  overviewWhitepaper KidoZen  overview
Whitepaper KidoZen overview
 
React native vs react js
React native vs react jsReact native vs react js
React native vs react js
 
How to increase the ui performance of apps designed using react
How to increase the ui performance of apps designed using react How to increase the ui performance of apps designed using react
How to increase the ui performance of apps designed using react
 
What makes xamarin the best choice for multiplatform app development
What makes xamarin the best choice for multiplatform app development What makes xamarin the best choice for multiplatform app development
What makes xamarin the best choice for multiplatform app development
 
O uso de tecnologias Intel na implantação de sistemas de alto desempenho
O uso de tecnologias Intel na implantação de sistemas de alto desempenhoO uso de tecnologias Intel na implantação de sistemas de alto desempenho
O uso de tecnologias Intel na implantação de sistemas de alto desempenho
 
Angular 12 brought several new features to the table
Angular 12 brought several new features to the tableAngular 12 brought several new features to the table
Angular 12 brought several new features to the table
 
6 tips for choosing the right app testing tool
6 tips for choosing the right app testing tool6 tips for choosing the right app testing tool
6 tips for choosing the right app testing tool
 

Viewers also liked

Get a grip_dutch
Get a grip_dutchGet a grip_dutch
Get a grip_dutchjonton
 
PRÁCTICAS SOCIALES DEL LENGUAJE: "CURSO"
PRÁCTICAS SOCIALES DEL LENGUAJE: "CURSO"PRÁCTICAS SOCIALES DEL LENGUAJE: "CURSO"
PRÁCTICAS SOCIALES DEL LENGUAJE: "CURSO"alejandramolinav
 
Karim Makeen's CV (airline)
Karim Makeen's CV (airline)Karim Makeen's CV (airline)
Karim Makeen's CV (airline)Karim Makeen
 
Cinéticas de crecimiento y consumo de nutrientes de microalgas en aguas resid...
Cinéticas de crecimiento y consumo de nutrientes de microalgas en aguas resid...Cinéticas de crecimiento y consumo de nutrientes de microalgas en aguas resid...
Cinéticas de crecimiento y consumo de nutrientes de microalgas en aguas resid...Hianara Garcia
 
La Inteligencia Competitiva en las Multinacionales Catalanas (2004)
La Inteligencia Competitiva en las Multinacionales Catalanas (2004)La Inteligencia Competitiva en las Multinacionales Catalanas (2004)
La Inteligencia Competitiva en las Multinacionales Catalanas (2004)miniera
 
Santiago sánchez-plan-de-vida-
Santiago sánchez-plan-de-vida-Santiago sánchez-plan-de-vida-
Santiago sánchez-plan-de-vida-sandra campaña
 
Shooting schedule & risk assessment
Shooting schedule & risk assessmentShooting schedule & risk assessment
Shooting schedule & risk assessmentAlanSmith96
 
Aeroponic presentation
Aeroponic presentationAeroponic presentation
Aeroponic presentationSamson Ogbole
 
Ejercicios de aprendizaje Johana Burgos
Ejercicios de aprendizaje Johana BurgosEjercicios de aprendizaje Johana Burgos
Ejercicios de aprendizaje Johana Burgosdocumentos
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Viewers also liked (18)

Get a grip_dutch
Get a grip_dutchGet a grip_dutch
Get a grip_dutch
 
PRÁCTICAS SOCIALES DEL LENGUAJE: "CURSO"
PRÁCTICAS SOCIALES DEL LENGUAJE: "CURSO"PRÁCTICAS SOCIALES DEL LENGUAJE: "CURSO"
PRÁCTICAS SOCIALES DEL LENGUAJE: "CURSO"
 
Karim Makeen's CV (airline)
Karim Makeen's CV (airline)Karim Makeen's CV (airline)
Karim Makeen's CV (airline)
 
Tds tutorial
Tds tutorialTds tutorial
Tds tutorial
 
Tecnologiasnaescola
TecnologiasnaescolaTecnologiasnaescola
Tecnologiasnaescola
 
Cinéticas de crecimiento y consumo de nutrientes de microalgas en aguas resid...
Cinéticas de crecimiento y consumo de nutrientes de microalgas en aguas resid...Cinéticas de crecimiento y consumo de nutrientes de microalgas en aguas resid...
Cinéticas de crecimiento y consumo de nutrientes de microalgas en aguas resid...
 
La Inteligencia Competitiva en las Multinacionales Catalanas (2004)
La Inteligencia Competitiva en las Multinacionales Catalanas (2004)La Inteligencia Competitiva en las Multinacionales Catalanas (2004)
La Inteligencia Competitiva en las Multinacionales Catalanas (2004)
 
Santiago sánchez-plan-de-vida-
Santiago sánchez-plan-de-vida-Santiago sánchez-plan-de-vida-
Santiago sánchez-plan-de-vida-
 
SFislington16
SFislington16SFislington16
SFislington16
 
transcript
transcripttranscript
transcript
 
Shooting schedule & risk assessment
Shooting schedule & risk assessmentShooting schedule & risk assessment
Shooting schedule & risk assessment
 
Current CV Oct 16
Current CV Oct 16Current CV Oct 16
Current CV Oct 16
 
Aeroponic presentation
Aeroponic presentationAeroponic presentation
Aeroponic presentation
 
Fiebre icterico hemorragica, Alejandro Granada
Fiebre icterico hemorragica, Alejandro GranadaFiebre icterico hemorragica, Alejandro Granada
Fiebre icterico hemorragica, Alejandro Granada
 
Psl
Psl Psl
Psl
 
Ejercicios de aprendizaje Johana Burgos
Ejercicios de aprendizaje Johana BurgosEjercicios de aprendizaje Johana Burgos
Ejercicios de aprendizaje Johana Burgos
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar to MOTODEV App Validator

Mobile testingartifacts
Mobile testingartifactsMobile testingartifacts
Mobile testingartifactsPragya Rastogi
 
Android introduction
Android introductionAndroid introduction
Android introductionperpetrotech
 
Complete Visibility into Docker Containers with AppDynamics
Complete Visibility into Docker Containers with AppDynamicsComplete Visibility into Docker Containers with AppDynamics
Complete Visibility into Docker Containers with AppDynamicsAppDynamics
 
001-Mobile Application.pptx
001-Mobile Application.pptx001-Mobile Application.pptx
001-Mobile Application.pptxAhmedDarre
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programmingPERKYTORIALS
 
Build once deploy everywhere using the telerik platform
Build once deploy everywhere using the telerik platformBuild once deploy everywhere using the telerik platform
Build once deploy everywhere using the telerik platformAspenware
 
Porting business apps to Windows Phone
Porting business apps to Windows PhonePorting business apps to Windows Phone
Porting business apps to Windows PhoneMichele Capra
 
Rhomobile 5.5 Release Notes
Rhomobile 5.5 Release NotesRhomobile 5.5 Release Notes
Rhomobile 5.5 Release NotesKonstantin Rybas
 
Best Android Frameworks For App Development In 2023.pdf
Best Android Frameworks For App Development In 2023.pdfBest Android Frameworks For App Development In 2023.pdf
Best Android Frameworks For App Development In 2023.pdfchristiemarie4
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMoataz Nabil
 
SandeepKumarPadhi Android 2plusYears EXP Updated
SandeepKumarPadhi Android 2plusYears EXP UpdatedSandeepKumarPadhi Android 2plusYears EXP Updated
SandeepKumarPadhi Android 2plusYears EXP Updatedsandeep kumar padhi
 
Kiran Bashyam_QA_ Resume
Kiran Bashyam_QA_ ResumeKiran Bashyam_QA_ Resume
Kiran Bashyam_QA_ Resumekiran B
 
10 important points of android app development to keep in mind
10 important points of android app development to keep in mind10 important points of android app development to keep in mind
10 important points of android app development to keep in mindMoon Technolabs Pvt. Ltd.
 
Best android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdfBest android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdfLaura Miller
 
React Native Market Overview for Cross-Platform App Development.pdf
React Native Market Overview for Cross-Platform App Development.pdfReact Native Market Overview for Cross-Platform App Development.pdf
React Native Market Overview for Cross-Platform App Development.pdfTechugo
 
10 Best Tips for Android App Development
10 Best Tips for Android App Development10 Best Tips for Android App Development
10 Best Tips for Android App DevelopmentExpert App Devs
 
7 Essential Steps to Follow for Successful App Development.
7 Essential Steps to Follow for Successful App Development.7 Essential Steps to Follow for Successful App Development.
7 Essential Steps to Follow for Successful App Development.Techugo
 

Similar to MOTODEV App Validator (20)

Mobile testingartifacts
Mobile testingartifactsMobile testingartifacts
Mobile testingartifacts
 
Android introduction
Android introductionAndroid introduction
Android introduction
 
Complete Visibility into Docker Containers with AppDynamics
Complete Visibility into Docker Containers with AppDynamicsComplete Visibility into Docker Containers with AppDynamics
Complete Visibility into Docker Containers with AppDynamics
 
001-Mobile Application.pptx
001-Mobile Application.pptx001-Mobile Application.pptx
001-Mobile Application.pptx
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programming
 
Build once deploy everywhere using the telerik platform
Build once deploy everywhere using the telerik platformBuild once deploy everywhere using the telerik platform
Build once deploy everywhere using the telerik platform
 
Porting business apps to Windows Phone
Porting business apps to Windows PhonePorting business apps to Windows Phone
Porting business apps to Windows Phone
 
Anurag Gautam
Anurag GautamAnurag Gautam
Anurag Gautam
 
Rhomobile 5.5 Release Notes
Rhomobile 5.5 Release NotesRhomobile 5.5 Release Notes
Rhomobile 5.5 Release Notes
 
Neev mobile offerings
Neev mobile offeringsNeev mobile offerings
Neev mobile offerings
 
Best Android Frameworks For App Development In 2023.pdf
Best Android Frameworks For App Development In 2023.pdfBest Android Frameworks For App Development In 2023.pdf
Best Android Frameworks For App Development In 2023.pdf
 
Accemy projects portfolio 20 jan20
Accemy projects portfolio 20 jan20Accemy projects portfolio 20 jan20
Accemy projects portfolio 20 jan20
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and Docker
 
SandeepKumarPadhi Android 2plusYears EXP Updated
SandeepKumarPadhi Android 2plusYears EXP UpdatedSandeepKumarPadhi Android 2plusYears EXP Updated
SandeepKumarPadhi Android 2plusYears EXP Updated
 
Kiran Bashyam_QA_ Resume
Kiran Bashyam_QA_ ResumeKiran Bashyam_QA_ Resume
Kiran Bashyam_QA_ Resume
 
10 important points of android app development to keep in mind
10 important points of android app development to keep in mind10 important points of android app development to keep in mind
10 important points of android app development to keep in mind
 
Best android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdfBest android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdf
 
React Native Market Overview for Cross-Platform App Development.pdf
React Native Market Overview for Cross-Platform App Development.pdfReact Native Market Overview for Cross-Platform App Development.pdf
React Native Market Overview for Cross-Platform App Development.pdf
 
10 Best Tips for Android App Development
10 Best Tips for Android App Development10 Best Tips for Android App Development
10 Best Tips for Android App Development
 
7 Essential Steps to Follow for Successful App Development.
7 Essential Steps to Follow for Successful App Development.7 Essential Steps to Follow for Successful App Development.
7 Essential Steps to Follow for Successful App Development.
 

More from Motorola Mobility - MOTODEV

HTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureHTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureMotorola Mobility - MOTODEV
 
Getting Your App Discovered: Android Market & Beyond
Getting Your App Discovered: Android Market & BeyondGetting Your App Discovered: Android Market & Beyond
Getting Your App Discovered: Android Market & BeyondMotorola Mobility - MOTODEV
 
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Motorola Mobility - MOTODEV
 
Consejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tabletsConsejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tabletsMotorola Mobility - MOTODEV
 
Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas Motorola Mobility - MOTODEV
 
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuarioCómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuarioMotorola Mobility - MOTODEV
 
Gráficos cada vez mais rápidos utilização de NDK e Renderscript
Gráficos cada vez mais rápidos utilização de NDK e RenderscriptGráficos cada vez mais rápidos utilização de NDK e Renderscript
Gráficos cada vez mais rápidos utilização de NDK e RenderscriptMotorola Mobility - MOTODEV
 
Como integrar qualidade aos seus aplicativos através de testes
Como integrar qualidade aos seus aplicativos através de testesComo integrar qualidade aos seus aplicativos através de testes
Como integrar qualidade aos seus aplicativos através de testesMotorola Mobility - MOTODEV
 

More from Motorola Mobility - MOTODEV (20)

HTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the FutureHTML5 vs Native Android: Smart Enterprises for the Future
HTML5 vs Native Android: Smart Enterprises for the Future
 
The Enterprise Dilemma: Native vs. Web
The Enterprise Dilemma: Native vs. WebThe Enterprise Dilemma: Native vs. Web
The Enterprise Dilemma: Native vs. Web
 
Kill the Laptop!
Kill the Laptop!Kill the Laptop!
Kill the Laptop!
 
Beautifully Usable, Multiple Screens Too
Beautifully Usable, Multiple Screens TooBeautifully Usable, Multiple Screens Too
Beautifully Usable, Multiple Screens Too
 
Getting the Magic on Android Tablets
Getting the Magic on Android TabletsGetting the Magic on Android Tablets
Getting the Magic on Android Tablets
 
Getting Your App Discovered: Android Market & Beyond
Getting Your App Discovered: Android Market & BeyondGetting Your App Discovered: Android Market & Beyond
Getting Your App Discovered: Android Market & Beyond
 
Introducing Fragments
Introducing FragmentsIntroducing Fragments
Introducing Fragments
 
Taking Advantage of Webtop
Taking Advantage of WebtopTaking Advantage of Webtop
Taking Advantage of Webtop
 
Building Quality Into Your Apps Through Testing
Building Quality Into Your Apps Through TestingBuilding Quality Into Your Apps Through Testing
Building Quality Into Your Apps Through Testing
 
Top Tips for Android UIs
Top Tips for Android UIsTop Tips for Android UIs
Top Tips for Android UIs
 
Designing Apps for Motorla Xoom Tablet
Designing Apps for Motorla Xoom TabletDesigning Apps for Motorla Xoom Tablet
Designing Apps for Motorla Xoom Tablet
 
Diseñando aplicaciones para el Motorola XOOM
Diseñando aplicaciones para el Motorola XOOM Diseñando aplicaciones para el Motorola XOOM
Diseñando aplicaciones para el Motorola XOOM
 
Presentación de los fragmentos
Presentación de los fragmentos Presentación de los fragmentos
Presentación de los fragmentos
 
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
Gráficos cada vez más rápidos. Cómo usar NDK y RenderScript
 
Consejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tabletsConsejos principales para Android UI Cómo alcanzar la magia en los tablets
Consejos principales para Android UI Cómo alcanzar la magia en los tablets
 
Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas Cómo agregar calidad a sus aplicaciones mediante pruebas
Cómo agregar calidad a sus aplicaciones mediante pruebas
 
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuarioCómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
Cómo aprovechar Webtop Cómo HTML5 mejora la experiencia del usuario
 
Principais dicas para UIs do Android
Principais dicas para UIs do AndroidPrincipais dicas para UIs do Android
Principais dicas para UIs do Android
 
Gráficos cada vez mais rápidos utilização de NDK e Renderscript
Gráficos cada vez mais rápidos utilização de NDK e RenderscriptGráficos cada vez mais rápidos utilização de NDK e Renderscript
Gráficos cada vez mais rápidos utilização de NDK e Renderscript
 
Como integrar qualidade aos seus aplicativos através de testes
Como integrar qualidade aos seus aplicativos através de testesComo integrar qualidade aos seus aplicativos através de testes
Como integrar qualidade aos seus aplicativos através de testes
 

Recently uploaded

Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 

Recently uploaded (20)

Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 

MOTODEV App Validator

  • 1. Improving Enterprise Application Quality with MOTODEV App Validator Eric Cloninger (ericc@motorola.com) Product Line Manager, Development Tools #appval MOTOROLA and the Stylized M Logo are trademarks or registered trademarks of Motorola Trademark Holdings, LLC. All other trademarks are the property of their respective owners. © 2012 Motorola Mobility, Inc. All rights reserved. moto.ly/appvalint
  • 2. Improving Enterprise Application Quality with MOTODEV App Validator Agenda • Asset management in an Android project • The Matrix of Pain • The MOTODEV App Validator • Extending the MOTODEV App Validator • Q&A © 2012 Motorola Mobility, Inc. #appval 2
  • 3. Improving Enterprise Application Quality with MOTODEV App Validator Asset Management in Android • An Android app (“APK”, aka “application package”) is a container for both code and non-code assets • An app can have multiple copies of the same asset • Applies to images, menus, strings, layouts, sounds, icons, etc. • The Android runtime has an algorithm that determines the best resource to use based on location, carrier, language, display, screen orientation, dock status, keyboard availability, etc. © 2012 Motorola Mobility, Inc. #appval 3
  • 4. Improving Enterprise Application Quality with MOTODEV App Validator Structure of a simple Android App project AwesomeApp.APK © 2012 Motorola Mobility, Inc. #appval 4
  • 5. Improving Enterprise Application Quality with MOTODEV App Validator © 2012 Motorola Mobility, Inc. #appval 5
  • 6. Improving Enterprise Application Quality with MOTODEV App Validator © 2012 Motorola Mobility, Inc. #appval 6
  • 7. Improving Enterprise Application Quality with MOTODEV App Validator The Matrix of Pain © 2012 Motorola Mobility, Inc. #appval 7
  • 8. Improving Enterprise Application Quality with MOTODEV App Validator Statistics http://bit.ly/fxFY7P Platform Codename API Level Distribution Android 1.5 Cupcake 3 0.6% Android 1.6 Donut 4 1.1% Android 2.1 Eclair 7 8.5% Android 2.2 Froyo 8 30.4% Android 2.3 - Gingerbread 9 0.6% Android 2.3.2 Android 2.3.3 - 10 54.9% Android 2.3.7 Android 3.0 Honeycomb 11 0.1% Android 3.1 12 1.5% Android 3.2 13 1.7% Android 4.0 - Ice Cream 14 0.3% Data collected during a 14-day period Android 4.0.2 Sandwich 15 0.3% ending on January 3, 2012 Android 4.0.3 © 2012 Motorola Mobility, Inc. #appval 8
  • 9. Improving Enterprise Application Quality with MOTODEV App Validator Statistics, cont’d http://bit.ly/AfeZHn ldpi mdpi hdpi xhdpi small 1.3% 2.9% normal 1.0% 17.5% 71% large 0.1% 3.1% xlarge 3.1% Data collected during a 14-day period ending on January 3, 2012 © 2012 Motorola Mobility, Inc. #appval 9
  • 10. Improving Enterprise Application Quality with MOTODEV App Validator Sparse Matrix. Less pain, more risk. © 2012 Motorola Mobility, Inc. #appval 10
  • 11. Improving Enterprise Application Quality with MOTODEV App Validator Static Analysis • Solves a different problem set than runtime tests • Finds “Matrix of Pain” issues that runtime tests don‟t • Catches errors early in the development cycle • Automatable / scriptable systems © 2012 Motorola Mobility, Inc. #appval 11
  • 13. Improving Enterprise Application Quality with MOTODEV App Validator MOTODEV App Validator • Free static analysis tool that runs on Mac, Windows, and Linux • Available as Eclipse plugins, a stand-alone command line tool, and as a drag-and-drop web app • Operates on .APK files as well as contents of Eclipse projects • Highly customizable for your needs • Generates output as text, CSV, or XML for easy integration into existing development processes • Download at http://moto.ly/mdsdl © 2012 Motorola Mobility, Inc. #appval 13
  • 14. Improving Enterprise Application Quality with MOTODEV App Validator MOTODEV App Validator – What it does • Determines if an app requests too few or too many permissions • Reports missing localized or default strings and missing drawable resources • Discovers duplicate IDs in layouts • Code problems (e.g. open database cursors that aren‟t closed) • 35 unique conditions tested, described at the MOTODEV site – http://moto.ly/appvaldocs – More checkers and conditions added with each release © 2012 Motorola Mobility, Inc. #appval 14
  • 15. Demo App Validator & MOTODEV Studio
  • 16. Improving Enterprise Application Quality with MOTODEV App Validator MOTODEV App Validator – How it works • Decomposes an Android application into its “file system” • Examines the app manifest for improper values • Decompiles Java code in the APK and examines code patterns • Compares values of Android APIs parameters against the contents of resource directories • Compares an app against device specifications to find issues that might occur on certain devices © 2012 Motorola Mobility, Inc. #appval 16
  • 17. Improving Enterprise Application Quality with MOTODEV App Validator App Validator vs. lint • App Validator is a pre-flighting tool, meant to be your “last set of eyes” before you deploy your app • lint is an improvement on the existing SDK tool called „layoutopt‟, which is intended for iterative improvement of your user interface • Use lint during layout, design and coding • Use App Validator while coding and before deploying to users or the Android Market © 2012 Motorola Mobility, Inc. #appval 17
  • 18. Demo App Validator on the command line
  • 19. Improving Enterprise Application Quality with MOTODEV App Validator Command Line Usage: APPVALIDATOR [OPTION[PRM]]... APPVALIDATOR [OPTION[PRM]]... -input [FILE] [OPTION[PRM]]... Options: -sdk SDKPATH Specify an Android SDK to be used during validation instead of the default one -c CHK [PRM] Specify a checker to be run by supplying its ID (CHK) and specific checker parameters (PRM). -dc CHK[.CND] Specify a checker or condition that should not run by supplying its ID. The other checkers will run normally. -d [DEV] Specify a device that will be checked against your application for incompatibilities. Use 'none' to skip. -wx [CHK[.CND]] Increases the warning level for all or for a particular set of checkers or conditions specified by CHK and CND IDs -xw [CHK[.CND]] Decreases warning level for all or for the particular set of checkers or conditions specified by CHK and CND IDs -output [TYPE] Format output to the specified type. TYPE can be [text (default) | csv | xml]. -limit [COUNT] Limit the number of output entries. -list-checkers List available checkers -list-devices List available devices -describe-device [DEV] Show information about a specific device -help [CHK] See information about general usage or about a checker by specifying its ID (CHK) -vN Specify verbosity level, where N is one of: 0 (default, most succinct), 1, 2 (most verbose) -wN Specify warning level, where N is one of: 0 (most severe warnings only), 1, 2 (default), 3, 4 (all warnings) © 2012 Motorola Mobility, Inc. #appval 19
  • 20. Improving Enterprise Application Quality with MOTODEV App Validator CSV output appvalidator -input demo.apk -w4 output csv > foo.csv type checker_id condition description file suggestion WARNING codeChecker openedCurso The cursor c at comdemoapp Make sure that all cursors are closed to rs "com.demoapp.MainActivity.onCreate" does MainActivity.jav avoid problems during app execution. not seem to be closed. 1 instance(s) using this a variable were not closed." WARNING layout missingId The following ID was not defined in your layout reslayout- Add the missing ID to the layout file. file: myText"." xlargemain.xml WARNING missingDrawable missingDraw Folder drawable-xhdpi" does not exist." res Create the drawable-xhdpi" folder inside Resources ableFolders the "res" folder and add the appropriate drawables to it." © 2012 Motorola Mobility, Inc. #appval 20
  • 21. Demo App Validator @ MOTODEV moto.ly/webvalidator
  • 22. Improving Enterprise Application Quality with MOTODEV App Validator MOTODEV Testing Programs • Online App Validator – http://moto.ly/webvalidator • MOTOREADY App Testing for Motorola XOOM™ • http://developer.motorola.com/testing/motoready/ © 2012 Motorola Mobility, Inc. #appval 22
  • 23. Improving Enterprise Application Quality with MOTODEV App Validator MOTODEV App Validator SDK • Extend the App Validator to add checkers and conditons that meet your own criteria • Download the SDK at http://moto.ly/mdsdl • Install guide at http://moto.ly/appvalsdkinstall • Installs into MOTODEV Studio or Eclipse (requires PDE) • Supported on the MOTODEV discussion boards – http://moto.ly/studiodb © 2012 Motorola Mobility, Inc. #appval 23
  • 24. Improving Enterprise Application Quality with MOTODEV App Validator MOTODEV App Validator SDK • Context-aware API reference while editing and offline HTML Javadoc documentation • Requires Eclipse and Java experience • Implement one method to get started • Operates on APKs and Eclipse projects • Two samples for developers to begin their own work • findviewbyid – Search for calls to findViewById() that are within loops • androidlabel – Ensures that android:label in AndroidManifest.xml has a specific value or pattern © 2012 Motorola Mobility, Inc. #appval 24
  • 25. Improving Enterprise Application Quality with MOTODEV App Validator Thank you • Slides available at slideshare.net/motodev later today • “Office hours” with the MOTODEV Tools team and developer support members, February 15, 1:00 PM PT (21:00 UTC) • Follow-up email, including a link to the recording, to registered attendees • Q&A © 2012 Motorola Mobility, Inc. #appval 25