SlideShare ist ein Scribd-Unternehmen logo
1 von 40
AT&T Application Resource Optimizer (ARO)
A Guide for Developers
Doug Sillars
Bill Weir
April 2015
Mobile Development Is Challenging
There are a lot of issues to consider…
 19,000 Android User Agents reported by Akamai
 There are Screen Size differences
 Processor/Memory constraints
 Battery constraints
 And there are constraints inherent in Wireless Networks
It isn’t easy!
Don’t Let Users Do Your Quality Control
44% of all issues are reported by users
20% issues were only found because of complaints in app reviews
34% of Users use ratings as primary influence in choosing an app
http://info.perfectomobile.com/rs/perfectomobile/images/why-apps-fail-infographic.pdf
Users Expect Things to Just Work
This was an actual tweet.
Defects vs. Performance
Is Performance REALLY that important? Yes!
https://t.co/7bMT4A1PIt
Top App Complaints from Consumers
1.User Interface Issues (58%)
2.Performance (52%)
3.Functionality (50%)
4.Device Compatibility (45%)
Performance Importance?
How Important is Speed and Responsiveness of Mobile Apps?
https://t.co/7bMT4A1PIt
From a Mobile
User Survey
conducted by
Dimensional
Research
How Fast Should an App Startup?
72%
<3 seconds
49%
<2 seconds
91%
<4 seconds
https://t.co/7bMT4A1PIt
From a Mobile
User Survey
conducted by
Dimensional
Research
Reactions to Poor Performance
Check Your App’s Performance
http://smarterappsguidelines.gsma.com/
http://knowmyapp.org/
http://www.appqualityalliance.org/aqua-performance-test-criteria
http://developer.att.com/application-resource-optimizer
http://tspace.web.att.com/files/app#/file/9ecf48ae-b5f7-4780-8672-8c53520c1fb3
Here Are Some Guidelines:
You Can Test Performance With ARO
 ARO Background
 ARO Manual Test (Demo!)
 ARO Analysis
 ARO Automation (NEW!)
Find The Issues Early With ARO
ARO Records and Analyzes Network Interactions of App
Network use
accounts for
40-70% of
battery drain!
ARO Requirements
• Open Source and Free
Developer.att.com/ARO
• Required for AT&T Preload apps
• iOS
- Requires iOS device tethered to Mac (with Xcode)
• Android
- Requires Android device tethered to Mac/PC (with
Android SDK)
Testing Your App With ARO
1. Move at a speed that emulates real users
2. Create flexible (yet reproducible) test cases
a. Test cases can even reflect more of a feature checklist
b. The Trace is not about the order of the features, but about the content
3. Likely Problem Areas
a. Startup
b. Streaming
4. Be Curious
a. If something seems odd, explore it
b. Screen rotation best practice came out of tester noticing the network
lighting up each time they turned the device
5. Background Data:
a. Run long test with app running in background
Live Demo of ARO Test
Demo Backup Slides
In ARO Analyzer App:
Start Data collector
Name the test
Capture Video or not
Demo Backup Slides
ARO establishes a VPN
connection on your Android
Device (click ok)
ARO shows Screen on your
computer (if video is being
recorded)
Click Stop to end ARO trace
Files copied to PC and
analyzed
ARO Analysis
All network traffic
mapped to processes
Stats about trace
Best Practices
ARO Simple Analysis
5 Best Practices Graded for Preloads:
1. Text File Compression
2. Duplicate Content
3. Closing Connections
4. Periodic Connections
5. GPS/Bluetooth
© 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks
contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific
company or entity is not an endorsement by AT&T.
AT&T Defect Metrics
Duplicate
Content
<5% of KB
5-20% of KB
20+% of KB
Periodic
Connections
0-20% of Power
20-50% of
Power
50+% of Power
GPS/BT
0-25% Active
(s)
25-65% Active
(s)
65+% Active
(s)
Text
Compression
100-500KB
500-1000KB
1000+KB
Closing
Connections
0-20% of Power
20-50% of
Power
50+% of Power
Sev 3
Sev 2
Sev 1
© 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks
contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific
company or entity is not an endorsement by AT&T.
Duplicate Content
AT&T preload says <5% is a pass.
This 2.8 KB file should be cached for 1 year. yet
downloaded twice in ~2 minutes.
Download Less Stuff: Caching
17% of HTTP content on mobile is duplicate data
– Reading from Cache is 75-99% faster than
downloading again
“Web Caching on Smartphones: Ideal vs. Reality”,
http://www.research.att.com/~sen/pub/Caching_mobisys12.pdf
6.7MB 6.7MB
4.8 MB duplicate!
75% possible
savings!
(data AND speed)
Caching Methods (How do I do it?)
ETags
Cache Control Headers
•Each file has a Unique Tag
•Revalidated on server for each request
– High Performance Web Sites:
Rule 1 – Make Fewer HTTP Requests (1)
– Adding a connection drains battery,
adds 500-3,000 ms latency
•Important to carefully assign Max-Age times
•App will not check file on server until Max-Age
is reached
– Retrieval is strictly file processing time
(1) http://developer.yahoo.com/blogs/ydn/posts/2007/04/rule_1_make_few/
Comparing ETag vs. Cache Control
Network Usage Battery Drain Data Usage Speed
NO Cache
YES entire file
downloaded
Full network
connection made
High Slowest
ETag
Yes – ETag in cache
is validated on server
Full network
connection
Low Slow
Cache Control No N/A N/A Fast
Any Caching is better than no caching, but for mobile, Cache Control is preferred
Closing Connections
< 20% Sev 3 defect
Blue Burst Color indicates
Packets closing connections
Closing Connections: CODE
MultiRes Sample app from Android SDK
– Modified to download images
HttpURLConnection getimagecloseconn = (HttpURLConnection)
urln.openConnection();
getimagecloseconn.setRequestProperty("connection", "close");
getimagecloseconn.connect();
String cachecontrol = getimagecloseconn.getHeaderField("Cache-Control");
InputStream isclose = getimagecloseconn.getInputStream();
bitmap = BitmapFactory.decodeStream(isclose);
getimagecloseconn.disconnect();
https://github.com/attdevsupport/ARO/tree/master/2013DevSummitTurbocharge
GPS/Bluetooth
< 25% Sev 3 defect
Green Color Indicates
active GPS usage
© 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks
contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific
company or entity is not an endorsement by AT&T.
GPS: AT&T DriveMode for Android
3 min
480 GPS connections/24hr
~20% Battery
© 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks
contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific
company or entity is not an endorsement by AT&T.
GPS: AT&T DriveMode for Android
Use activity APIs to identify when your users are in
motion
11 minute trace
DetectedActivity.IN_VEHICLEDetectedActivity.ON_BICYCLE:DetectedActivity.ON_FOOT:
http://commons.wikimedia.org/wiki/File:Baby_goats_jan_2007_crop.jpg
http://commons.wikimedia.org/wiki/File:Goat_in_a_car.jpg
http://commons.wikimedia.org/wiki/File:2009_goat_and_bicycle_in_India_6512003001.jpg
© 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks
contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific
company or entity is not an endorsement by AT&T.
Periodic Connections:
• We have a great new service
• But we need to poll every 30 seconds
• Is this bad for the network?
AT&T Sample App
© 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks
contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific
company or entity is not an endorsement by AT&T.
AT&T Sample App (cont.)
• 2 concurrent connections
• Extra Network utilization
• If your capacity is set on # of connections – it just got halved
© 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks
contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific
company or entity is not an endorsement by AT&T.
AT&T Sample App (cont.)
• Moved to persistent connection – is this better?
• 10 minutes = 20 connections 0.67% of battery
• 1 hour =120 connections 4% of battery
• 24 hours = 2880 connections 96.7% of battery
Text Compression
> 1MB% Sev 1 defect
Periodic Connections in the Background!
Background traffic
Many Apps wake up in the background to update data or
communicate with servers.
Just 10 background connections = 0.5% battery/day
And it adds up FAST!
Look at Android’s JobScheduler API (5.0 and up)
Background Traffic
AT&T Corp Email
Facebook
Exercise app
ARO Automation – Headless collection
Beta product: release planned July 2015
Command Line and Java APIs to run ARO
./aro --startcollector vpn_android --output /users/demo/MCoC_testing --video yes
ARO Automation – Analysis
• Open trace in Analyzer tool
• Analyze headlessly into JSON or HTML
./aro --analyze /users/demo/MCoC_testing --output
/users/demo/MCoC_testing/report.html --format html
ARO for Developers
• Performance testing is crucial
• Good tools and test plans are essential
• AT&T Application Resource Optimizer (ARO)
• Testing manually
• Testing with automation
• Analysis and filing bugs
© 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks
contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific
company or entity is not an endorsement by AT&T.
Q&A
http://smarterappsguidelines.gsma.com/
http://knowmyapp.org/
http://www.appqualityalliance.org/aqua-performance-test-criteria
http://developer.att.com/application-resource-optimizer
http://bit.ly/HighPerfAndroidApps

Weitere ähnliche Inhalte

Andere mochten auch

Business Intelligence as a Competitive Advantage - 2017020802
Business Intelligence as a Competitive Advantage - 2017020802Business Intelligence as a Competitive Advantage - 2017020802
Business Intelligence as a Competitive Advantage - 2017020802Daniel Trnka
 
Projects Titles on embedded
Projects Titles on embedded Projects Titles on embedded
Projects Titles on embedded Senthil Kumar
 
Power electronics projects
Power electronics projectsPower electronics projects
Power electronics projectsSenthil Kumar
 
STRATEGIC MANAGEMENT - DRGORAD
STRATEGIC MANAGEMENT - DRGORADSTRATEGIC MANAGEMENT - DRGORAD
STRATEGIC MANAGEMENT - DRGORADDeepak R Gorad
 
Communication projects
Communication projectsCommunication projects
Communication projectsSenthil Kumar
 
Economic dispatch using fuzzy logic
Economic dispatch using fuzzy logicEconomic dispatch using fuzzy logic
Economic dispatch using fuzzy logicSenthil Kumar
 
Embedded project list
Embedded project listEmbedded project list
Embedded project listSenthil Kumar
 
Embedded based water purification system - Electronics Projects
Embedded based water purification system - Electronics ProjectsEmbedded based water purification system - Electronics Projects
Embedded based water purification system - Electronics ProjectsSenthil Kumar
 
Como ser un gran maestro
Como ser un gran maestroComo ser un gran maestro
Como ser un gran maestroWerton Bastos
 
deepak gorad Final csr
deepak gorad Final csrdeepak gorad Final csr
deepak gorad Final csrDeepak R Gorad
 
Сомниум Нетворк журнал
Сомниум Нетворк журналСомниум Нетворк журнал
Сомниум Нетворк журналonlinesarabotok
 

Andere mochten auch (16)

Business Intelligence as a Competitive Advantage - 2017020802
Business Intelligence as a Competitive Advantage - 2017020802Business Intelligence as a Competitive Advantage - 2017020802
Business Intelligence as a Competitive Advantage - 2017020802
 
PPT
PPTPPT
PPT
 
Projects Titles on embedded
Projects Titles on embedded Projects Titles on embedded
Projects Titles on embedded
 
Power electronics projects
Power electronics projectsPower electronics projects
Power electronics projects
 
STRATEGIC MANAGEMENT - DRGORAD
STRATEGIC MANAGEMENT - DRGORADSTRATEGIC MANAGEMENT - DRGORAD
STRATEGIC MANAGEMENT - DRGORAD
 
Entrepreneurship
EntrepreneurshipEntrepreneurship
Entrepreneurship
 
Communication projects
Communication projectsCommunication projects
Communication projects
 
Economic dispatch using fuzzy logic
Economic dispatch using fuzzy logicEconomic dispatch using fuzzy logic
Economic dispatch using fuzzy logic
 
Electronicdevices
ElectronicdevicesElectronicdevices
Electronicdevices
 
Mscc抜粋版
Mscc抜粋版Mscc抜粋版
Mscc抜粋版
 
Embedded project list
Embedded project listEmbedded project list
Embedded project list
 
Embedded based water purification system - Electronics Projects
Embedded based water purification system - Electronics ProjectsEmbedded based water purification system - Electronics Projects
Embedded based water purification system - Electronics Projects
 
Como ser un gran maestro
Como ser un gran maestroComo ser un gran maestro
Como ser un gran maestro
 
deepak gorad Final csr
deepak gorad Final csrdeepak gorad Final csr
deepak gorad Final csr
 
Jeugd mar13
Jeugd mar13Jeugd mar13
Jeugd mar13
 
Сомниум Нетворк журнал
Сомниум Нетворк журналСомниум Нетворк журнал
Сомниум Нетворк журнал
 

Ähnlich wie ARO For Developers

Measuring and improving your app's network performance oredev
Measuring and improving your app's network performance   oredevMeasuring and improving your app's network performance   oredev
Measuring and improving your app's network performance oredevDoug Sillars
 
Getting Your Piece of the Mobile Pi 2017
Getting Your Piece of the Mobile Pi 2017Getting Your Piece of the Mobile Pi 2017
Getting Your Piece of the Mobile Pi 2017Doug Sillars
 
Mobile Web Performance using WebPageTest and HTTPArchive
Mobile Web Performance using WebPageTest and HTTPArchiveMobile Web Performance using WebPageTest and HTTPArchive
Mobile Web Performance using WebPageTest and HTTPArchiveDoug Sillars
 
Mobile Automation: Lessons From The Trenches
Mobile Automation: Lessons From The TrenchesMobile Automation: Lessons From The Trenches
Mobile Automation: Lessons From The TrenchesAshok Karania
 
AT&T Mobile App & IoT Hackathon @ Catalyst
AT&T Mobile App & IoT Hackathon @ Catalyst AT&T Mobile App & IoT Hackathon @ Catalyst
AT&T Mobile App & IoT Hackathon @ Catalyst Ed Donahue
 
(NET202) Connectivity Using Software-Defined Networking & Advanced API
(NET202) Connectivity Using Software-Defined Networking & Advanced API(NET202) Connectivity Using Software-Defined Networking & Advanced API
(NET202) Connectivity Using Software-Defined Networking & Advanced APIAmazon Web Services
 
TAG IoT Summit - Why You Need a Strategy for the Internet of Things
TAG IoT Summit - Why You Need a Strategy for the Internet of ThingsTAG IoT Summit - Why You Need a Strategy for the Internet of Things
TAG IoT Summit - Why You Need a Strategy for the Internet of ThingsEric Sineath
 
Accelerate AI/ML Adoption with Intel Processors and C3IoT on AWS (AIM386-S) -...
Accelerate AI/ML Adoption with Intel Processors and C3IoT on AWS (AIM386-S) -...Accelerate AI/ML Adoption with Intel Processors and C3IoT on AWS (AIM386-S) -...
Accelerate AI/ML Adoption with Intel Processors and C3IoT on AWS (AIM386-S) -...Amazon Web Services
 
Enterprise Global Messaging
Enterprise Global MessagingEnterprise Global Messaging
Enterprise Global MessagingJonathan Spinney
 
Being A Socially Responsible Social Developer: Mobile App Security
Being A Socially Responsible Social Developer: Mobile App SecurityBeing A Socially Responsible Social Developer: Mobile App Security
Being A Socially Responsible Social Developer: Mobile App SecurityDoug Sillars
 
Mobile App Security: How Secure is your Mobile App
Mobile App Security: How Secure is your Mobile AppMobile App Security: How Secure is your Mobile App
Mobile App Security: How Secure is your Mobile AppDoug Sillars
 
Firewall Webinar
Firewall WebinarFirewall Webinar
Firewall WebinarAT&T
 
Mobile Performance at London Web Perf Mettup
Mobile Performance at London Web Perf MettupMobile Performance at London Web Perf Mettup
Mobile Performance at London Web Perf MettupDoug Sillars
 
AT&T Mobile App Hackathon - Seattle
AT&T Mobile App Hackathon - SeattleAT&T Mobile App Hackathon - Seattle
AT&T Mobile App Hackathon - SeattleEd Donahue
 
Bonding Your Private Network to Salesforce Clouds
Bonding Your Private Network to Salesforce CloudsBonding Your Private Network to Salesforce Clouds
Bonding Your Private Network to Salesforce CloudsSalesforce Developers
 
Secure Connectivity to your Salesforce Applications
Secure Connectivity to your Salesforce ApplicationsSecure Connectivity to your Salesforce Applications
Secure Connectivity to your Salesforce ApplicationsSalesforce Developers
 
IoT Cloud Service & Partner IoT Solution
IoT Cloud Service & Partner IoT Solution IoT Cloud Service & Partner IoT Solution
IoT Cloud Service & Partner IoT Solution harishgaur
 
Life of a Code Change to a Tier 1 Service - AWS Online Tech Talks
Life of a Code Change to a Tier 1 Service - AWS Online Tech TalksLife of a Code Change to a Tier 1 Service - AWS Online Tech Talks
Life of a Code Change to a Tier 1 Service - AWS Online Tech TalksAmazon Web Services
 
Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009
Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009
Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009Aduci
 
June 27 top_10_techtrends_dcearley_176465
June 27 top_10_techtrends_dcearley_176465June 27 top_10_techtrends_dcearley_176465
June 27 top_10_techtrends_dcearley_176465Kirill Goncharuk
 

Ähnlich wie ARO For Developers (20)

Measuring and improving your app's network performance oredev
Measuring and improving your app's network performance   oredevMeasuring and improving your app's network performance   oredev
Measuring and improving your app's network performance oredev
 
Getting Your Piece of the Mobile Pi 2017
Getting Your Piece of the Mobile Pi 2017Getting Your Piece of the Mobile Pi 2017
Getting Your Piece of the Mobile Pi 2017
 
Mobile Web Performance using WebPageTest and HTTPArchive
Mobile Web Performance using WebPageTest and HTTPArchiveMobile Web Performance using WebPageTest and HTTPArchive
Mobile Web Performance using WebPageTest and HTTPArchive
 
Mobile Automation: Lessons From The Trenches
Mobile Automation: Lessons From The TrenchesMobile Automation: Lessons From The Trenches
Mobile Automation: Lessons From The Trenches
 
AT&T Mobile App & IoT Hackathon @ Catalyst
AT&T Mobile App & IoT Hackathon @ Catalyst AT&T Mobile App & IoT Hackathon @ Catalyst
AT&T Mobile App & IoT Hackathon @ Catalyst
 
(NET202) Connectivity Using Software-Defined Networking & Advanced API
(NET202) Connectivity Using Software-Defined Networking & Advanced API(NET202) Connectivity Using Software-Defined Networking & Advanced API
(NET202) Connectivity Using Software-Defined Networking & Advanced API
 
TAG IoT Summit - Why You Need a Strategy for the Internet of Things
TAG IoT Summit - Why You Need a Strategy for the Internet of ThingsTAG IoT Summit - Why You Need a Strategy for the Internet of Things
TAG IoT Summit - Why You Need a Strategy for the Internet of Things
 
Accelerate AI/ML Adoption with Intel Processors and C3IoT on AWS (AIM386-S) -...
Accelerate AI/ML Adoption with Intel Processors and C3IoT on AWS (AIM386-S) -...Accelerate AI/ML Adoption with Intel Processors and C3IoT on AWS (AIM386-S) -...
Accelerate AI/ML Adoption with Intel Processors and C3IoT on AWS (AIM386-S) -...
 
Enterprise Global Messaging
Enterprise Global MessagingEnterprise Global Messaging
Enterprise Global Messaging
 
Being A Socially Responsible Social Developer: Mobile App Security
Being A Socially Responsible Social Developer: Mobile App SecurityBeing A Socially Responsible Social Developer: Mobile App Security
Being A Socially Responsible Social Developer: Mobile App Security
 
Mobile App Security: How Secure is your Mobile App
Mobile App Security: How Secure is your Mobile AppMobile App Security: How Secure is your Mobile App
Mobile App Security: How Secure is your Mobile App
 
Firewall Webinar
Firewall WebinarFirewall Webinar
Firewall Webinar
 
Mobile Performance at London Web Perf Mettup
Mobile Performance at London Web Perf MettupMobile Performance at London Web Perf Mettup
Mobile Performance at London Web Perf Mettup
 
AT&T Mobile App Hackathon - Seattle
AT&T Mobile App Hackathon - SeattleAT&T Mobile App Hackathon - Seattle
AT&T Mobile App Hackathon - Seattle
 
Bonding Your Private Network to Salesforce Clouds
Bonding Your Private Network to Salesforce CloudsBonding Your Private Network to Salesforce Clouds
Bonding Your Private Network to Salesforce Clouds
 
Secure Connectivity to your Salesforce Applications
Secure Connectivity to your Salesforce ApplicationsSecure Connectivity to your Salesforce Applications
Secure Connectivity to your Salesforce Applications
 
IoT Cloud Service & Partner IoT Solution
IoT Cloud Service & Partner IoT Solution IoT Cloud Service & Partner IoT Solution
IoT Cloud Service & Partner IoT Solution
 
Life of a Code Change to a Tier 1 Service - AWS Online Tech Talks
Life of a Code Change to a Tier 1 Service - AWS Online Tech TalksLife of a Code Change to a Tier 1 Service - AWS Online Tech Talks
Life of a Code Change to a Tier 1 Service - AWS Online Tech Talks
 
Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009
Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009
Incorporating Web Services in Mobile Applications - Web 2.0 San Fran 2009
 
June 27 top_10_techtrends_dcearley_176465
June 27 top_10_techtrends_dcearley_176465June 27 top_10_techtrends_dcearley_176465
June 27 top_10_techtrends_dcearley_176465
 

Mehr von Doug Sillars

Fastandbeautiful belfast
Fastandbeautiful belfastFastandbeautiful belfast
Fastandbeautiful belfastDoug Sillars
 
Fastandbeautiful gdg sacremento
Fastandbeautiful gdg sacrementoFastandbeautiful gdg sacremento
Fastandbeautiful gdg sacrementoDoug Sillars
 
Fastandbeautiful gd glittlerock
Fastandbeautiful gd glittlerockFastandbeautiful gd glittlerock
Fastandbeautiful gd glittlerockDoug Sillars
 
Fastandbeautiful webinale
Fastandbeautiful webinaleFastandbeautiful webinale
Fastandbeautiful webinaleDoug Sillars
 
Ai powered images-pythonljubjana
Ai powered images-pythonljubjanaAi powered images-pythonljubjana
Ai powered images-pythonljubjanaDoug Sillars
 
Fastandbeautiful zagrebtechsauna
Fastandbeautiful zagrebtechsaunaFastandbeautiful zagrebtechsauna
Fastandbeautiful zagrebtechsaunaDoug Sillars
 
Ai powered images-gdgtirana
Ai powered images-gdgtiranaAi powered images-gdgtirana
Ai powered images-gdgtiranaDoug Sillars
 
A rt gallery pantalks
A rt gallery pantalksA rt gallery pantalks
A rt gallery pantalksDoug Sillars
 
Ai powered images-sarajevo
Ai powered images-sarajevoAi powered images-sarajevo
Ai powered images-sarajevoDoug Sillars
 
A rt gallery hub387
A rt gallery hub387A rt gallery hub387
A rt gallery hub387Doug Sillars
 
Ai powered images-zurichpydata
Ai powered images-zurichpydataAi powered images-zurichpydata
Ai powered images-zurichpydataDoug Sillars
 
Fastandbeautiful vienna
Fastandbeautiful viennaFastandbeautiful vienna
Fastandbeautiful viennaDoug Sillars
 
Ai powered images-opieaivienna
Ai powered images-opieaiviennaAi powered images-opieaivienna
Ai powered images-opieaiviennaDoug Sillars
 
A rt gallery devfestlondon
A rt gallery devfestlondonA rt gallery devfestlondon
A rt gallery devfestlondonDoug Sillars
 
Fastandbeautiful devfest london
Fastandbeautiful devfest londonFastandbeautiful devfest london
Fastandbeautiful devfest londonDoug Sillars
 
A rt gallery cardiff
A rt gallery cardiffA rt gallery cardiff
A rt gallery cardiffDoug Sillars
 
Ai powered images-mobileera
Ai powered images-mobileeraAi powered images-mobileera
Ai powered images-mobileeraDoug Sillars
 
Fastandbeautiful oredev
Fastandbeautiful oredevFastandbeautiful oredev
Fastandbeautiful oredevDoug Sillars
 

Mehr von Doug Sillars (20)

Fastandbeautiful belfast
Fastandbeautiful belfastFastandbeautiful belfast
Fastandbeautiful belfast
 
Fastandbeautiful gdg sacremento
Fastandbeautiful gdg sacrementoFastandbeautiful gdg sacremento
Fastandbeautiful gdg sacremento
 
Fastandbeautiful gd glittlerock
Fastandbeautiful gd glittlerockFastandbeautiful gd glittlerock
Fastandbeautiful gd glittlerock
 
Fastandbeautiful webinale
Fastandbeautiful webinaleFastandbeautiful webinale
Fastandbeautiful webinale
 
Ai powered images-pythonljubjana
Ai powered images-pythonljubjanaAi powered images-pythonljubjana
Ai powered images-pythonljubjana
 
Fastandbeautiful zagrebtechsauna
Fastandbeautiful zagrebtechsaunaFastandbeautiful zagrebtechsauna
Fastandbeautiful zagrebtechsauna
 
Video js zagreb
Video js zagrebVideo js zagreb
Video js zagreb
 
Vkmdp cologne
Vkmdp cologneVkmdp cologne
Vkmdp cologne
 
Ai powered images-gdgtirana
Ai powered images-gdgtiranaAi powered images-gdgtirana
Ai powered images-gdgtirana
 
A rt gallery pantalks
A rt gallery pantalksA rt gallery pantalks
A rt gallery pantalks
 
Ai powered images-sarajevo
Ai powered images-sarajevoAi powered images-sarajevo
Ai powered images-sarajevo
 
A rt gallery hub387
A rt gallery hub387A rt gallery hub387
A rt gallery hub387
 
Ai powered images-zurichpydata
Ai powered images-zurichpydataAi powered images-zurichpydata
Ai powered images-zurichpydata
 
Fastandbeautiful vienna
Fastandbeautiful viennaFastandbeautiful vienna
Fastandbeautiful vienna
 
Ai powered images-opieaivienna
Ai powered images-opieaiviennaAi powered images-opieaivienna
Ai powered images-opieaivienna
 
A rt gallery devfestlondon
A rt gallery devfestlondonA rt gallery devfestlondon
A rt gallery devfestlondon
 
Fastandbeautiful devfest london
Fastandbeautiful devfest londonFastandbeautiful devfest london
Fastandbeautiful devfest london
 
A rt gallery cardiff
A rt gallery cardiffA rt gallery cardiff
A rt gallery cardiff
 
Ai powered images-mobileera
Ai powered images-mobileeraAi powered images-mobileera
Ai powered images-mobileera
 
Fastandbeautiful oredev
Fastandbeautiful oredevFastandbeautiful oredev
Fastandbeautiful oredev
 

ARO For Developers

  • 1. AT&T Application Resource Optimizer (ARO) A Guide for Developers Doug Sillars Bill Weir April 2015
  • 2. Mobile Development Is Challenging There are a lot of issues to consider…  19,000 Android User Agents reported by Akamai  There are Screen Size differences  Processor/Memory constraints  Battery constraints  And there are constraints inherent in Wireless Networks It isn’t easy!
  • 3. Don’t Let Users Do Your Quality Control 44% of all issues are reported by users 20% issues were only found because of complaints in app reviews 34% of Users use ratings as primary influence in choosing an app http://info.perfectomobile.com/rs/perfectomobile/images/why-apps-fail-infographic.pdf
  • 4. Users Expect Things to Just Work This was an actual tweet.
  • 5. Defects vs. Performance Is Performance REALLY that important? Yes! https://t.co/7bMT4A1PIt
  • 6. Top App Complaints from Consumers 1.User Interface Issues (58%) 2.Performance (52%) 3.Functionality (50%) 4.Device Compatibility (45%)
  • 7. Performance Importance? How Important is Speed and Responsiveness of Mobile Apps? https://t.co/7bMT4A1PIt From a Mobile User Survey conducted by Dimensional Research
  • 8. How Fast Should an App Startup? 72% <3 seconds 49% <2 seconds 91% <4 seconds https://t.co/7bMT4A1PIt From a Mobile User Survey conducted by Dimensional Research
  • 9. Reactions to Poor Performance
  • 10. Check Your App’s Performance http://smarterappsguidelines.gsma.com/ http://knowmyapp.org/ http://www.appqualityalliance.org/aqua-performance-test-criteria http://developer.att.com/application-resource-optimizer http://tspace.web.att.com/files/app#/file/9ecf48ae-b5f7-4780-8672-8c53520c1fb3 Here Are Some Guidelines:
  • 11. You Can Test Performance With ARO  ARO Background  ARO Manual Test (Demo!)  ARO Analysis  ARO Automation (NEW!)
  • 12. Find The Issues Early With ARO ARO Records and Analyzes Network Interactions of App Network use accounts for 40-70% of battery drain!
  • 13. ARO Requirements • Open Source and Free Developer.att.com/ARO • Required for AT&T Preload apps • iOS - Requires iOS device tethered to Mac (with Xcode) • Android - Requires Android device tethered to Mac/PC (with Android SDK)
  • 14. Testing Your App With ARO 1. Move at a speed that emulates real users 2. Create flexible (yet reproducible) test cases a. Test cases can even reflect more of a feature checklist b. The Trace is not about the order of the features, but about the content 3. Likely Problem Areas a. Startup b. Streaming 4. Be Curious a. If something seems odd, explore it b. Screen rotation best practice came out of tester noticing the network lighting up each time they turned the device 5. Background Data: a. Run long test with app running in background
  • 15. Live Demo of ARO Test
  • 16. Demo Backup Slides In ARO Analyzer App: Start Data collector Name the test Capture Video or not
  • 17. Demo Backup Slides ARO establishes a VPN connection on your Android Device (click ok) ARO shows Screen on your computer (if video is being recorded) Click Stop to end ARO trace Files copied to PC and analyzed
  • 18. ARO Analysis All network traffic mapped to processes Stats about trace
  • 20. ARO Simple Analysis 5 Best Practices Graded for Preloads: 1. Text File Compression 2. Duplicate Content 3. Closing Connections 4. Periodic Connections 5. GPS/Bluetooth
  • 21. © 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific company or entity is not an endorsement by AT&T. AT&T Defect Metrics Duplicate Content <5% of KB 5-20% of KB 20+% of KB Periodic Connections 0-20% of Power 20-50% of Power 50+% of Power GPS/BT 0-25% Active (s) 25-65% Active (s) 65+% Active (s) Text Compression 100-500KB 500-1000KB 1000+KB Closing Connections 0-20% of Power 20-50% of Power 50+% of Power Sev 3 Sev 2 Sev 1
  • 22. © 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific company or entity is not an endorsement by AT&T. Duplicate Content AT&T preload says <5% is a pass. This 2.8 KB file should be cached for 1 year. yet downloaded twice in ~2 minutes.
  • 23. Download Less Stuff: Caching 17% of HTTP content on mobile is duplicate data – Reading from Cache is 75-99% faster than downloading again “Web Caching on Smartphones: Ideal vs. Reality”, http://www.research.att.com/~sen/pub/Caching_mobisys12.pdf 6.7MB 6.7MB 4.8 MB duplicate! 75% possible savings! (data AND speed)
  • 24. Caching Methods (How do I do it?) ETags Cache Control Headers •Each file has a Unique Tag •Revalidated on server for each request – High Performance Web Sites: Rule 1 – Make Fewer HTTP Requests (1) – Adding a connection drains battery, adds 500-3,000 ms latency •Important to carefully assign Max-Age times •App will not check file on server until Max-Age is reached – Retrieval is strictly file processing time (1) http://developer.yahoo.com/blogs/ydn/posts/2007/04/rule_1_make_few/
  • 25. Comparing ETag vs. Cache Control Network Usage Battery Drain Data Usage Speed NO Cache YES entire file downloaded Full network connection made High Slowest ETag Yes – ETag in cache is validated on server Full network connection Low Slow Cache Control No N/A N/A Fast Any Caching is better than no caching, but for mobile, Cache Control is preferred
  • 26. Closing Connections < 20% Sev 3 defect Blue Burst Color indicates Packets closing connections
  • 27. Closing Connections: CODE MultiRes Sample app from Android SDK – Modified to download images HttpURLConnection getimagecloseconn = (HttpURLConnection) urln.openConnection(); getimagecloseconn.setRequestProperty("connection", "close"); getimagecloseconn.connect(); String cachecontrol = getimagecloseconn.getHeaderField("Cache-Control"); InputStream isclose = getimagecloseconn.getInputStream(); bitmap = BitmapFactory.decodeStream(isclose); getimagecloseconn.disconnect(); https://github.com/attdevsupport/ARO/tree/master/2013DevSummitTurbocharge
  • 28. GPS/Bluetooth < 25% Sev 3 defect Green Color Indicates active GPS usage
  • 29. © 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific company or entity is not an endorsement by AT&T. GPS: AT&T DriveMode for Android 3 min 480 GPS connections/24hr ~20% Battery
  • 30. © 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific company or entity is not an endorsement by AT&T. GPS: AT&T DriveMode for Android Use activity APIs to identify when your users are in motion 11 minute trace DetectedActivity.IN_VEHICLEDetectedActivity.ON_BICYCLE:DetectedActivity.ON_FOOT: http://commons.wikimedia.org/wiki/File:Baby_goats_jan_2007_crop.jpg http://commons.wikimedia.org/wiki/File:Goat_in_a_car.jpg http://commons.wikimedia.org/wiki/File:2009_goat_and_bicycle_in_India_6512003001.jpg
  • 31. © 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific company or entity is not an endorsement by AT&T. Periodic Connections: • We have a great new service • But we need to poll every 30 seconds • Is this bad for the network? AT&T Sample App
  • 32. © 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific company or entity is not an endorsement by AT&T. AT&T Sample App (cont.) • 2 concurrent connections • Extra Network utilization • If your capacity is set on # of connections – it just got halved
  • 33. © 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific company or entity is not an endorsement by AT&T. AT&T Sample App (cont.) • Moved to persistent connection – is this better? • 10 minutes = 20 connections 0.67% of battery • 1 hour =120 connections 4% of battery • 24 hours = 2880 connections 96.7% of battery
  • 34. Text Compression > 1MB% Sev 1 defect
  • 35. Periodic Connections in the Background! Background traffic Many Apps wake up in the background to update data or communicate with servers. Just 10 background connections = 0.5% battery/day And it adds up FAST! Look at Android’s JobScheduler API (5.0 and up)
  • 36. Background Traffic AT&T Corp Email Facebook Exercise app
  • 37. ARO Automation – Headless collection Beta product: release planned July 2015 Command Line and Java APIs to run ARO ./aro --startcollector vpn_android --output /users/demo/MCoC_testing --video yes
  • 38. ARO Automation – Analysis • Open trace in Analyzer tool • Analyze headlessly into JSON or HTML ./aro --analyze /users/demo/MCoC_testing --output /users/demo/MCoC_testing/report.html --format html
  • 39. ARO for Developers • Performance testing is crucial • Good tools and test plans are essential • AT&T Application Resource Optimizer (ARO) • Testing manually • Testing with automation • Analysis and filing bugs
  • 40. © 2015 AT&T Intellectual Property. All rights reserved. AT&T, the AT&T logo and all other marks contained herein are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies. All other marks contained herein are the property of their respective owners. Information contained herein is not an offer, commitment, representation or warranty by AT&T and is subject to change. Mention of a specific company or entity is not an endorsement by AT&T. Q&A http://smarterappsguidelines.gsma.com/ http://knowmyapp.org/ http://www.appqualityalliance.org/aqua-performance-test-criteria http://developer.att.com/application-resource-optimizer http://bit.ly/HighPerfAndroidApps

Hinweis der Redaktion

  1. I have permission from Sgt. Brink to reuse this Tweet in presentations.
  2. DS: Drive mode - GPS Battery impact Utilize existing API’s to identify user movements
  3. DS: http://commons.wikimedia.org/wiki/File:Baby_goats_jan_2007_crop.jpg http://commons.wikimedia.org/wiki/File:Goat_in_a_car.jpg http://commons.wikimedia.org/wiki/File:2009_goat_and_bicycle_in_India_6512003001.jpg
  4. TK Image: https://www.flickr.com/photos/perspective/33330283/ Usability starts with the design and architecture OS ie: Cross platform inter-relations (Drive app vs Customer app) Small issues become magnified No sandbox Tiny issues become exponential when multiplied by an entire platform Growth of product matrix needed early
  5. TK Image: https://www.flickr.com/photos/perspective/33330283/ Usability starts with the design and architecture OS ie: Cross platform inter-relations (Drive app vs Customer app) Small issues become magnified No sandbox Tiny issues become exponential when multiplied by an entire platform Growth of product matrix needed early
  6. TK Image: https://www.flickr.com/photos/perspective/33330283/ Usability starts with the design and architecture OS ie: Cross platform inter-relations (Drive app vs Customer app) Small issues become magnified No sandbox Tiny issues become exponential when multiplied by an entire platform Growth of product matrix needed early
  7. DS