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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Audio and Video Fundamentals

A beginner-friendly explanation of how audio, images, video frames, bitrate, codecs, containers, and playback workflows fit together.

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.