Cómo implementar actualizaciones en caliente de recursos de Android
Sabemos que Java carga la clase correspondiente a través de ClassLoader en tiempo de ejecución. ClassLoader en sí es una abstracción. Android usa la clase PathClassLoader como el cargador de clases predeterminado de Android. PathClassLoader en realidad implementa una carga simple de archivos de clases desde el sistema de archivos. El propio PathClassLoader hereda de BaseDexClassLoader, y BaseDexClassLoader sobrecarga el método findClass, que es el núcleo de ClassLoader.
1
2
3
4
5
6 p> p>
7
8
9
10
11
12 p>
13
14
15
16
17
18
19
20
21
22
23
24
25
@Override
Clase protegida> findClass(String name) lanza ClassNotFoundException {
Lista de excepciones suprimidas = new ArrayList();
Clase c = pathList.findClass (nombre, excepciones suprimidas);
if (c == null) {
ClassNotFoundException cnfe = new ClassNotFoundException("No encontré la clase /"" + nombre + "/" en la ruta: " + listaruta);
for (Throwable t : excepciones suprimidas) {
cnfe.addSuppressed(t);
}