关于使用的ClassLoader问题?

Tinker没有使用parent classloader方案,而是使用Multidex插入dexPathList方式,这里主要考虑到分平台内部类可能存在校验classloader的问题。

  • 若SDK>=24, 即Android N版本,当补丁存在时,我们将PathClassloader替换为AndroidNClassLoader, 但是它依然继承与PathClassLoader。我们依然可以像以往那样对它进行类似makeDexElements的操作。;
  • 若SDK<14, 我们没有对classloader做处理,这里需要注意补丁的Dex是插入在dexElement的前方。