问题描述
有一个三个参数的构造器始终没找到在哪里调用的?求教大神?
问题解答
回答1:创建PathClassLoader的是用的工厂:
/** * Creates path class loaders. * * @hide */public class PathClassLoaderFactory { // Unconstructable private PathClassLoaderFactory() {} /** * Create a PathClassLoader and initialize a linker-namespace for it. * * @hide */ public static PathClassLoader createClassLoader(String dexPath,String librarySearchPath,String libraryPermittedPath,ClassLoader parent,int targetSdkVersion,boolean isNamespaceShared) {// 这里被调用的PathClassLoader pathClassloader = new PathClassLoader(dexPath, librarySearchPath, parent);Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, 'createClassloaderNamespace');String errorMessage = createClassloaderNamespace(pathClassloader, targetSdkVersion, librarySearchPath, libraryPermittedPath, isNamespaceShared);Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);if (errorMessage != null) { throw new UnsatisfiedLinkError('Unable to create namespace for the classloader ' + pathClassloader + ': ' + errorMessage);}return pathClassloader; } private static native String createClassloaderNamespace(ClassLoader classLoader,int targetSdkVersion,String librarySearchPath,String libraryPermittedPath,boolean isNamespaceShared);