DelegateLastClassLoader
  public
  
  final
  
  class
  DelegateLastClassLoader
  
  
  
  
  
  
  
  
  
  
    extends PathClassLoader
  
  
  
  
  
  
| java.lang.Object | ||||
| ↳ | java.lang.ClassLoader | |||
| ↳ | dalvik.system.BaseDexClassLoader | |||
| ↳ | dalvik.system.PathClassLoader | |||
| ↳ | dalvik.system.DelegateLastClassLoader | |||
A ClassLoader implementation that implements a delegate last lookup policy.
 For every class or resource this loader is requested to load, the following lookup order
 is employed:
 
- The boot classpath is always searched first
- Then, the list of dexfiles associated with this classloaders'sdexPathis searched.
- Finally, this classloader will delegate to the specified parent.
Summary
| Public constructors | |
|---|---|
| 
      DelegateLastClassLoader(String dexPath, ClassLoader parent)
      Equivalent to calling  | |
| 
      DelegateLastClassLoader(String dexPath, String librarySearchPath, ClassLoader parent)
      Equivalent to calling  | |
| 
      DelegateLastClassLoader(String dexPath, String librarySearchPath, ClassLoader parent, boolean delegateResourceLoading)
      Creates a  | |
| Public methods | |
|---|---|
| 
        
        
        
        
        
        URL | 
      getResource(String name)
      Finds the resource with the given name. | 
| 
        
        
        
        
        
        Enumeration<URL> | 
      getResources(String name)
      Finds all the resources with the given name. | 
| Protected methods | |
|---|---|
| 
        
        
        
        
        
        Class<?> | 
      loadClass(String name, boolean resolve)
      Loads the class with the specified binary name. | 
| Inherited methods | |
|---|---|
Public constructors
DelegateLastClassLoader
public DelegateLastClassLoader (String dexPath, ClassLoader parent)
Equivalent to calling DelegateLastClassLoader(java.lang.String, java.lang.String, java.lang.ClassLoader, boolean)
 with librarySearchPath = null, delegateResourceLoading = true.
| Parameters | |
|---|---|
| dexPath | String | 
| parent | ClassLoader | 
DelegateLastClassLoader
public DelegateLastClassLoader (String dexPath, String librarySearchPath, ClassLoader parent)
Equivalent to calling DelegateLastClassLoader(java.lang.String, java.lang.String, java.lang.ClassLoader, boolean)
 with delegateResourceLoading = true.
| Parameters | |
|---|---|
| dexPath | String | 
| librarySearchPath | String | 
| parent | ClassLoader | 
DelegateLastClassLoader
public DelegateLastClassLoader (String dexPath, String librarySearchPath, ClassLoader parent, boolean delegateResourceLoading)
Creates a DelegateLastClassLoader that operates on a given dexPath
 and a librarySearchPath.
 The dexPath should consist of one or more of the following, separated by
 File.pathSeparator, which is ":" on Android.
 
- JAR/ZIP/APK files, possibly containing a "classes.dex" file as well as arbitrary resources.
- Raw ".dex" files (not inside a zip file).
PathClassLoader, this classloader will attempt to locate classes
 (or resources) using the following lookup order.
 - The boot classpath is always searched first.
- Then, the list of dexfiles contained indexPathis searched./li>
- Lastly, this classloader will delegate to the specified parent.
parent is always searched first.
 librarySearchPath specifies one more directories containing native library files,
 separated by File.pathSeparator.
    | Parameters | |
|---|---|
| dexPath | String: the list of jar/apk files containing classes and resources, delimited byFile.pathSeparator, which defaults to":"on Android.
 This value cannot benull. | 
| librarySearchPath | String: the list of directories containing native libraries, delimited
                          byFile.pathSeparator; may benull. | 
| parent | ClassLoader: the parent class loader. May benullfor the boot classloader. | 
| delegateResourceLoading | boolean: whether to delegate resource loading to the parent if
                                the resource is not found. This does not affect class
                                loading delegation. | 
Public methods
getResource
public URL getResource (String name)
Finds the resource with the given name. A resource is some data (images, audio, text, etc) that can be accessed by class code in a way that is independent of the location of the code.
 The name of a resource is a '/'-separated path name thatf
 identifies the resource. 
| Parameters | |
|---|---|
| name | String: The resource name | 
| Returns | |
|---|---|
| URL | URLobject for reading the resource;nullif
          the resource could not be found, aURLcould not be
          constructed to locate the resource, the resource is in a package
          that is not opened unconditionally, or access to the resource is
          denied by the security manager. | 
getResources
public Enumeration<URL> getResources (String name)
Finds all the resources with the given name. A resource is some data (images, audio, text, etc) that can be accessed by class code in a way that is independent of the location of the code.
 The name of a resource is a /-separated path name that
 identifies the resource. 
| Parameters | |
|---|---|
| name | String: The resource name | 
| Returns | |
|---|---|
| Enumeration<URL> | An enumeration of URLobjects for the
          resource. If no resources could be found, the enumeration will
          be empty. Resources for which aURLcannot be
          constructed, are in a package that is not opened
          unconditionally, or access to the resource is denied by the
          security manager, are not returned in the enumeration. | 
| Throws | |
|---|---|
| IOException | |
Protected methods
loadClass
protected Class<?> loadClass (String name, boolean resolve)
Loads the class with the specified binary name. The default implementation of this method searches for classes in the following order:
- Invoke - findLoadedClass(java.lang.String)to check if the class has already been loaded.
- Invoke the - loadClassmethod on the parent class loader. If the parent is- nullthe class loader built into the virtual machine is used, instead.
- Invoke the - findClass(java.lang.String)method to find the class.
 If the class was found using the above steps, and the
 resolve flag is true, this method will then invoke the resolveClass(java.lang.Class) method on the resulting Class object.
 
 Subclasses of ClassLoader are encouraged to override findClass(java.lang.String), rather than this method.  
| Parameters | |
|---|---|
| name | String: The binary name of the class | 
| resolve | boolean: Iftruethen resolve the class | 
| Returns | |
|---|---|
| Class<?> | The resulting Classobject | 
| Throws | |
|---|---|
| ClassNotFoundException | |
