Documente Academic
Documente Profesional
Documente Cultură
Facultad de Ingeniería
Compiladores
Trabajo de investigación
Cuenta: 302548778
Android posee una amplia comunidad de desarrolladores de programas de aplicación (apps) que extienden la
funcionalidad de los dispositivos. Existen alrededor de 100,000 aplicaciones disponibles para Android. El
Mercado de Android es la tienda de aplicaciones en línea a cargo de Google, aunque las aplicaciones se
pueden descargar de otros sitios (excepto el de AT&T, que no permite esto). Los desarrolladores utilizan el
lenguaje Java, controlando el dispositivo por medio de las librerías de Java para el desarrollo-Google.
La pila de software del sistema operative de Android se compone de las aplicaciones de Java que se ejecutan
en aplicaciones orientadas a objetos en la parte superior de bibliotecas del núcleo de Java que se ejecuta en
una máquina virtual Dalvik con compilación JIT. Las librerías escritas en C incluyen el administrador de
superficie OpenCore, media framework, Sistema Administrador de Bases de Datos Relacionales SQLite,
OpenGL ES 2.0 gráficas API, WebKit layout engine, SSL y librerías C Bionic. El Sistema Operativo de Android
consiste en 12 millones de líneas de código que incluyen 3 millones de líneas de XML, 2.8 millones de líneas de
C, 2.1 millones de lóneas de Java y 1.75 millones de líneas de C++.
Diagrama de la estructura de Android
0x8 4 Checksum
0xC 20 Firma SHA-1
A diferencia de la Máquina Virtual de Java, las cuales son máquinas de stack, la máquina virtual de Dalvik es
una arquitectura basada en registros.
Las máquinas basadas en pilas (stack) debe utilizar instrucciones para cargar los datos en la pila y manipular
los datos y requieren más instrucciones de registro máquinas para aplicar el mismo código de alto nivel, pero
las instrucciones en una máquina de registro debe codificar los registros de origen y destino por lo que tienden
a ser más grandes. Esta diferencia es de una importancia básica a los intérpretes para los que VM código de
operación de despacho tiende a ser caro, junto con otros factores igualmente relevantes para la compilación
JIT.
- Dexdump.- Viene con el SDK de Android, es menos conveniente de usar que dedexer porque por dar un
ejemplo no soporta etiquetas, produce archivos grandes, etc.
- Baksmali.- Es un ensamblador competente de código abierto de DEX, Viene con el bytecode de Dalvik.
Los ejecutables de Dalvik pueden ser modificados cuando son instalados dentro de un dispositivo móvil. Para
poder obtener optimizaciones, el orden de bytes se debe intercambiar en algunos datos, estructuras simples de
datos y las bibliotecas de función puede estar vinculada en línea, por ejemplo las clases de objetos vacíos
pueden ser un corto circuito.
Así como Andriod 2.2, Dalvik tiene un compilador JIT.
Siendo optimizado para requerimientos de baja memoria, Dalvik tiene algunas características que la diferencian
de otras máquinas virtuales:
Bibliografía
http://dedexer.sourceforge.net/
http://www.slideshare.net/paller/dedexer
http://en.wikipedia.org/wiki/Dalvik_(software)
http://en.wikipedia.org/wiki/Android_(operating_system)
http://www.retrodev.com/android/dexformat.html