Android Engineering Articles · Page 5

Inside Android Resource Loading: From resources.arsc Binary to Runtime Lookup

A walkthrough of Android's resource system from AAPT2 compilation to AssetManager2 runtime matching, covering the arsc binary structure, config scoring, and two-tier caching.

Managing On-Device AI Inference Lifecycles with Kotlin Coroutines

How to use structured concurrency to manage Android on-device AI inference: GPU resource release ordering, actor-style serialization, and cancellation propagation.

Inside the Android View Drag-and-Drop System: From DragShadowBuilder to Cross-Window ClipData

An end-to-end walkthrough of Android's drag-and-drop internals: startDragAndDrop, DragEvent dispatch, the DragShadow render layer, and cross-window ClipData transport.

Android App Resilience: Retries, Graceful Fallbacks, and Multi-Level Cache

An Android resilience architecture covering conditional retry, exponential backoff, memory/DataStore/Room cache fallback, graceful degradation, and observability.

Inside Jetpack Compose List Animations: From animateItem to Declarative Choreography

A practical walkthrough of animateItem internals, key stability, recomposition scoping, and frame-rate tuning for LazyColumn.

Android On-Device AI Inference Warmup: From Model Loading to First-Token Latency

A practical breakdown of on-device AI cold-start latency: model loading, GPU Delegate initialization, KV cache prefill, warmup inference, long-lived contexts, and memory tradeoffs.

Android Wi-Fi Connections: Use Modern APIs and Debug Layers

(Updated on )
Choose the correct Android Wi-Fi API, handle permissions and callbacks, and isolate failures from app policy through the Wi-Fi stack.

RecyclerView DiffUtil: Myers Diff, Payloads, and AsyncListDiffer

A practical look at RecyclerView DiffUtil, from Myers shortest edit scripts to payload updates, AsyncListDiffer background computation, callback timing, and cache-friendly list updates.

Android TV and Google TV Development: Leanback, D-Pad Focus, and Large-Screen UX

A TV-first Android engineering guide covering D-Pad interaction, Leanback architecture, focus management, remote-control events, and phone-to-TV adaptation.

Android Emulator Performance: QEMU, Hypervisors, GPU, and Snapshots

A full-stack look at Android Emulator performance, from QEMU and KVM acceleration to GPU rendering, virtio-gpu, snapshots, and measurable tuning strategies.

Android Share Framework: ShareCompat, Chooser, and Dynamic Targets

An end-to-end look at Android sharing, from ShareCompat intent construction and Chooser target resolution to Direct Share dynamic targets and Compose integration.

Android 16 Live Updates: Real-Time Notifications and Capsule UI

How Android 16 Live Updates separate notification structure from state changes, using segmented progress and incremental synchronization to reduce IPC cost and support persistent status-bar capsules.

Android Play Integrity API: Nonce Validation and Device Risk Scoring

A field-tested guide to Play Integrity API migration, covering device, app, and account integrity signals, nonce replay protection, server-side verification, retry behavior, and risk-based decisions.

Phased Android Startup Initialization with background and activity StartTypes

Putting every initialization task into Application makes cold-start cost unpredictable. This article presents a phased startup framework that separates background and activity StartTypes with explicit dependencies, thread scheduling, fallback behavior, and timing metrics.

Async Inflate Manager: Thread-Pool Preloading for Faster First Frames

First-frame latency is not only about network and image loading. Complex XML layout inflation on the main thread can be expensive too. This article presents an async Inflate manager that pre-creates Views on a thread pool, uses MutableContextWrapper for context safety, and falls back to UI-thread inflation when needed.

Bytecode try-catch Instrumentation for Third-Party Crashes: Precise Containment with hookPoint

When a third-party SDK crash cannot be fixed in source code, bytecode try-catch instrumentation can be a practical containment tool. This article explains a hookPoint-driven design for precise method matching, non-fatal exception capture, reporting, and safety boundaries.

Compose Multiplatform Desktop in Practice: JVM Windows and Platform Interop

A practical migration from Electron to Compose Desktop, covering JVM window management, menu bars, drag and drop, system trays, platform interop, packaging, and distribution. Startup time improved by 60% and memory usage dropped by 70%.

Custom Android Cache Strategies: FirstCache, FirstNet, OnlyNet, and Timeout

Cache strategy is more than choosing whether to read cache or network first. It affects screen speed, weak-network behavior, data consistency, and code complexity. This article presents a unified strategy enum, CacheManager layer, and Flow-based state model.

Dynamic Launcher Icons and Entry Switching: Engineering Controls Behind Icon Changes

Dynamic Launcher icons look like a single PackageManager call, but a production implementation involves manifest declarations, entry-state management, fallback behavior, launcher compatibility, and rollout controls.

Image Loading Stability: Custom SSL Verification and DoH DNS in Practice

Mobile image failures often come from certificate-chain validation issues, DNS pollution, or regional carrier-resolution problems. This article explains two network-layer improvements for image loading: explicit SSL verification and DoH-based DNS resolution.