estructura de archivos APK

archivo APK (paquete Android) es un archivo comprimido llamado apk sufijo, archivo APK contiene todos los contenidos de una aplicación para Android, el archivo de la plataforma Android se utiliza para instalar la aplicación.

  • activos necesidad almacenados para ser empaquetados en archivos estáticos de APK
  • lib aplicación de almacén depende de la biblioteca nativa
  • res almacenar el archivo de recursos de la aplicación
  • META-INF tienda de aplicaciones de firma y el certificado
  • AndroidManifest.xml archivo de configuración de la aplicación
  • classes.dex archivo ejecutable DEX
  • resources.arse relación de correspondencia entre la tabla índice de recursos, el archivo de recursos de recursos y registro de identificación de

res

Es la abreviatura de recursos, archivo de recursos de almacenamiento, existen todos los archivos de esta carpeta se asignarán al proyecto Android en el archivo .R, genera un documento de identidad correspondiente, al acceder al uso directo de los recursos ID, un R.id.filename.
en res carpeta puede contener una pluralidad de carpetas, en el que

  • aim almacenan los archivos de animación
  • drawable Directorio de recursos de imagen
  • layout Directorio para el diseño de archivo
  • valuesDirectorio de almacenar algunos valores característicos, colors.xmllos valores de color de color almacenados, dimens.xmldefinir el tamaño del valor, string.xmlla cadena definida valor, styles.xmldefinido objeto de estilo
  • xmlXML carpeta para almacenar cualquier archivo puede ser leído por Resources.getXML () en tiempo de ejecución
  • rawSe puede asignar directamente a cualquiera de los archivos en el dispositivo, sin compilar

lib

bibliotecas nativas dependientes de la aplicación almacenados, típicamente escritas en C / C ++, en donde la biblioteca puede contener un tipo diferente lib 4, dependiendo del tipo de CPU, que se pueden dividir en ARM,, ARM-v7a, MIPS, X86corresponden a la arquitectura ARM, ARM- arquitectura V7, la arquitectura MIPS y la arquitectura X86.

Diferentes arquitecturas de CPU correspondientes a diferentes directorios, cada directorio pueden poner mucho lo que la versión correspondiente de la biblioteca, y la estructura fija del directorio, los usuarios pueden almacenar su biblioteca para que de acuerdo a este directorio. Actualmente terminal móvil utilizado en el mercado se basan principalmente en la arquitectura ARM o ARM-V7A, X86 y arquitecturas MIPS de terminales móviles inteligentes es relativamente pequeño, por lo que algunas aplicaciones directorio lib contiene sólo directorio armeabi-v7a armeabi o directorio.

META-INF

Guardar información de la firma de la solicitud, la información de firma puede verificar la integridad de los archivos APK. AndroidSDK APK calcula la integridad de todos los archivos en el paquete APK durante el envasado, la integridad y guardarlas en la carpeta META-INF, la aplicación comprobará primero la integridad del clip de acuerdo con los archivos APK META-INF en la instalación por lo que podemos asegurar que todos los archivos en el archivo APK no debe ser manipulado. APK con el fin de garantizar que la aplicación no se ha modificado maliciosamente o infección viral, ayudar a garantizar la seguridad e integridad del sistema de aplicaciones de Android.

directorio META-INF que contiene el archivo debajo de allí CERT.RSA, CERT.DSA, CERT.SFy MANIFEST.MF, lo que es CERT.RSA desarrolladores tomar ventaja de la clave privada para firmar el archivo APK de la firma, CERT.SF, MANIFIEST.MF registró el valor hash SHA-1 del archivo en el archivo .

AndroidManifest.xml

Android es el archivo de configuración de la aplicación se utiliza para describir la aplicación "información general" Android archivo de ajustes, en términos simples, el equivalente a las aplicaciones de Android a Android sistema "auto-presentación" del archivo de configuración, el sistema Android se puede basar en este "auto introducción "APK comprensión completa de aplicaciones de tI, cada aplicación Android debe contener un archivo AndroidManifest.xml, y su nombre se fija y no puede ser modificado.

en general, consideramos que el código para cada actividad, servicio, proveedor y receptor registrados en Android el tiempo de desarrollo de aplicaciones en AndroidManifest.xml, la única manera de empezar los correspondientes componentes del sistema, este archivo también contiene algo de declaración de los derechos adicionales y el uso SDK de información de la versión, y así sucesivamente.

Cuando se envasa, el compilador AndroidManifest.xml sencilla, fácil de reconocer el sistema Android, después de compilar el formato es el formato AXML, como se muestra a continuación:

AXML cabeza : Fijo representado archivo AXML, que es un valor 0x00080003 fija
la longitud del archivo AXML : identifica el tamaño del archivo AXML
StringDataSegment : documento XML, todo se guarde en este tipo de serie.
ResourceIdSegment : archivo XML ID archivo de recursos se guarda en un comunicado aquí.
XmlContentSegment : segmento de contenido xml es, de acuerdo con la estructura de archivos XML están dispuestos secuencialmente, almacenada en el contenido de datos XML.

classes.dex

programa Java tradicional, primer puesto de Java archivos compilados en archivos de clase, código de bytes se almacenan en el archivo de clase, la máquina virtual de Java puede realizar estos archivos de clases a través de la interpretación.

máquina virtual Dalvik es la máquina virtual Java se ejecuta optimizado bytecode Dalvik, bytecode Dalvik que se convierte a partir de código de bytes de Java, en circunstancias normales, la aplicación Android cuando el paquete a través de AndroidSDK dx herramienta de código de bytes de Java convierte en Dalvik código de bytes.

dx herramientas se pueden combinar para una pluralidad de archivos de clase, recombinante, la optimización se puede lograr para reducir el volumen, el propósito de acortar el tiempo de ejecución. proceso de conversión herramienta Dx, como se muestra a continuación:

Como se muestra arriba, la herramienta de dx el contenido de cada región de cada uno de los archivos .class a ser pesados, recombinante, genera archivos optimizado dex reordenamiento dex archivos pueden ser generados en la ejecución de la máquina virtual Dalvik, y más rápido.

resources.arsc

Se utiliza para registrar la relación de correspondencia entre los archivos de recursos y de identificación de recursos, se utiliza para encontrar los recursos de acuerdo con el ID de recurso.

Android fue desarrollado sub-módulo, res específicamente directorio utilizado para almacenar el archivo de recursos, cuando en las necesidades de código para llamar al archivo de recursos, simplemente llame findViewById () puede obtener el archivo de recursos cuando la res carpeta para colocar un archivo, aapt generará automáticamente el ID correspondiente almacenada en el archivo .R, podemos llamar a este ID, sólo que esta identificación no es suficiente, archivo .R sólo para asegurar que el compilador no se da, de hecho, el programa se está ejecutando, el sistema de acuerdo con la ID de encontrar correspondiente ruta del recurso y se utiliza para grabar el archivo de archivos resources.arsc de identificación y de recursos archivos de relación correspondiente, tal posición.


Reimpreso desde arriba https://blog.csdn.net/aha_jasper/article/details/104944929

Supongo que te gusta

Origin www.cnblogs.com/huaranmeng/p/12595135.html
Recomendado
Clasificación