覆盖系统类加载器

Ita*_*nco 5 android system classloader

在 Java 中,可以使用以下方法替换默认系统 ClassLoader:

java -Djava.system.class.loader=com.test.MyClassLoader xxx
Run Code Online (Sandbox Code Playgroud)

这样,自定义类加载器用于加载新类,同时将默认系统类加载器作为其父类。

可以使用非运行时方法在 Android 应用程序中完成相同的系统 ClassLoader 替换吗?(gradle/manifest 或其他一些编译标志)

我不想在运行时替换系统类加载器,而是在整个应用程序启动时为整个应用程序设置一个不同的系统类加载器,甚至在应用程序类加载之前。

最终目标是在<clinit>调用Application 类之前运行代码(这基本上允许我按照我认为合适的方式加载应用程序中的所有类)。