Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Scaling Emulators for Better Testing: Droidcon ...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Amanjeet Singh
December 17, 2025
0
110
Scaling Emulators for Better Testing: Droidcon 2025
Amanjeet Singh
December 17, 2025
Tweet
Share
More Decks by Amanjeet Singh
See All by Amanjeet Singh
Scaling Android Emulators with Cloud
amanjeetsingh150
0
130
Maestro: A paradigm shift in UI testing
amanjeetsingh150
1
340
Chasing Performance Issues Methodically
amanjeetsingh150
0
400
Coroutines and Rx: A battle towards Asynchrony
amanjeetsingh150
1
230
Coroutines and Rx: A battle towards Asynchronicity
amanjeetsingh150
2
300
Journey of APK from Compile to Start
amanjeetsingh150
5
550
Journey to understand Observer and Pub-Sub Pattern
amanjeetsingh150
3
210
Dependency Injection on iOS
amanjeetsingh150
0
170
Journey of APK from compilation to installation
amanjeetsingh150
0
250
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
My Coaching Mixtape
mlcsv
0
46
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Amusing Abliteration
ianozsvald
0
93
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.5k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
62
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
Docker and Python
trallard
47
3.7k
Believing is Seeing
oripsolob
1
50
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
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 🙋