判断每个dex的新旧使用SharedPreferences存时间戳和crc来决定是否更新,其实就是用一个生命周期与dex文件相同的位置去存储数据就好这个CRC是全局的CRC,减少了计算量所有secondary dex输出为zip文件,这样是为了保持和DexClassLoader和DexPathList的兼容反射是扩展了DexClassLoader中的dex入口,与一般的动态加载不太一样