Skip to content
Leo Zhang
Back to Projects

Android Hotfix Framework

Chunxiao Technology Co., Ltd. · 2017 – 2023

Role: Android Framework Developer

Android Hotfix Framework

In-house Android hotfix framework supporting dex patching and resource hotfix on Android 5+. Native .so patching was not supported. After years of practice, led the decision to retire the system in favor of staged rollout + feature flags, achieving simpler architecture and lower maintenance costs.

Sub-minute

Patch Delivery

Weeks→Hours

Resolution Time

Canary + Rollback

Rollout

5+

Android Support

Problem

Full app store releases for critical bugs took weeks to reach users. The team needed a way to deploy emergency fixes without going through the entire release cycle.

Solution

Built a class-loader based hotfix framework supporting dex replacement and resource patching. Native .so libraries could not be hot-patched — those bugs still required full APK updates. After encountering significant technical limitations (version coupling, ROM compatibility, Crash Loop risks) and escalating maintenance costs (independent patch lifecycle, expanded QA matrix, continuous platform adaptation), led the evaluation that resulted in retiring the system.

Architecture

ClassLoader hooking for dex patching → Resource loader hooking for UI patches → Patch management SDK with auto-download, verification, and apply-on-next-launch. Replacement: full APK upgrade + staged rollout + Feature Flag + Remote Config + CI/CD.

Key Highlights

  • Designed class-loader based hotfix framework supporting dex patch deployment without app restart on Android 5+
  • Built patch generation toolchain automating dex diff, signature verification, and canary rollout with rollback
  • Achieved sub-minute patch deployment, reducing critical bug resolution from weeks to hours
  • Implemented resource hotfix using resource loader hooking for UI and assets patches
  • Led the technical evaluation and phase-out, driving migration to staged rollout + feature flags

Tech Stack

KotlinJavaC++NDK/JNIClassLoaderDex ManipulationCanary Deployment

What I Learned

Deep understanding of Android Runtime, ClassLoader, Dex loading, ART, JNI, and Method Hooking internals. More importantly, learned that technical decisions must evaluate long-term maintenance cost, engineering complexity, team collaboration efficiency, and business value — not just technical feasibility. The team followed the typical evolution: AndFix → Tinker → retire Hot Fix → full upgrade + staged rollout.