Android Engineering Articles · Page 2

Android Reflection Under the Hood: Hidden API Greylist Bypass to Runtime Dynamic Proxy Metaprogramming

Starting from a NoSuchMethodException crash, this article examines how Android's reflection mechanism works at the ART layer, the filtering logic of the three-tier hidden API greylist, and the applicable boundaries of three bypass approaches — meta-reflection replacement, setHiddenApiExemptions, and clearing flag bits via JNI — then discusses dynamic proxy production engineering and the engineering trade-offs of metaprogramming.

Android Analytics SDK End-to-End: From Event Collection Design to a Reliable Data Reporting Pipeline

A systematic walkthrough of an Android analytics SDK's full pipeline: event modeling, exposure collection and deduplication, mmap persistence over SQLite, batch compression with exponential-backoff reporting, and privacy compliance and production monitoring.

Integrating On-Device AI Inference into Compose: State Machines, Lifecycle Isolation, and Streaming Rendering

A practical pattern for wiring on-device AI inference into Jetpack Compose: sealed-class state machines, lifecycle-safe coroutines, and frame-aligned streaming.

Kotlin Sequence vs. Iterable: Lazy Collection Performance

How Kotlin Sequences avoid intermediate allocations through lazy evaluation, the Iterator protocol and yield, with benchmark data and practical selection guidance.

Systematic Fault-Tolerant UI States in Android

A systematic approach to modeling loading, content, empty, and error states in Android apps.

Customizing RecyclerView SnapHelper for Multi-Page Fling Snapping

A guide to RecyclerView's SnapHelper: how it intercepts flings, maps velocity to positions, and calculates final snapping offsets, with custom strategies.

Kotlin Error Handling: try-catch, Result, and Arrow Either

A practical comparison of try-catch, Kotlin Result, and Arrow Either for structuring error handling in Android apps.

Unified Runtime Skinning for View and Compose with One Theme State

A unified architecture that shares one theme state across View and Compose, so runtime theme switching works seamlessly without recreating activities.

Containing Non-Deterministic Output in On-Device AI Inference Testing

A practical guide to testing on-device AI inference with tolerance-based golden snapshots and P95 latency baselines.

Forms Are Not UI—They Are State Machines

A practical Compose pattern for modeling forms as state machines: field state, form orchestration, dynamic lists, and cross-field linkage.

Android FlexboxLayout and RecyclerView: W3C Spec in Measure/Layout

How Android FlexboxLayout maps the W3C flexbox spec onto View measure/layout, and how to combine it with RecyclerView.

RecyclerView ItemDecoration: The Decorating Engine for Sticky Headers and Timelines

ItemDecoration is more than dividers. Learn how onDraw, onDrawOver, and getItemOffsets power sticky headers, timelines, and group labels in RecyclerView.

On-Device AI Remote Configuration and A/B Testing for Android

A production approach to lightweight remote config, deterministic on-device A/B experiments, and safe rollback for on-device AI inference.

Android On-Device Inference with GGUF and llama.cpp

A practical walkthrough for porting and tuning llama.cpp with GGUF to run a 7B model on a Snapdragon 8 Gen 2 phone.

A Lightweight Debugging Toolchain for Android On-Device AI Inference

A practical debugging toolchain for Android on-device AI inference, covering input visualization, intermediate output capture, latency breakdown, and memory monitoring.

Android Instant Apps: Legacy Architecture After Shutdown

(Updated on )
Review Instant Apps modules and URL routing as legacy architecture. Google Play Instant stopped serving apps in December 2025.

On-Device Model Drift Detection and Automatic Rollback for Android

A practical on-device quality system for Android OCR models: lightweight PSI drift detection, model versioning, automatic rollback, and device-cloud feedback.

On-Device AI Prompt Injection and Defense in Depth

How prompt injection, jailbreaks, and tool-call side effects threaten on-device AI, plus a four-layer defense from input classifiers to Native-layer data masking.

AnimatedVectorDrawable to Compose Vector Animation

How AnimatedVectorDrawable bridges ObjectAnimator to VectorDrawable nodes, and how Compose reuses the same AVD model.

Android Adaptive Refresh Rate, LTPO, and Choreographer: From preferredDisplayModeId to Hardware Shadow Scheduling

Why a 120Hz LTPO device holds video playback at 60Hz, how DisplayModeDirector arbitrates refresh rate votes, and how to adapt Choreographer timing when VSYNC changes.