美团Robust热更新产品化之路

2020-02-27 532浏览

  • 1.Robust
  • 2.Android 2015 APP APP
  • 3.• Robust • Robust • Robust
  • 4.Robust • • Java Native
  • 5.Robust Java patch.dex A.class(fixed) class.dex class1.dex 下载补丁patch.dex A.class classN.dex elements 重启应用补丁 (Multidex/Parent Classloader/ PathClassLoader) class.dex class1.dex A.class(old) classN.dex elements
  • 6.Robust Android Java Dex class class
  • 7.Robust hack Java
  • 8.Robust Native jni层将被patch的函数修改 为native的 patching jni层将被patch的函数指向 patched中对应的函数
  • 9.Robust native native Native class native
  • 10.Robust native Native hack Android java
  • 11.热更新效果通过hack系统内部实现
  • 12.Hack Android API
  • 13.Robust DexClassLoader
  • 14.Robust
  • 15.Robust class changeQuickRedirect changeQuickRedirect DexClassLoader class changeQuickRedirect
  • 16.Robust patch.dex super
  • 17.Robust
  • 18.Robust DexClassLoader run APatch.java
  • 19.Robust PathClassLoader B.java DexClassLoader APatch.java classLoader
  • 20.Robust classLoader public
  • 21.Robust super activity1.super.onCtreate(…) ? X
  • 22.Robust super super java
  • 23.Robust super class super invokespecial invokevirtual
  • 24.Robust super Android java super (dex) invoke-super invoke-virtual
  • 25.Robust super super private init
  • 26.Robust super super invokevirtual ? super invokespecial invoke-super invokevirtual invoke-virtual invoke-virtual invokespecial invoke-super
  • 27.Robust super invokevirtual invoke-virtual invokespecial invoke-super testSuperClass.super.thisIsSuper();
  • 28.Robust DexClassLoader invokespecial invoke-super super run TestSuperPatch.d ex Android java class
  • 29.Robust testSuperClass. thisIsSuper(); super invokespecial invoke-super TestSuperPatch.dex TestSuperPatch TestSuperPatch extends SuperClass
  • 30.Robust super DexClassLoader super run TestSuperPatch. dex
  • 31.• Robust • Robust • Robust
  • 32.Robust Robust App
  • 33.Robust Robust dex
  • 34.Robust f.class “ ” OrderCenterListAdapter.java
  • 35.Robust
  • 36.Robust Robust apk ProGuard
  • 37.Robust Patch Release Proguard Release Release APP Class Class Patch
  • 38.Robust APP Proguard applymapping applymapping work Patch
  • 39.Robust
  • 40.Robust
  • 41.Robust
  • 42.Robust Java MTApplymapping Progurad
  • 43.• Robust • Robust • Robust
  • 44.Robust patch offline 35 crash trend patch online 29.167 23.333 17.5 11.667 5.833 0 2016-07-13 2016-07-14 Class 2016-07-15 2016-07-16 2016-07-17 2016-07-18 2016-07-19
  • 45.Robust Class
  • 46.
  • 47.