Android Engineering Articles · Page 15
Android Process and Thread Model Deep Dive
A deep dive into Android process creation, Zygote fork, oom_adj, the main thread, Binder thread pools, background threading, Handler, Looper, synchronization, and ANR analysis.
Read Post
System-Level Android Performance Analysis and Tuning with Systrace and Perfetto
When Android apps suffer from jank, slow startup, high power use, or sluggish response, app-level profilers are often not enough. Perfetto and Systrace expose CPU scheduling, Binder, rendering, I/O, memory, and power behavior across the whole system.
Read Post
Android Compose Screenshot Testing: Paparazzi and Roborazzi
A practical comparison of Paparazzi and Roborazzi for device-free Compose screenshot testing, covering rendering internals, font and shadow differences, CI automation, and visual regression gates.
Read Post
Android CI/CD Pipeline: ktlint, Detekt, Testing, and Firebase
A practical Android CI/CD pipeline from ktlint and Detekt code-quality checks to Gradle Managed Devices, versioning, and Firebase App Distribution.
Read Post
Android BroadcastReceiver End to End: Registration to BroadcastQueue
A deep dive into Android BroadcastReceiver dispatch, covering dynamic and static registration, BroadcastQueue scheduling, ordered broadcasts, sticky broadcast deprecation, background limits, and async timeout handling.
Read Post
Android Rendering and the Graphics Stack: A Deep Dive
A full walkthrough of Android rendering, from View invalidation, Choreographer, and RenderThread to BufferQueue, SurfaceFlinger, jank diagnosis, and optimization.
Read Post
Android BLE End to End: GATT, Scanning, and Long-Lived Connections
A practical guide to Android BLE development, covering the GATT protocol stack, scan power tradeoffs, reconnection, Doze handling, and multi-device long-connection management.
Read Post
Android App Battery Optimization with Battery Historian
A practical Android battery optimization guide using Battery Historian and Perfetto to reduce Wakelock, Alarm, and Network drain through staged background policies and CI checks.
Read Post
Android Feature Flags and Gradual Rollouts
A practical Android feature flag architecture covering remote config, local cache, hash buckets, staged rollout, kill switches, sticky enrollment, and Firebase tradeoffs.
Read Post
Inside Android AlarmManager Scheduling
A full-path breakdown of Android AlarmManager scheduling, from AlarmManagerService Binder calls to RTC wakeups, Doze limits, batching, and dumpsys debugging.
Read Post
Inside Android ART Garbage Collection
A practical look at ART garbage collection, from Dalvik mark-sweep to CMS, Concurrent Copying, generational GC, allocation storms, LOS behavior, and startup tuning.
Read Post
Android AICore and Gemini Nano: System Services, Safety Filters, and LoRA Adaptation
A deep dive into Google AICore for Gemini Nano on Android, covering APEX delivery, permission isolation, model distribution, safety filtering, session management, and LoRA adapters.
Read Post
Android TextView Internals: Complex Text Layout Scenarios, Part 4
Part 4 of the Android TextView measurement and layout series covers RTL/BiDi text, emoji, rich text spans, performance, and debugging.
Read Post
Android TextView Internals: Text Measurement and Layout
A deep dive into how Android TextView measures and lays out text, from Layout selection and line breaking to font metrics, RTL text, emoji, spans, and performance.
Read Post
Android Internationalization: Configuration, Resources, and App Locale
A practical guide to Android internationalization, covering Configuration, ContextWrapper isolation, Android 13 per-app locales, and Crowdin translation pipelines.
Read Post
Android DEX Bytecode and MultiDex: The Full Loading Pipeline
A full walkthrough of Android DEX bytecode limits, the real source of the 65,536 method ceiling, MultiDex splitting, PathClassLoader loading, and production pitfalls.
Read Post
Android Network Stack Optimization: DNS, TLS 1.3, HTTP/3, and QUIC
A practical guide to Android network stack optimization, covering DNS resolution, DoH and HttpDNS, TLS 1.3 handshakes, HTTP/3, QUIC, and 0-RTT.
Read Post
Android Media3 Playback Architecture: From ExoPlayer to MediaSession
A deep dive into Android Media3 playback architecture, from the ExoPlayer core to the MediaSession control pipeline, buffering strategy, and migration practices.
Read Post
Audio and Video Fundamentals
A beginner-friendly explanation of how audio, images, video frames, bitrate, codecs, containers, and playback workflows fit together.
Read Post
Understanding and Optimizing Autofill in Android WebView
Autofill is a browser or operating-system feature that fills form fields from stored user data such as addresses, passwords, and payment details, reducing repetitive input and improving interaction speed.
Read Post