PickMe Mithila Karunarathne Apr 10, 2026

Revolutionizing Mobile App Profiling: From Days to Minutes with Automation using ADB (Android Debug Bridge) & Python

M8 Related OWASP risk: Security Misconfiguration Learn more →

Article Summary

Mithila Karunarathne and Manuja Hapuarachchi from PickMe turned a days-long performance profiling bottleneck into a minutes-long automated process. Their solution? Python scripts, ADB commands, and a clever wrapper pattern that monitors apps while they run.

Manual performance profiling at PickMe was thorough but painfully slow: QA engineers spent days manually installing builds, watching Android Studio Profiler, and compiling observations. The team built an automation framework using Python and Android Debug Bridge (ADB) to capture CPU, memory, battery, and thermal data in real-time during test execution.

Key Takeaways

Critical Insight

By wrapping Appium UI tests with continuous ADB polling and Pandas analysis, PickMe eliminated manual profiling overhead while delivering objective, reproducible performance data.

The article includes specific ADB commands and the complete framework architecture that any Android team could adapt for their own profiling needs.

About This Article

Problem

PickMe's Performance QA team struggled with manual profiling because results kept changing based on device temperature and what else was running. It was hard to tell if performance issues were real or just noise from the environment.

Solution

The team built a Python framework that uses ADB to run shell commands like dumpsys cpuinfo and dumpsys meminfo every 0.5 seconds. They paired this with Pandas and OpenPyXL to clean the raw data and create Excel reports that connect UI actions to hardware metrics.

Impact

The framework removed human bias from profiling and created reproducible data that made accountability easier. QA engineers could stop spending time on routine data collection and focus instead on finding root causes and optimizing performance.