Android Articles
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.
Read Post
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.
Read Post
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.
Read Post
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.
Read Post
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.
Read Post
A Unified Image Loading Facade with ImageUrlProcessor
If every page calls the image library directly, URL rules, size parameters, and preload logic scatter across the codebase. This article introduces a unified image-loading facade built around ImageUrlProcessor, preload scheduling, and observability.
Read Post
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.
Read Post
Native/Web Route Rollouts: Low-Risk Page Migration with RedirectRouterInterceptor
When the same entry point has both Native and Web/H5 implementations, a route-level staged rollout is often the safest migration layer. This article explains how RedirectRouterInterceptor uses remote config, stable hashing, parameter mapping, fallback behavior, and structured monitoring to ship Native pages smoothly and roll back quickly.
Read Post
Designing a Mobile Network Diagnostics System
The hardest part of mobile network failures is reconstructing what happened afterward. This article breaks down a practical diagnostics system: layered attribution, request-context capture, task orchestration, readable reports, privacy, and performance control.
Read Post
Route Prefetching and Request Merging for Faster First-Screen Data
Page speed depends not only on API latency, but also on whether requests start early enough and whether duplicate calls are suppressed. This article combines PrefetchRouterInterceptor at the routing layer with MergeHolder at the network layer.
Read Post
Screenshot Detection and Support Overlays for Better In-App Feedback
When users run into problems, taking a screenshot is often the most natural next step. This article describes a screenshot-detection and support-overlay design that turns that moment into a privacy-conscious in-app feedback entry.
Read Post
SmartDependency: A Source/AAR Dual-Mode Dependency System for Modular Android Projects
In large Android projects, dependency mode directly affects developer productivity. This article introduces a source/AAR dual-mode dependency system that lets developers open source modules on demand while CI and release builds return to the real binary shape.
Read Post
Android Simpleperf Flame Graphs: From CPU Sampling to Performance Bottleneck Analysis
A deep dive into Android Simpleperf, covering flame graph generation, call-stack analysis, cold-start hotspots, RenderThread investigation, multi-thread CPU attribution, and how to combine Simpleperf with Systrace.
Read Post
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
What Is Android Binder? A Practical Guide to the Binder IPC Model
A question-driven explanation of Android Binder, why system services depend on it, and which roles participate in a cross-process call.
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
What Should Android CI/CD Quality Gates Include?
A practical structure for Android CI/CD quality gates across builds, tests, lint, signing, performance benchmarks, release, and rollback.
Read Post
How to Analyze a Slow Android Gradle Build
A practical path for analyzing slow Android Gradle builds, including Build Scan, Configuration Cache, KSP, task dependencies, and cache hits.
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
What Are RecyclerView's Four Cache Levels? Understanding ViewHolder Reuse
A practical explanation of RecyclerView's four cache levels, ViewHolder reuse order, RecycledViewPool, Prefetch, and how they affect scrolling performance.
Read Post