Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

301
Vistas
¿Cuál es la diferencia entre los archivos elf de Android art y elf de Linux?

Se ha descrito en ART wiki: https://en.m.wikipedia.org/wiki/Android_Runtime?_e_pi_=7%2CPAGE_ID10%2C1898354483 , que ART compila los archivos apk en archivos ELF durante la instalación.

Y GCC en GNU/Linux también crea archivos ELF como salida, últimamente en lugar del formato a.out.

Sé que hay diferencias en la API y la arquitectura en ambos entornos, pero ¿hay alguna diferencia estructural o notable en estos dos formatos?

¿Estos formatos son compatibles entre sí, si la arquitectura es la misma (dado que Android se ha portado a x86)?

¿O estos dos formatos de archivo son completamente diferentes?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Explicación casera: en PDF (Dalvik y ART) puede encontrar que "los archivos OAT están realmente incrustados en archivos de objetos ELF" (en la página 16 de PDF puede ver la estructura OAT). La estructura de archivos es la misma que en wiki . Es posible porque ELF "es flexible y extensible por diseño, y no está vinculado a ningún procesador o arquitectura en particular".

Del formato elf en wikipedia : con Android Runtime (ART), el valor predeterminado desde Android 5.0 "Lollipop", todas las aplicaciones se compilan en binarios ELF nativos al momento de la instalación.

Conclusión: la respuesta a su pregunta es que gcc elf y android elf tienen el mismo formato de archivo. Puede encontrar más información sobre el formato en wiki .

Actualizar

"¿Estos formatos son compatibles entre sí, si la arquitectura es la misma?"

Readelf para el archivo oat de Android (comprobado con una de las aplicaciones que tengo) muestra que el tipo de archivo oat es "DYN (archivo de objeto compartido)". Es similar a los archivos .so que podría ver si su proyecto usa JNI libs. Esos archivos elf no son compatibles con los archivos elf habituales de GNU/Linux, incluso si están creados para la misma arquitectura debido a las "funciones de la biblioteca del sistema bionic y al enlazador dinámico" (que se usa en Android). Puede encontrar más descripción sobre por qué no son compatibles aquí . Bionic en wiki .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda