Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

299
Visualizações
What is the difference between android art elf and Linux elf files?

It has been described in ART wiki: https://en.m.wikipedia.org/wiki/Android_Runtime?_e_pi_=7%2CPAGE_ID10%2C1898354483 ,that ART compiles the apk files to ELF files upon installation.

And GCC on GNU/Linux also creates ELF files as output, lately instead of a.out format.

I know there are differences in API and architechtural in both environments, but are there any structural or any other notable differences in these two formats?

Are these formats compatible to each other, if the architechture is same (As android has been ported to x86)?

Or are these two file formats entirely different?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Homemade explanation: in PDF (Dalvik and ART) you could find that "OAT files are actually embedded in ELF object files" (on page 16 of PDF you could see the OAT structure). The file structure is same as on wiki. It's possible because ELF "is flexible and extensible by design, and it is not bound to any particular processor or architecture".

From elf format on wikipedia: with Android Runtime (ART), the default since Android 5.0 "Lollipop", all applications are compiled into native ELF binaries upon installation.

Conclusion: the answer to your question is that gcc elf and android elf are the same file format. More about the format you could find on wiki.

Update

"Are these formats compatible with each other, if the architecture is same"

Readelf for android oat file (checked with one of the apps I have) shows that the oat file type is "DYN (Shared object file)". It's similar to .so files you could see if your project uses JNI libs. Those elf files are not compatible to usual GNU/Linux elf files if even built for the same architecture because of "bionic's system library functions and dynamic linker" (which used in android). More description about why they are not compatible you can find here. Bionic on wiki.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda