Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Scaling Emulators for Better Testing: Droidcon ...
Search
Amanjeet Singh
December 17, 2025
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Scaling Emulators for Better Testing: Droidcon 2025
Amanjeet Singh
December 17, 2025
More Decks by Amanjeet Singh
See All by Amanjeet Singh
Scaling Android Emulators with Cloud
amanjeetsingh150
0
150
Maestro: A paradigm shift in UI testing
amanjeetsingh150
1
370
Chasing Performance Issues Methodically
amanjeetsingh150
0
430
Coroutines and Rx: A battle towards Asynchrony
amanjeetsingh150
1
270
Coroutines and Rx: A battle towards Asynchronicity
amanjeetsingh150
2
350
Journey of APK from Compile to Start
amanjeetsingh150
5
630
Journey to understand Observer and Pub-Sub Pattern
amanjeetsingh150
3
270
Dependency Injection on iOS
amanjeetsingh150
0
210
Journey of APK from compilation to installation
amanjeetsingh150
0
310
Featured
See All Featured
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.2k
A Tale of Four Properties
chriscoyier
163
24k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
880
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
The Limits of Empathy - UXLibs8
cassininazir
1
640
Deep Space Network (abreviated)
tonyrice
0
300
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
490
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Transcript
Scaling Emulators for Better Testing Amanjeet Singh https://www.amanjeet.me/
• Open source • Community > 5k+ members • Stars
~ 9k ⭐ • Cross Platform Maestro: E2E testing Framework
Why Moving to Cloud?
Why Moving to Cloud? “Running parallel tests, faster feedback for
releasing apps”
How to run on cloud?
Cloud Providers
Cloud Providers
Self Hosted
Self Hosted
Self Hosted
Self Hosted
Why Self Hosted?
Why Self Hosted in 500 mg app?
Why Self Hosted in 500 mg app? • Add to
cart fl ow in fl aky network.
• Launching 500mg consumer app on TvOS/WatchOS • Add to
cart fl ow in fl aky network. Why Self Hosted in 500 mg app?
• Supporting 500mg app for multiple locale • Launching 500mg
consumer app on TvOS/WatchOS • Add to cart fl ow in fl aky network. Why Self Hosted in 500 mg app?
• Supporting 500mg app for multiple locale • Launching 500mg
consumer app on TvOS/WatchOS • Add to cart fl ow in fl aky network. • You don’t want to spend money 🤣 Why Self Hosted in 500 mg app?
• Supporting 500mg app for multiple locale • Launching 500mg
consumer app on TvOS/WatchOS • Add to cart fl ow in fl aky network. • You don’t want to spend money 🤣 More Control Why Self Hosted in 500 mg app?
Helping Tom 👨💻 From 500mg
Project: Setup Emulators Infra
• Setup Android Virtual Devices (AVDs) • Giving AVDs superpowers
• Deployment of AVDs and Launching them Project: Setup Emulators Infra
Setup Android Virtual Devices (AVDs) • CLI ✅, Android Studio
GUI ❌
Setup Android Virtual Devices (AVDs) • CLI ✅, Android Studio
GUI ❌ • CLI ✅, Android Studio GUI Creating AVD Downloading AVDs Selecting the con fi gurations
• Download and Creating AVDs Setup Android Virtual Devices (AVDs)
• Applying con fi guration to AVD Setup Android Virtual
Devices (AVDs)
Super Powers Unlocked
Super Powers Unlocked Issue I: API 29 breaks in every
other release - Crash rate stuck at ~94% 📉
Super Powers Unlocked Issue I: API 29 breaks in every
other release - Crash rate stuck at ~94% 📉
Super Powers Unlocked Issue II: Expanding to watchOS + tvOS
— need platform parity ⌚📺
Super Powers Unlocked Issue II: Expanding to watchOS + tvOS
— need platform parity ⌚📺
Super Powers Unlocked Issue III: New Android versions every year
— must stay ahead 🚀
Super Powers Unlocked Issue III: New Android versions every year
— must stay ahead 🚀
Setup Android Virtual Devices (AVDs) Project: Setup Emulators Infra ✅
android-36, 8 Gib emulator, arm-64, 4 CPU core 👉
Setup Android Virtual Devices (AVDs) Project: Setup Emulators Infra ✅
Launch Emulators ✅
Let’s Deploy 🚀
It works, But 🥲
Issue Category I
Issue Category I • Issue I: Chrome Welcome Screen
Issue Category I • Issue I: Chrome Welcome Screen •
Issue II: Timing issues, due to animations
Issue Category I • Issue I: Chrome Welcome Screen •
Issue III: Different apps interfering • Issue II: Timing issues, due to animations
Issue Category I • Issue I: Chrome Welcome Screen •
Issue III: Different apps interfering • Issue II: Timing issues, due to animations • Issue IV: I don’t know where my test taps
Issue Category I • Issue V: Screen recording limit of
3 mins • Issue I: Chrome Welcome Screen • Issue III: Different apps interfering • Issue II: Timing issues, due to animations • Issue IV: I don’t know where my test taps https://maestro.dev/blog/ fi xing-androids-3-minute-screen-recording-limitation
Tom-Man got Covered 👨💻
Tom-Man got Covered 👨💻
Tom-Man got Covered 👨💻 Super Power: Emulator Snapshots
Emulator Snapshots
Emulator Snapshots • Boot Emulator
Emulator Snapshots • Boot Emulator • Apply the adb con
fi gurations
Emulator Snapshots • Boot Emulator • Apply the adb con
fi gurations • Backup the qcow2 image and swap it with original
Emulator Snapshots • Boot Emulator • Apply the adb con
fi gurations • Backup the qcow2 image and swap it with original • Launch the emulator and don’t save snapshot during test fi nish
Issue Category II Product Team @ 500mg
Requirement I • Requirement I: We need to test 500
mg with different locales
Tom-Man discovering Powers! 👨💻
Locale Superpower ✅
Requirement II • We must test 500mg under flaky, edge-speed
networks, because users are not able to order
Super Power: Emulator Options 👨💻
Super Power: Emulator Options 👨💻
Super Power: Emulator Options 👨💻
• We must test 500 mg in low ram device
Super Power: Emulator Options 👨💻
Issue Category III
Issue Category III • Emulator disconnects in middle of test,
adbd dies randomly.
Issue Category III • Emulator disconnects in middle of test,
adbd dies randomly. • 500 mg flow for KYC works locally but not on cloud 🥲
Issue Category III • Emulator disconnects in middle of test,
adbd dies randomly. • 500 mg flow for KYC works locally but not on cloud 🥲 Issue X: Only happens on cloud and not local 👉
Super Power: Emulator Logs 👨💻
Super Power: Emulator Logs 👨💻 Idea: Using emulator logs around
the time of failure for better debugging
Super Power: Emulator Logs 👨💻 Idea: Using emulator logs around
the time of failure for better debugging
Super Power: Emulator Logs 👨💻 Idea: Using emulator logs around
the time of failure for better debugging
POV of CI at 500mg! • Emulator Snapshots • Emulator
Command line Options • Emulator logs • 500mg Test Driver APK for Locale
Finally Works ✅
Fin 🙋