¿Sigue siendo el caso que Android nunca descarga clases?

Tenemos una aplicación grande que siempre se está ejecutando en el límite de conteo del método de miedo. Se me ha pedido que encuentre una manera de permitir que haga mucho más, incluidos los complementos de soporte. Buscando formas de descargar código, me encontré conConsejos JNI que dice

Las clases solo se descargan si todas las clases asociadas con un ClassLoader pueden ser recolectadas como basura, lo cual es raro pero no será imposible en Android.

Esto parecía implicar que un complemento se puede descargar si, por ejemplo,

usar un nuevoDexClassLoader para cada archivo .jar,solo se refiere al complemento a través de una referencia de interfaz, yanule cualquier copia de esa referencia de interfaz cuando haya terminado.

Entonces, creé un caso de prueba:

Creé un par de complementos triviales, usando un cargador único para cada uno.Creé unReferenceQueue<ClassLoader> y creé referencias débiles a mis dos cargadores, usando esa cola; Creé / inicié un subproceso que se repite indefinidamente, haciendo una cola.remove() y la presentación de informes.Yo también creé unaReferenceQueue<Class<?>> y creó referencias débiles a cada plugingetClass() usando la cola Creé / inicié otro hilo supervisando la cola de referencia de clase.Creo mil mapas de bits de 1000x1000xARGB_8888 para forzar completamente a gc.

Mis hilos de monitoreo parecen funcionar - viloader2 Consiga gc-ed cuando lo useloader1 para cargar ambos complementos por error ;-) - pero por lo demás mis hilos permanecen en silencio, incluso en 4.3. ¿Tal vez me esté perdiendo algo obvio en este caso de prueba, o sigue siendo el caso que el

Dalvik VM actualmente no descarga clases

como empleado de GoogleFadden dice enAndroid: ¿Cuándo se descargan las clases por el sistema?

Respuestas a la pregunta(1)

Su respuesta a la pregunta