introduction to android for quality engineers
Post on 14-Jul-2015
322 Views
Preview:
TRANSCRIPT
Introduction to Android for Quality
Engineers
Agenda
• Introduction
• Android Diversity
• The Android Experience
• Building Blocks ’Controls’
• First Things First
• Content
• App Reporting
• Google Play Listing
• Tips and Tricks
• UX Don’ts
• Inspiring Apps
Introduction
• A multi-screen world
• Android Domination
A multi-Screen world
Pope Benedict XVI
Pope Francis
Android+multi-screen world
• Powering tablets, mobiles and much more…
AOSP
Android Market Share
• #1 mobile OS
• Open platform
Android, 84%
iOS, 11.70%
Windows Phone, 2.50%
Blackberry, 0.50%
Others, 0.60%
IDC worldwide Smartphone Marketshare,Q2 2014
Android Diversity (AKA Fragmentation)
• Tailored Experiences
• Versions
• Versions distribution
• Screen sizes distribution
Tailored Experiences
TouchWiz
Tailored Experiences
Versions
9.1%
7%
7.8%
20.4%
21.3% 33.9%0.5%
4.1
4.2
4.3
2.3 4.0 4.4
Data collected during a 7-day period ending on December 1,
2014.
Screen Sizes
• Dips and PPI
UI UI UI
UI
UI
UI
Unit Units / physical inch Density independentSame physical size on every screen
px varies no no
in 1 yes yes
mm 25.4 yes yes
pt 72 yes yes
dp ~160 yes no
sp ~160 yes no
Screen Sizes
Screen Sizes Distributionldpi mdpi tvdpi hdpi xhdpi xxhdpi Total
Small 5.4% 5.4%
Normal 9.4% 0.2% 36.9% 18.8% 16.3% 81.6%
Large 0.5% 4.6% 2% 0.6% 0.6% 8.3%
Xlarge 3.8% 0.3% 0.6% 4.7%
Total 5.9% 17.8% 2.2% 37.8% 20% 16.3%
Data collected during a 7-day period ending on December 1, 2014.
The Android Experience
• OS UI
• Common app UI
• Responsiveness
• Icons
• Spacing
• Activity Lifecycle
OS UI
• System buttons
• System bars
• Apps
• Notifications
• Widgets
Common App UI
1. Main Action Bar
2. Navigation Drawer
3. Content Area
Responsiveness
• Button states
• Communication
• Boundaries
Icons
• Launcher: 3d effect
• Action bar: Flat, not too detailed
Icons
• Contextual icons: Neutral, flat
and simple
• Notifications icons: Like the launcher
icon yet flat and simple(white)
Spacing
How it works
• Activity
• Service
• Content provider
Activity States
Check activitydemo.apk for deeper understanding
Building Blocks ‘Controls’• Basic Controls
• Progress and Activity
• Dialogs
Basic Controls
Progress and Activity
Dialogs Clicking back dismisses the dialogs
First Things First
App Installation
App Onboarding
Top Level Navigation
Action Bar
App Installation
• From Play Store
• Side loading– Allow installation from unknown sources
– Install the apk directly
• Check the permissions
You can use: adb install ‘Path to apk’
Check app after moving to SDCard
App Onboarding
• Don’t require registration upfront
• Splash screens are not recommended
• Integrate with popular login providers
App Onboarding
• Display tips at the first use of
the application
• Help page->Action Bar
overflow or navigation drawer
Top Level Navigation
• Tabs
Top Level Navigation
• Spinner
Top Level Navigation
• Navigation
Drawer
Action Bar
• Structure
1. App icon
2. View control
3. Action buttons
4. Action overflow
Action Bar
• Split Action Bar
1. Main action bar
2. Top bar
3. Bottom bar
Action Bar
• Checklist
Use the FIT scheme
–Frequent
– Important
–Typical
Up vs. Back
• Up brings the home screen of the application
• Back brings the previous screen
Up vs. Back
• Special Cases
–A screen with multiple entry points
–The application is opened from a widget or a
notification
Overflow Button Behavior
• Old app(2.3-), new device
Overflow Button Behavior
• Phones with physical buttons
Overflow Button Behavior
• New app(4.0+), virtual navigation
Break
ContentLists and Grids
Contextual Action Bar
Action Shortcuts
Confirming and acknowledging
Swiping
Full Screen
Top Level Navigation
Action Bar
Views and Orientation
Lists & Grids
Contextual Action Bars
• Appears after long press on
an element
• Enters selection mode
• Dismissed by clicking back
Action Shortcuts
Confirming and Acknowledging
• Visual feedback
• Displaying a confirmation popup
• Displaying a toast to acknowledge
• Acknowledging an action with undo
Swiping
• Between tabs
• Between content
• Swiping to dismiss
Swiping
• Swipe to refresh
Swiping
• Sliding Up panel
Full Screen
• Lean Back
Full Screen
• Immersive
Full Screen
• Lights Out(4.0-4.3)
Combining Multiple Views
Compound Views and Orientation
• Stretch/compress
Adjust the column
width of your left pane
to achieve a balanced layout
The view is refreshed on changing the orientation
Compound Views and Orientation
• Stack
Rearrange the panels
on your screen
Compound Views and Orientation
• Expand/Collapse
collapse the left pane view
to only show the most
important information
Compound Views and Orientation
• Show/hide
Use the Up icon to show
the parent screen.
Compound Views and Orientation
• Sliding Pane layout
Cards
http://www.google.com/design/spec/components/cards.html
Notifications and widgets
Notifications
• Display important information
• Actionable(4.1+)
• Expandable(4.1+)
• Sorted by priority(4.1+)
Notifications
Structure
• The application's notification icon or the sender's
photo
• A notification title and message
• A timestamp
• A secondary icon
Notifications
Ongoing Notifications
Notifications
• Popup Notifications
Notifications
• Checklist
Actions should be essential(max:3)
Opens the app to the right place
Stacked if there are more than one notification
Widgets
• Showing important data
on the home screen
• Easy access to app
Widgets
Widget Types
• Information widgets
• Collection widgets
• Control widgets
• Hybrid widgets
Widgets
Guidelines
• Interaction by touch & Vertical
swipe
• Resizable
• Can fit on different screen sizes
• Configurable
App Reporting
Internal Error Reporting
• Extracting the error log
–Using Android ADT LogCat for all versions
–Using CatLog/alogCat for Android 4.0-
Top Crash Reporting Tools
Free Free
HTML5
HTML5
HTML5
Top App Analytics Tools
• Use analytics tools to track how the app is used
Free
Free
Free
Google Play Listing
Market Checklist
Alpha & Beta testing
Staged Rollout
Market Checklist
One APK/multiple APKs
Determine app distribution
Max size of apk: 50 MB
Expansion files
Free/priced
Listing Details
• Language
• Title
• Description
• Recent Changes
• Promo Text
• Application Type
• Category
Graphics for Play
• Screenshots(2 minimum)
• High Resolution app icon
• Feature Graphic(optional)
• Promotional Graphic(optional)
• Video link(optional)
Alpha & Beta Testing
• Alpha/beta test apps will appear only for testers
• Testers access the app from:
–Google+ Community
–Google Groups
Staged Rollout
• Updates rollout can start with a small percentage
of your userbase
• Monitor crashes and issues
• Fix issues and update affected users
Tips and Tricks• Common Issues
• Clear Data
• Compatibility
• RTL Support
• Lock Screen Widgets
• Process Stats
• Memory allocation
• Android Screenshooter
• Performance Check
• Stay Updated
Common Issues
• Sync
• Crash on opening from recents screen
• Crash on a call
• App drains battery
Common Issues
• Selection in the list view
• Keyboard + Popups
• App auto-sleep
Clear Data
• Restores the app to a working state
Compatibility
• Forward compatibility for new versions is
supported by Google.
• Backward compatibility can be handled.
RTL Support (4.2+)
Lock Screen Widgets(4.2+)
Process Stats(4.4)
BLE(4.3+)
• Effective connectivity
• Low power consumption
Performance Check
• Ram Read/Write speed
• Ram Size
• Internal Memory Read/Write speed
• Processor
• GPU
Memory Allocation
Screen Size Screen Density Application Memory
small / normal / large ldpi / mdpi 16 MB
small / normal / large tvdpi / hdpi 32 MB
small / normal / large xhdpi 64 MB
small / normal / large 400dpi 96 MB
small / normal /large xxhdpi 128 MB
xlarge mdpi 32 MB
xlarge tvdpi / hdpi 64 MB
xlarge xhdpi 128 MB
xlarge 400dpi 192 MB
xlarge xxhdpi 256 MB
This is the baseline for the max ram that OEMs can support per app. App will crash if it crossed this line.
Android Screenshooter
• Takes a screenshot, saves it to your pc and
deletes it from the device in seconds
https://github.com/faidy/AndroidScreenshooter/
Adb-multi-device-installer
• You can use it to install the same apk on multiple
devices connected to a mac at the same time
https://github.com/faidy/adb-multi-device-
installer/
Rooting(Not recommended)
• Rooting is getting super user access.
• It allows you to add hosts
• You can access the db of the tested app
Google Unification
This will change, check
Stay Updated
• Predict issues for new android versions
• Find new areas of enhancement
UX Don’ts
UX Don’ts
Blocking loading progress indicator
UX Don’ts
UX Don’ts
Always offer the option to explore the app without signing in
UX Don’ts
UX Don’ts
UX Don’ts
Back button doesn’t close the app
Inspiring Apps
Inspiring Apps
Using DDMS
Workshop
Thank You!Questions?
top related