Android Articles

Which Metrics Should Android Startup Optimization Track First?

A practical guide to Android startup metrics, phase breakdowns, Perfetto trace signals, and production governance priorities.

Why Does Compose Recompose So Often? From Stability to State Read Placement

A practical guide to frequent Jetpack Compose recomposition, including unstable parameters, where state is read, derivedStateOf misuse, and list item design.

How Should You Choose Between DataStore and SharedPreferences?

Compares SharedPreferences, Preferences DataStore, and Proto DataStore across use cases, threading, type safety, and migration strategy.

What Is the Difference Between Glance and RemoteViews?

Explains how Android Glance AppWidget relates to RemoteViews, where they differ, when each fits, and how to think about migration.

When Should You Use Paging 3 RemoteMediator?

Explains where Paging 3 RemoteMediator fits, how network and database pagination cooperate, cache-first lists, and common misuse cases.

Why Does a Room Flow Update Automatically?

Explains how Room, InvalidationTracker, SQLite table invalidation, and Kotlin Flow work together to rerun queries automatically.

Android AGSL RuntimeShader: From Skia Compilation to Compose Effects

A deep dive into Android AGSL RuntimeShader, including the AGSL-to-SkSL-to-GPU pipeline, uniform shader sampling, Compose integration, practical effects, and performance limits.

Android Glance AppWidget Deep Dive: RemoteViews and Compose Widgets

A deep dive into the full Android Glance AppWidget pipeline, from RemoteViews cross-process rendering and the Glance translation engine to Actions, update flows, and update strategy choices.

Android 16 KB Page Size Migration: ELF Alignment, NDK Builds, and Performance

Android 15 and Google Play are moving toward 16 KB pages. This guide explains ELF segment alignment, linker behavior, NDK build changes, TLB validation, and CI gates.

Android Fragment Lifecycle and FragmentManager: Transactions, Back Stack, and State Recovery

A deep dive into Fragment transaction async execution, back-stack state recovery, ViewModel lifecycle coordination, commitNow, onSaveInstanceState timing, and common NPE and leak traps.

Android Macrobenchmark: The Full Performance Benchmarking Workflow

A practical Macrobenchmark workflow for cold-start measurement, frame smoothness, custom trace metrics, and CI regression gates.

Android Dynamic Feature Delivery: From App Bundle to SplitCompat

An end-to-end guide to Android dynamic feature delivery, covering App Bundle splits, SplitCompat runtime loading, Play Feature Delivery, and package size tradeoffs.

Android Architecture Evolution: From MVC Confusion to MVI in Compose

A practical walkthrough of Android architecture patterns from MVC and MVP to MVVM and MVI, with Compose-focused guidance for unidirectional data flow.

Android Hotfix Internals: ClassLoader Replacement and Tinker Patches

A practical deep dive into Android hotfix systems, from ClassLoader dex replacement to Tinker binary patches, compatibility traps, rollout, rollback, and monitoring.

Android Configuration Changes: Activity Recreation and ViewModel Survival

A source-level walkthrough of Android configuration changes, from ActivityThread relaunch handling to NonConfigurationInstances, ViewModelStore retention, and the boundary with SavedStateHandle.

Android App Links: Digital Asset Links and Web-to-App Routing

A full-chain guide to Android App Links, covering Digital Asset Links, automatic domain verification, routing behavior, debugging tools, release signatures, and cross-domain pitfalls.

Android StrictMode: From BlockGuard Hooks to CI Quality Gates

How to turn Android StrictMode from a debug helper into a CI quality gate, with BlockGuard internals, structured JSON output, and production soft interception.

Android Credential Manager: FIDO2, Passkeys, and Device-Side Security

A deep dive into Android Credential Manager, covering FIDO2 passwordless authentication, TEE-backed key protection, and passkey cross-device sync.

Android Modular Communication: Route Tables and SPI Service Discovery

A practical comparison of two Android modular communication strategies: route tables and interface extraction with SPI service discovery, including implementation details and selection guidance.

Compose and View Interop: AndroidView, ComposeView, and Two-Way State

A practical deep dive into Compose and View interoperability, including AndroidView, ComposeView lifecycle binding, state synchronization, focus, touch conflicts, and migration strategy.