El paquete Android con la extensión de archivo apk [1] es el formato de archivo utilizado por el sistema operativo Android y 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 del 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 es el caso con muchos formatos de archivo, los archivos APK pueden tener cualquier nombre necesario, pero puede ser 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 . Uno puede hacerlo por muchas razones, 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 admitía aplicaciones Android 4.1 Jelly Bean y superiores hasta Android Runtime hasta Blackberry 10 , ahora descontinuado , 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 , lo que resultó en la actualización 10.3 que incluía Amazon Appstore .
En 2015 Build, Microsoft también había anunciado 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 Microsoft, como Bing Maps y Xbox Live, 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 dijo que las aplicaciones con "integración profunda en tareas en segundo plano" respaldaban mal el entorno. [9] [10]
El 25 de febrero de 2016, después de haberlo retrasado ya en noviembre de 2015, [11] [12] Microsoft anunció que "Astoria" sería archivada, argumentando que era redundante con el kit de herramientas nativo de Windows Bridge, ya que iOS ya es un objetivo principal para el 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] Partes de Astoria se utilizaron como base para la plataforma Windows Subsystem for 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 la próxima versión beta iterativa de HarmonyOS 5 a la versión comercial, a partir del segundo trimestre de junio de 2024. [16] [17] [18] [19] [20]
En el evento de anuncio de Windows 11 en junio de 2021, Microsoft mostró el nuevo Subsistema de Windows para Android (WSA) que habilitará el soporte para 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 cargar aplicaciones de Android en Windows y que sería 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 para el 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 App Store . [22]
Google anunció planes en diciembre de 2021 para llevar los juegos de Android a Windows en 2022. [23] [24]
Un archivo APK es un archivo ZIP que generalmente 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 solo para todos los procesadores ARMv8 arm64 y superiores [25]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 formato XML binario de Android que se puede convertir en XML de texto simple legible para humanos con herramientas como AXMLPrinter2, Apktool M o Androguard.classes.dex
:Las clases compiladas en el formato de archivo dex ejecutadas 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 ha eliminado la compatibilidad con ARMv5 (armeabi), MIPS y MIPS64. Intentar compilar cualquiera de estas
ABI
generará un error.