5 votos

¿Por qué un APK contiene archivos dll?

Utilicé el gestor de archivos en Linux Mint para abrir el APK de un juego hecho con Unity. Para mi sorpresa dentro del archivo hay una carpeta bajo la ruta /activos/bin/Datos/Administrados/ que contiene casi 10mb de librerías DLL. Por lo que tengo entendido, éstas sólo deberían ser útiles en máquinas con Windows. ¿Por qué alguien cargaría 10mb de datos inútiles en un APK de 50mb? ¿Me estoy perdiendo algo aquí y las bibliotecas DLL de hecho pueden ser utilizadas por Android?

El archivo en linux da esta salida en las DLLs:

PE32 executable (DLL) (console) Intel 80386 Mono/.Net assembly, for MS Windows

4 votos

Adivinanza cruda de file La aplicación utiliza Mono y carga el código a través de esas librerías de forma similar a como lo hace Wine en Linux. Algunas cosas comparables en Linux eran el win32codecs También una colección de *.dll para soportar códecs multimedia adicionales en Linux.

3voto

Andy Brudtkuhl Puntos 1714

La suposición de Izzy es correcta. Unity se basa en el entorno de programación .NET de Microsoft. Un juego Unity se escribe en C# y se compila en archivos DLL (el ejecutable portátil formato, que se abrevia como PE32 en la salida que has incluido). Unity empaqueta esos archivos junto con los activos del juego (datos 3D, texturas, vídeos, sonidos, etc.) y el tiempo de ejecución Mono. Mono es un tiempo de ejecución de código abierto para software hecho en .NET: carga los archivos DLL de .NET y los ejecuta.

Los archivos DLL pueden contener programas ejecutables para Windows, o archivos de iconos de Windows, o código .NET compilado (el equivalente .NET de Java .class archivos). En un juego Unity, es la última de estas opciones.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X