Performance Articles
What Does AudioFlinger Do in the Android Audio System?
Explains AudioFlinger's role in the Android audio pipeline, including mixing, threads, AudioTrack, low-latency playback, and AAudio.
Read Post
Why Bitmap Causes OOM on Android: A Practical Guide to Image Memory
Explains Bitmap memory usage, Java heap vs. native heap, Hardware Bitmap, sampling, compression, and image loading optimization.
Read Post
Getting Started with Android Perfetto
A beginner-friendly Android Perfetto workflow covering trace capture, key tracks, Binder, scheduling, rendering, and startup analysis.
Read Post
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.
Read Post
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.
Read Post
Android Macrobenchmark: The Full Performance Benchmarking Workflow
A practical Macrobenchmark workflow for cold-start measurement, frame smoothness, custom trace metrics, and CI regression gates.
Read Post
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.
Read Post
Android MediaCodec Video Pipeline: MediaExtractor, Buffers, and Hardware Encoding
Trace Android video transcoding from MediaExtractor demuxing to MediaCodec async buffers, hardware decode compatibility, and MediaMuxer output.
Read Post
Android ContentProvider IPC: URI Routing, Cursor Windows, and ContentObserver Notifications
A deep dive into Android ContentProvider cross-process data sharing, covering URI routing, transparent Cursor IPC, and ContentObserver change notifications.
Read Post
Jetpack Compose Modifier Internals: From Modifier.Node to Layout and Drawing
A deep dive into the Compose Modifier chain, the shift from composed to Modifier.Node, how declarative modifier pipelines are built, and where performance gains come from.
Read Post
Android Process Survival and Resource Scheduling: OOM Adj to LMK
A system-level look at Android OOM Adj scoring, LMK and lmkd evolution, cgroup memory isolation, foreground services, expedited WorkManager jobs, and memory self-monitoring.
Read Post
Jetpack Compose Recomposition Performance: Stability, derivedStateOf, and Skipping
A practical end-to-end guide to diagnosing and optimizing Compose recomposition, covering stability inference, compiler reports, Layout Inspector, derivedStateOf, and state read placement.
Read Post
Android Paging 3 Deep Dive: PagingSource, RemoteMediator, and Reactive Pagination
A deep breakdown of Paging 3's three-layer architecture: Pager, PagingSource, and RemoteMediator, including Room, RecyclerView, coroutine dispatchers, caching, and common pitfalls.
Read Post
Android SharedPreferences to DataStore Deep Dive: From ANR Risk to Flow-Based Coroutine Storage
A deep look at SharedPreferences locking and ANR root causes, Jetpack DataStore's design, migration paths, Preferences DataStore, Proto DataStore, and coroutine-based storage architecture.
Read Post
Android WorkManager Scheduling: Constraints, Doze, Expedited Work, and Task Chains
A deep dive into WorkManager scheduling, the Constraint engine, Doze compatibility, task-chain orchestration, Expedited Work, foreground-service tradeoffs, and dumpsys debugging.
Read Post
Kotlin K2 Compiler: Unified Frontend, Type Inference, and Android Migration
A practical deep dive into Kotlin K2's FIR frontend, rewritten type inference, build-performance impact, kapt-to-KSP migration, compiler plugin changes, and Android project rollout.
Read Post
Kotlin `suspend` Internals: From CPS Transformation to State-Machine Bytecode
A compiler-level walkthrough of how Kotlin turns suspend functions into state-machine bytecode, from CPS transformation and Continuation to local-variable liveness and coroutine resumption.
Read Post
Android 16 Predictive Back: Migration, Dispatchers, and Gesture-Driven Animation
A practical Android 16 Predictive Back migration guide covering OnBackInvokedDispatcher registration, OnBackAnimationCallback frame-driven animation, Fragment support, Compose PredictiveBackHandler, and a migration checklist.
Read Post
Android Power Management: From Wakelock Abuse to Doze-Aware Engineering
A practical guide to Android power management covering Wakelock leaks, Doze, App Standby buckets, Battery Historian diagnostics, and WorkManager.
Read Post
Android 16 Edge-to-Edge: WindowInsets Dispatch and System Bar Adaptation
Android 16 treats forced edge-to-edge as a breaking change for targetSdk 36 apps. This guide explains the WindowInsets dispatch path and practical adaptation strategies for both View and Compose UIs.
Read Post