通过合并多个dex加载插件中的类
更多适配见Android插件化的兼容性(上):Android O的适配
Android插件化的兼容性(中):Android P的适配
Android插件化的兼容性(下):突破Android P中灰黑名单的限制
step1:通过反射把插件dex和宿主dexElements合并成一个新的dex数组,替换宿主之前的dexElements字段;
step2:对ActivityManagerNative的getDefault()方法进行Hook,把TargetActivity替换为StubActivity;
step3:对H类的mCallback字段进行Hook,拦截它的handleMessage()方法,把StubActivity再替换回TargetActivity。
相较于PluginAcitivityDemo方案,插件中activity的加载不需要特地指明使用该插件的ClassLoader。
加载插件资源见PluginDemo