If you’ve used Firebase Performance Monitoring, you know that it automatically discovers and reports performance metrics for all the HTTP transactions in your app. But have you ever wondered how it does that? Android doesn’t provide any APIs to listen in on an arbitrary connection (that would be a security problem!), and Firebase supports URLConnection, Apache, and OKHTTP APIs. The secret here is bytecode manipulation at build time using the Transform API provided by the Android build tools. Join this session to find out how the Firebase Performance Monitoring Gradle plugin intercepts and measures HTTP transactions at runtime with some assistance from bytecode manipulation at build time.
Doug is a veteran engineer, experienced public speaker, and developer advocate at Google with the Firebase team. He's been developing for Android since the very first Android device was on the market, and has bootstrapped the efforts of silicon valley startups. Outside of work, Doug follows professional ice hockey and enjoys craft beer.