El paquete Android con la extensión de archivo apk [1] es el formato de archivo utilizado por el sistema operativo Android y varios otros sistemas operativos basados en Android para la distribución e instalación de aplicaciones móviles , juegos móviles y middleware . Se puede crear un archivo que utilice este formato a partir de código fuente escrito en Java o Kotlin .
Los archivos APK se pueden generar y firmar desde Android App Bundles . [2]
APK es análogo a otros paquetes de software como APPX en Microsoft Windows , APP para HarmonyOS o un paquete Debian en sistemas operativos basados en Debian . Para crear un archivo APK, primero se compila un programa para Android utilizando una herramienta como Android Studio [3] o Visual Studio y luego todas sus partes se empaquetan en un archivo contenedor. Un archivo APK contiene todo el código de un programa (como archivos .dex ), recursos, activos, certificados y archivo de manifiesto . Como ocurre con muchos formatos de archivo, los archivos APK pueden tener cualquier nombre necesario, pero es posible que sea necesario que el nombre del archivo termine en la extensión del archivo para ser reconocido como tal. [4] [5] [6]
La mayoría de las implementaciones de Android permiten a los usuarios instalar manualmente archivos APK solo después de activar una configuración de "Fuentes desconocidas" que permite la instalación desde fuentes distintas a las confiables como Google Play . Se puede hacerlo por muchos motivos, como durante el desarrollo de aplicaciones, para instalar aplicaciones que no se encuentran en la tienda o para instalar una versión anterior de una aplicación existente. [7]
Blackberry Limited admitió aplicaciones Android 4.1 Jelly Bean y versiones posteriores hasta Android Runtime y ahora descontinuó Blackberry 10 hasta la actualización de firmware 10.2.1 de enero de 2014. [8] El 18 de junio de 2014, BlackBerry anunció una relación oficial con Amazon.com , que resultó en la actualización 10.3 que incluye Amazon Appstore .
En 2015 Build, Microsoft también anunció un entorno de ejecución de Android para Windows 10 Mobile conocido como "Astoria", que permitiría que las aplicaciones de Android se ejecutaran en un entorno emulado con cambios mínimos y tuvieran acceso a las API de la plataforma de Microsoft, como Bing Maps y Xbox. Viven como reemplazos casi directos de los servicios móviles de Google equivalentes . Los servicios móviles de Google y ciertas API principales no estarían disponibles, y se decía que las aplicaciones con "profunda integración en tareas en segundo plano" no soportaban bien el entorno. [9] [10]
El 25 de febrero de 2016, después de haberlo retrasado en noviembre de 2015, [11] [12] Microsoft anunció que "Astoria" sería archivado, argumentando que era redundante para el kit de herramientas nativo de Windows Bridge ya que iOS ya es un objetivo principal para desarrollo de aplicaciones móviles. La compañía también alentó el uso de productos de Xamarin (que habían adquirido el día anterior) para el desarrollo de aplicaciones multiplataforma utilizando el lenguaje de programación C# . [13] [14] Se utilizaron partes de Astoria como base para la plataforma del Subsistema de Windows para Linux (WSL) en la versión para PC de Windows 10. [15]
El 9 de agosto de 2019, HarmonyOS llegó con compatibilidad APK a través de la base AOSP con el kernel de Linux en HarmonyOS 1.0 para televisores y también el 2 de junio de 2021, la versión HarmonyOS 2.0 se expandió a teléfonos inteligentes y tabletas hasta la versión Galaxy Edition bajo el sistema HarmonyOS NEXT para el próximo HarmonyOS iterativo. 5 beta a la versión comercial, a partir del segundo trimestre, junio de 2024. [16] [17] [18] [19] [20]
En el evento de anuncio de Windows 11 en junio de 2021, Microsoft presentó el nuevo Subsistema de Windows para Android (WSA) que permitirá la compatibilidad con el Proyecto de código abierto de Android (AOSP) y permitirá a los usuarios ejecutar aplicaciones de Android en su escritorio de Windows. Microsoft confirmó que los usuarios podrán descargar aplicaciones de Android en Windows y que será posible instalar archivos APK descargados de fuentes de terceros. [21] El 5 de marzo de 2024, Microsoft anunció que finalizaría sus aplicaciones de Android en el subsistema de Windows 11 antes del 5 de marzo de 2025, como parte de su esfuerzo por depreciar el subsistema del kernel de Windows NT , eliminando la compatibilidad de las aplicaciones apk de Android, incluidas las aplicaciones de Android de Amazon. Tienda de aplicaciones . [22]
Google anunció planes en diciembre de 2021 para llevar juegos de Android a Windows en 2022. [23] [24]
Un archivo APK es un archivo ZIP [25] que normalmente contiene los siguientes archivos y directorios:
META-INF
directorio:MANIFEST.MF
: el archivo de manifiestoCERT.SF
: La lista de recursos y un resumen SHA-1 de las líneas correspondientes en el archivo MANIFEST.MF; Por ejemplo:Versión de firma: 1.0Creado por: 1.0 (Android)Manifiesto de resumen SHA1: wxqnEAI0UA5nO5QJ8CGMwjkGGWE=...Nombre: res/layout/exchange_component_back_bottom.xmlResumen SHA1: eACjMjESj7Zkf0cBFTZ0nqWrt7w=Nombre: res/drawable-hdpi/icon.pngResumen SHA1: DGEqylP8W0n0iV/ZzBx3MW0WGCA=
lib
: el directorio que contiene el código compilado que depende de la plataforma, por ejemplo, bibliotecas nativas que se pueden cargar a través de JNI ; el directorio se divide en más directorios dentro de él:armeabi-v7a
: código compilado solo para todos los procesadores basados en ARMv7 y superioresarm64-v8a
: código compilado para todos los procesadores basados en ARMv8 arm64 y superiores únicamente [26]x86
: código compilado solo para procesadores x86x86_64
: código compilado solo para procesadores x86-64mips
armeabi
res
: el directorio que contiene recursos no compilados en resources.arsc (ver más abajo).assets
: un directorio que contiene activos de aplicaciones, que se pueden recuperar mediante AssetManager
.AndroidManifest.xml
: un archivo de manifiesto de Android adicional, que describe el nombre, la versión, los derechos de acceso y los archivos de biblioteca a los que se hace referencia para la aplicación. Este archivo puede estar en XML binario de Android que se puede convertir en XML de texto sin formato legible por humanos con herramientas como AXMLPrinter2, Apktool M o Androguard.classes.dex
: Las clases compiladas en el formato de archivo dex ejecutado por Android Runtime (o por la máquina virtual Dalvik utilizada en Android 4.4 KitKat ).resources.arsc
: un archivo que contiene recursos precompilados, como XML binario, por ejemplo.MIPS
de 32 y 64 bits
, pero la compatibilidad con estas ABI se eliminó en NDK r17.
Se eliminó la compatibilidad con ARMv5 (armeabi), MIPS y MIPS64. Intentar construir cualquiera de estas
ABI
resultará en un error.