Diferencia entre revisiones de «APK (formato)»

Contenido eliminado Contenido añadido
Sin resumen de edición
Sin resumen de edición
Línea 12:
Un [[extensión de archivo|archivo con extensión]] '''.apk''' ('''''A'''ndroid A'''p'''plication Pac'''k'''age'', significado en español: ''Aplicación empaquetada de Android'') es un paquete para el sistema operativo [[Android]]. Este formato es una variante del formato [[Java Archive|JAR]] de [[Plataforma Java|Java]] y se usa para distribuir e instalar componentes empaquetados para la plataforma Android para [[teléfonos inteligentes]] y [[Tableta (computadora)|tableta]]s,<ref>[http://sites.google.com/site/io/inside-the-android-application-framework Google video that discusses APK]</ref><ref>[http://web.archive.org/web/http://openhandsetmagazine.com/2008/01/tips-how-to-install-apk-files-on-android-emulator/ Instructions on installing APK files onto the developer Android emulator]</ref> así como también algunas distribuciones enfocadas a su uso en ordenadores personales de escritorio y portátiles (Note y Netbook respectivamente) ejemplo: ''Remix OS''
 
Los archivos APK son análogos a otros paquetes de software como APPX en Microsoft Windows o paquetes Deb en sistemas operativos basados ​​en Debian como Ubuntu. Para crear un archivo APK, primero se compila un programa para Android, y luego todas sus partes se empaquetan en un solo archivo. Un archivo APK contiene todo el código de ese programa (como archivos .dex), recursos, activos, certificados y archivo de manifest. Como es el caso con muchos formatos de archivo, los archivos APK pueden tener cualquier nombre necesario, siempre que el nombre del archivo termine en ".apk".
Un archivo .apk normalmente contiene los siguientes ficheros:
 
* AndroidManifest.xml - define los permisos de la aplicacion asi como el almacenamiento de este
* classes.dex
* resources.arsc - define el nombre de la aplicacion
* res (carpeta) - guarda los archivos de la aplicacion (imagenes, sonidos, escenas, etc)
* META-INF (carpeta)
* lib (carpeta)
 
El Formato *.APK es básicamente un archivo comprimido [[Formato de compresión ZIP|en ZIP]] con diferente extensión por lo cual pueden ser abiertos e inspeccionados usando un [[software]] [[archivador de ficheros]] como [[7-Zip]], [[Winzip]], [[WinRAR]] o [[Ark]].
 
Para abrirlo como aplicación debe usarse un emulador de android para diferentes plataformas.
 
== Contenido ==
Un archivo .apkAPK es un archivo que normalmente contiene los siguientes ficherosarchivos y directorios:
 
* <code>META-INF</code> directorio:
** <code>MANIFEST.MF</code>: el [[Archiovp manifest]]
** <code>CERT.RSA</code>: El certificado de la aplicacion
** <code>CERT.SF</code>: la lista de recursos y Digestor de las líneas correspondientes en el archivo MANIFEST.MF; por ejemplo:
<pre>
Signature-Version: 1.0
Created-By: 1.0 (Android)
SHA1-Digest-Manifest: wxqnEAI0UA5nO5QJ8CGMwjkGGWE=
...
Name: res/layout/exchange_component_back_bottom.xml
SHA1-Digest: eACjMjESj7Zkf0cBFTZ0nqWrt7w=
...
Name: res/drawable-hdpi/icon.png
SHA1-Digest: DGEqylP8W0n0iV/ZzBx3MW0WGCA=</pre>
*<code>lib</code>: El directorio que contiene el código compilado que es específico de una capa de software de un procesador, el directorio se divide en más directorios dentro de él:
** <code>armeabi</code>:
Código compilado sólo para todos los procesadores basados ​​en [[ARM architecture|ARM]]
** <code>armeabi-v7a</code>: Código de compilación sólo para todos los procesadores ARMv7 y superiores
** <code>arm64-v8a</code>: Código compilado para todos los procesadores ARMv8 arm64 y superiores<ref>{{Cite web|url=https://developer.android.com/ndk/guides/abis.html|title=ABI Management {{!}} Android Developers|website=developer.android.com|access-date=2016-03-30}}</ref><ref>{{Cite web|url=https://developer.android.com/ndk/guides/abis.html|title=ABI Management {{!}} Android Developers|website=developer.android.com|access-date=2016-12-31}}</ref>
** <code>x86</code>: Código compilado sólo para procesadores [[x86]]
** <code>x86_64</code>: Código compilado sólo para procesadores [[x86 64]]
** <code>mips</code>: Código compilado sólo para procesadores [[MIPS architecture|MIPS]]
* <code>res</code>: El directorio que contiene recursos no compilados en resources.arsc (ver más abajo).
* <code>assets</code>: Un directorio que contiene recursos de aplicaciones, que puede ser recuperado por
<code>AssetManager</code>.
* <code>AndroidManifest.xml</code>: Un archivo de manifiesto adicional de Android, que describe el nombre, la versión, los derechos de acceso y los archivos de bibliotecas referenciados para la aplicación. Este archivo puede estar en Android [[binario XML]] Que se pueden convertir en XML de texto claro legible por humanos con herramientas tales como [https://code.google.com/p/android4me/downloads/list AXMLPrinter2], [https://code.google.com/p/android-apktool/ android-apktool], or [https://code.google.com/p/androguard/wiki/Usage#Androaxml Androguard].
* <code>classes.dex</code>: The classes compiled in the [[DEX (file format)|dex file format]] understandable by the [[Dalvik (software)|Dalvik virtual machine]]
* <code>resources.arsc</code>: a file containing precompiled resources, such as binary XML for example.
 
El tipo [[MIME]] definido para .apk es ''application/vnd.android.package-archive''.<ref>[http://androidguys.com/?p=2235 Developer description of MIME type for .apk]</ref>