Android Articles
Inside Android Photo Picker: Privacy Sandbox Architecture and Compose Integration
A close look at Android Photo Picker's privacy-sandbox design, from cross-process URI permission grants to Compose declarative integration, covering single/multi-select, persistent permissions, and ROM compatibility.
Read Post
Android Network Security Config to SSL Pinning: An End-to-End Guide
A practical walkthrough of Android's three-layer network defense: Network Security Config, SSL Pinning, and Certificate Transparency, from configuration traps to production monitoring.
Read Post
Evaluating and Optimizing On-Device AI on Android: From Offline Benchmarks to Production Experiments
A from-scratch evaluation system for on-device AI: offline benchmarks for initial filtering, production confidence-distribution monitoring, and A/B experiments to drive decisions β cutting iteration cycles from 3 weeks to 1.5.
Read Post
Android Multi-Channel Builds: From Gradle Flavors to Walle V2 Signature Injection
Two approaches to Android multi-channel packaging: Gradle Flavor builds and Walle's V2 signature block channel injection, with APK Signing Block internals and production lessons.
Read Post
From PyTorch to TFLite on Android: A Practical Model Format Conversion Guide
A hands-on guide to converting PyTorch models through ONNX into TFLite and MediaPipe for on-device Android deployment, covering dynamic shapes, operator compatibility, and INT8 quantization.
Read Post
Android System Properties End-to-End: From init to Shared Memory and SELinux
How Android's system property mechanism works: property files, the init property service, zero-copy shared memory reads, SELinux enforcement, and cross-process change notifications.
Read Post
Android Concurrency in Practice: Thread Pools, Queues, and Coroutine Dispatchers
A practical guide to Android thread pool tuning, queue selection, rejection policies, and how Kotlin coroutine dispatchers map onto underlying thread pools.
Read Post
Inside the Compose Compiler Plugin: From @Composable to Synthetic Parameters
How the Compose Compiler Plugin transforms @Composable functions at the IR level, covering $changed bitmasks, skip logic generation, state read/write markers, and stability inference rules.
Read Post
A Practical Guide to On-Device AI Pipelines with Kotlin Flow
Model on-device inference as a declarative, composable pipeline of Preprocess, Inference, and Postprocess stages wired together with Kotlin Flow operators, backpressure, and layered tests.
Read Post
Inside MMKV: How mmap and Append-Only Protobuf Beat SharedPreferences
A practical walkthrough of MMKV's mmap memory mapping and append-only Protobuf writes, why SharedPreferences blocks the main thread, and how to choose between SP, MMKV, and DataStore.
Read Post
Android Spannable Internals: From Spanned to Canvas Rendering
An end-to-end walkthrough of Android's rich text engine β markup storage, span callback layers, TextLine Canvas dispatch, custom ReplacementSpan and ParagraphStyle, and Compose AnnotatedString.
Read Post
Inside Android Crash Aggregation: Stack Fingerprinting to Automated Issue Triage
A practical guide to Android crash stack fingerprinting: normalizing exception messages, deobfuscation-aware frame processing, weighted frame-sequence fingerprints, similarity clustering, and an automated triage pipeline.
Read Post
Inside Android Matrix: A Production-Grade APM Framework Walkthrough
How Matrix intercepts main-thread stalls with Looper Printer sampling, catches hidden I/O via PLT Hook, and what to copy when building your own APM.
Read Post
Android Studio Profiler in Practice: CPU Tracing to Memory Allocation Diagnostics
A practical guide to the full Android Studio Profiler toolkit, covering CPU sampling vs. instrumentation, flame graph reading, memory allocation tracking, heap dump diffing, and layered diagnosis with Systrace and Perfetto.
Read Post
Android VpnService End-to-End: TUN Virtual Interface to Packet Interception and Local Proxy
A practical walkthrough of building a local VPN proxy on Android with VpnService, covering TUN interface creation, IP packet parsing, TCP state machine maintenance, SOCKS5 forwarding, and NAT.
Read Post
Building a Custom RecyclerView LayoutManager: Layout, Caching, Scroll, and Animation
An end-to-end guide to writing a custom RecyclerView LayoutManager: the Fill algorithm, three-tier cache, scroll state machine, dead-reckoning, and animation tradeoffs.
Read Post
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.
Read Post
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.
Read Post
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.
Read Post
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.
Read Post