Bibliotecas Android / Java
Estas preguntas son mi intento de entender cómo Android maneja archivos JAR y bibliotecas externas, etc. Es conceptual.
En Java, hay un archivo JAR rt.jar que viene con el JRE, por lo que cada aplicación tiene acceso a las bibliotecas principales de Java.
- Librerías Android Jar
- Ejecutar un jar ejecutable en android
- Cómo evitar el acceso de clase en el proyecto de la biblioteca de Android Y utilizar paquetes
- Error al importar jar en un proyecto android
- Ejecutar un tarro multidex independiente en Android Kitkat
-
¿El cargador de clases de Java carga las clases sólo cuando las necesita la aplicación?
-
¿Es rt.jar equivalente a android / system / framework / jars?
-
Cuando desarrollamos una aplicación con el SDK, incluimos android.jar desde una de las API de Android. ¿Es android.jar esencialmente el AOSP compilado para esa API (menos algunas bibliotecas ocultas)?
-
Android.jar no se incluye realmente con un APK, ¿verdad? Una vez en un dispositivo, el APK está utilizando /system/framework/framework.jar, ¿correcto?
-
Si sí a 4, ¿cómo le dice a una aplicación que use esa biblioteca? ¿Es esto algo que puedo ver el código fuente para?
-
Cuando agregamos un JAR a un proyecto de Android, ¿esto es como incluir una biblioteca estática? El código de la biblioteca se acaba de compilar en classes.dex como el resto del proyecto?
-
Cuando añadimos un proyecto de biblioteca de Android a una aplicación, ¿también se compila en classes.dex? La única diferencia entre esto y 6 es que un proyecto de biblioteca puede contener recursos?
-
Si cada aplicación hace referencia a /system/framework/framework.jar (y otros, como services.jar etc.), ¿hay un montón de instancias de esa biblioteca ejecutándose al mismo tiempo en el dispositivo? ¿Es como una biblioteca dinámica que se carga en la memoria varias veces?
Me encantaría responder a todas estas preguntas, pero también agradecería sugerencias a algunos buenos lugares para leer sobre estas cosas.
- Cómo crear 2 jarras para pro y lite con el mismo nombre en andorid / eclipse
- Utilice ya desarrollado el proyecto android en otro proyecto directamente como archivo .xyz
- Duplicar archivos durante el empaquetado de APK app-debug-unaligned.apk
- Android Proguard saltar el frasco externo
- Cómo incluir archivos jar en mi proyecto eclipse
- Importar archivo .jar externo al proyecto Android
- Dependencias transicionales de AAR en Maven
- Jar Mismatch Se encontraron 2 versiones de android-support-v4.jar en la lista de dependencias
Corregirme si estoy equivocado en cualquiera de las respuestas y editaré:
1.- Android ha sido JIT durante años, pero hay un nuevo tiempo de ejecución que obliga a AOT a mejorar el rendimiento ahora que la mayoría de los dispositivos pueden manejarlo: Dalvik ART
2.- ??
3-5.- La jarra del androide es proporcionada por el IDE para propósitos de compilación, pero la implementación real es cargada por el sistema operativo, así es como logran la compatibilidad hacia atrás (y la fragmentación) y los mismos APKs que trabajan en roms cocinadas como Samsung o Amazonas.
6.- Sí, todo está empaquetado en classes.dex y hay un hardcap de 65k métodos entre todas las dependencias. Hay algunas sustituciones del tiempo del compilador para las dependencias que ya pueden estar incluidas en el sistema operativo.
7.- No estoy seguro acerca de los nuevos AAR pero los módulos u otros proyectos se compilan y se agrupan, sí.
8.- Hay un espacio de memoria compartida para esas cosas, junto con los recursos del sistema: Commonsware – ¿Qué es la sección de Dalvik Consumo de memoria.