Android Engineering Articles · Page 8
Jetpack Compose Gestures: Pointer Input, Consumption, and Nested Scroll
(Updated on )
Build reliable Compose interactions by choosing the right gesture API, understanding pointer consumption, and coordinating nested scrolling.
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
Testing Kotlin Coroutines: TestDispatcher, Virtual Time, and Turbine
A practical guide to coroutine unit testing with runTest virtual time, TestDispatcher injection, Dispatchers.Main replacement, Turbine Flow assertions, and common Android testing traps.
Read Post
Jetpack Compose CompositionLocal: Implicit Data, Scope, and Internals
A deep dive into CompositionLocal, including parameter tunneling, compositionLocalOf versus staticCompositionLocalOf, Slot Table internals, and engineering tradeoffs.
Read Post
Android Large Screens and Foldables: From WindowSizeClass to Compose Adaptive Layouts
A practical guide to Android large-screen and foldable adaptation with WindowSizeClass, Compose adaptive layouts, posture awareness, split-screen behavior, and responsive UI strategy.
Read Post
Compose Custom Layout: MeasurePolicy, Intrinsics, and Waterfall Layouts
A deep dive into Jetpack Compose custom layout, from MeasurePolicy constraints and intrinsic measurement to SubcomposeLayout, adaptive grids, waterfall layouts, and debugging tips.
Read Post
Android Audio System Deep Dive: AudioFlinger Mixing and AAudio Low Latency
A deep architecture walkthrough of the Android audio pipeline, from AudioTrack buffers and AudioFlinger mixer scheduling to AAudio MMAP pass-through, latency tradeoffs, and production API choices.
Read Post
Android Multimodal On-device AI: Gemini Nano, Image Tokens, Streaming, and Compose
A practical Android multimodal AI walkthrough covering Gemini Nano Multimodality, AICore model loading, image preprocessing, ViT tokenization, streaming inference, Compose rendering, memory, and thermals.
Read Post
Inside Android CameraX: From Camera2 Pipeline to Compose Camera UI
Analyze CameraX's layered pipeline from HAL and Camera2 to UseCase APIs and Compose integration, with production lessons on focus, resolution, and leaks.
Read Post
Android Testing in Practice: JUnit, Integration Tests, Compose Semantics, and CI
A practical Android testing strategy from ViewModel unit tests and Repository integration tests to Compose semantics UI tests and CI flaky-test governance.
Read Post
Android Perfetto End to End: ftrace, TrackEvent, and Production Monitoring
A deep dive into Android Perfetto, from the traced and traced_probes daemon architecture to kernel ftrace sources, shared ring buffers, SDK TrackEvent instrumentation, and production observability.
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
Inside Android Room: KSP Code Generation, Migrations, and Flow Queries
Walk through Room's KSP-generated DAO code, migration strategy, and Flow reactive queries, from compile-time SQL validation to InvalidationTracker.
Read Post
Jetpack Compose Animation Internals: AnimationSpec, Springs, and Transition
A deep dive into Compose animation internals, including spring physics, the Choreographer-to-Snapshot frame pipeline, and how Transition synchronizes multiple animated properties.
Read Post
End-to-End Android On-Device AI Model Security: From Encrypted Storage to TEE Inference
A practical walkthrough of layered protection for Android on-device AI models, from encrypted storage and hardware-backed keys to TEE inference, with engineering constraints and tradeoffs.
Read Post
Inside Android ViewModel: ViewModelStore Retention and SavedStateHandle Recovery
Trace ViewModel from ViewModelStore retention to SavedStateHandle process recreation, and separate configuration-change survival from process-death recovery.
Read Post
Designing an On-Device LLM Inference Scheduler: Priority Queues and Backpressure in Practice
This article shows how to build a scheduling layer above an on-device inference engine, using priority queues, preemption, and backpressure to avoid OOMs, unpredictable latency, and out-of-order results.
Read Post
Compose Recomposition: Strong Skipping, Compiler Reports, and State Reads
(Updated on )
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 Gradle Build Speed: From Configuration Cache to Replacing KAPT with KSP
A systematic Android Gradle build-speed guide covering configuration time, annotation processing, task execution, Configuration Cache, KSP migration, incremental compilation, and build governance.
Read Post