This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Los dispositivos Android te permiten ejecutar libremente tus propias apps en ellos. Es muy fácil crear una versión de tu juego y copiarla a un dispositivo Android. Este manual explica los pasos necesarios para crear un bundle de tu juego para Android. Durante el desarrollo, suele ser preferible ejecutar tu juego mediante la app de desarrollo, ya que te permite recargar contenido y código en caliente directamente en tu dispositivo.
Android requiere que todos los APK estén firmados digitalmente con un certificado antes de que se instalen en un dispositivo o se actualicen. Si usas Android App Bundles, solo necesitas firmar tu app bundle antes de subirlo a Play Console, y Play App Signing se encarga del resto. Sin embargo, también puedes firmar manualmente tu app para subirla a Google Play, a otras tiendas de apps y para distribuirla fuera de cualquier tienda.
Cuando creas un bundle de aplicación Android desde el editor Defold o desde la herramienta de línea de comando, puedes proporcionar un keystore (que contiene tu certificado y clave) y la contraseña del keystore, que se usarán al firmar tu aplicación. Si no lo haces, Defold genera un keystore de depuración y lo usa al firmar el bundle de la aplicación.
Nunca debes subir tu aplicación a Google Play si se firmó con un keystore de depuración. Usa siempre un keystore dedicado que hayas creado tú mismo.
Defold usa un keystore para el proceso de firmado de Android. Hay más información disponible en esta publicación del foro.
Puedes crear un keystore usando Android Studio o desde una terminal/símbolo del sistema:
keytool -genkey -v -noprompt -dname "CN=John Smith, OU=Area 51, O=US Air Force, L=Unknown, ST=Nevada, C=US" -keystore mykeystore.keystore -storepass 5Up3r_53cR3t -alias myAlias -keyalg RSA -validity 9125
Esto creará un archivo keystore llamado mykeystore.keystore que contiene una clave y un certificado. El acceso a la clave y al certificado estará protegido por la contraseña 5Up3r_53cR3t. La clave y el certificado serán válidos durante 25 años (9125 días). La clave y el certificado generados se identificarán con el alias myAlias.
Asegúrate de guardar el keystore y la contraseña asociada en un lugar seguro. Si firmas y subes tus aplicaciones a Google Play por tu cuenta y se pierde el keystore o la contraseña del keystore, no tendrás forma de actualizar la aplicación en Google Play. Puedes evitar esto usando Google Play App Signing y dejando que Google firme tus aplicaciones por ti.
El editor te permite crear fácilmente un bundle de aplicación independiente para tu juego. Antes de crear el bundle, puedes especificar qué iconos usar para la app, definir el código de versión, etc. en el archivo de configuración del proyecto game.project.
Para crear el bundle, selecciona Project ▸ Bundle... ▸ Android Application... en el menú.
Si quieres que el editor cree automáticamente certificados de depuración aleatorios, deja vacíos los campos Keystore y Keystore password:

Si quieres firmar tu bundle con un keystore concreto, especifica Keystore y Keystore password. Se espera que Keystore tenga la extensión de archivo .keystore, mientras que se espera que la contraseña esté almacenada en un archivo de texto con la extensión .txt. También es posible especificar una Key password si la clave del keystore usa una contraseña distinta de la del propio keystore:

Defold permite crear archivos APK y AAB. Selecciona APK o AAB en el menú desplegable Bundle Format.
Pulsa Create Bundle cuando hayas configurado las opciones del bundle de la aplicación. Luego se te pedirá que especifiques en qué lugar de tu computadora se creará el bundle.

Cuando creas un bundle de un juego, debes elegir qué tipo de motor quieres usar. Tienes tres opciones básicas:
Estas diferentes versiones también se denominan Build variants.
Cuando eliges Project ▸ Build, siempre obtendrás la versión de depuración.
Este tipo de ejecutable se usa normalmente durante el desarrollo de un juego, ya que incluye varias funcionalidades útiles de depuración:
print() y desde el logging de extensiones nativas que use dmLogInfo(), dmLogError() y similares. Aprende cómo leer estos logs en el manual de logs del juego y del sistema.Esta variante tiene las funcionalidades de depuración deshabilitadas. Esta opción debe elegirse cuando el juego esté listo para publicarse en la tienda de aplicaciones o compartirse con jugadores por otros medios. No se recomienda publicar un juego con las funcionalidades de depuración habilitadas por varias razones:
Este ejecutable se ejecuta sin gráficos ni sonido. Esto significa que puedes ejecutar las pruebas unitarias o de humo del juego en un servidor de CI, o incluso usarlo como servidor de juego en la nube.
Un archivo .apk se puede copiar a tu dispositivo con la herramienta adb, o a Google Play mediante la consola para desarrolladores de Google Play.
La herramienta de línea de comando adb es un programa fácil de usar y versátil que se utiliza para interactuar con dispositivos Android. Puedes descargar e instalar adb como parte de Android SDK Platform-Tools, para Mac, Linux o Windows.
Descarga Android SDK Platform-Tools desde: https://developer.android.com/studio/releases/platform-tools. Encontrarás la herramienta adb en /platform-tools/. Como alternativa, se pueden instalar paquetes específicos de cada plataforma mediante los respectivos gestores de paquetes.
En Ubuntu Linux:
$ sudo apt-get install android-tools-adb
En Fedora 18/19:
$ sudo yum install android-tools
En macOS (Homebrew)
$ brew cask install android-platform-tools
Puedes verificar que adb funciona conectando tu dispositivo Android a tu computadora mediante USB y ejecutando el siguiente comando:
$ adb devices
List of devices attached
31002535c90ef000 device
Si tu dispositivo no aparece, verifica que hayas habilitado USB debugging en el dispositivo Android. Abre Settings del dispositivo y busca Developer options (o Development).

$ adb install Defold\ examples.apk
4826 KB/s (18774344 bytes in 3.798s)
pkg: /data/local/tmp/my_app.apk
Success
Puedes instalar y ejecutar un archivo .apk usando las casillas “Install on connected device” y “Launch installed app” del editor en el diálogo Bundle:

Para que esta funcionalidad funcione, necesitarás tener ADB instalado y USB debugging activado en el dispositivo conectado. Si el editor no puede detectar la ubicación de instalación de la herramienta de línea de comando ADB, tendrás que especificarla en Preferences.
Un archivo .aab se puede subir a Google Play mediante la consola para desarrolladores de Google Play. También es posible generar un archivo .apk a partir de un archivo .aab para instalarlo localmente usando Android bundletool.
El motor Defold requiere varios permisos para que funcionen todas sus funcionalidades. Los permisos se definen en AndroidManifest.xml, especificado en el archivo de configuración del proyecto game.project. Puedes leer más sobre los permisos de Android en la documentación oficial. En el manifiesto predeterminado se solicitan los siguientes permisos:
Permite que las aplicaciones abran sockets de red y accedan a información sobre redes. Estos permisos son necesarios para el acceso a internet. (Documentación oficial de Android) y (documentación oficial de Android).
Permite usar PowerManager WakeLocks para evitar que el procesador entre en suspensión o que la pantalla se atenúe. Este permiso es necesario para evitar temporalmente que el dispositivo entre en suspensión mientras recibe una notificación push. (Documentación oficial de Android)
AndroidX es una mejora importante respecto a la Android Support Library original, que ya no se mantiene. Los paquetes AndroidX sustituyen por completo a la Support Library al ofrecer paridad de funcionalidades y nuevas bibliotecas. La mayoría de las extensiones Android en el Asset Portal son compatibles con AndroidX. Si no quieres usar AndroidX, puedes desactivarlo explícitamente en favor de la antigua Android Support Library marcando Use Android Support Lib en el manifiesto de la aplicación.

A: Sí, define la opción immersive_mode en la sección Android de tu archivo game.project. Esto permite que tu app ocupe toda la pantalla y capture todos los eventos touch de la pantalla.
A: Android detecta que intentas instalar la app con un certificado nuevo. Al crear builds de depuración, cada build se firma con un certificado temporal. Desinstala la app anterior antes de instalar la nueva versión:
$ adb uninstall com.defold.examples
Success
$ adb install Defold\ examples.apk
4826 KB/s (18774344 bytes in 3.798s)
pkg: /data/local/tmp/Defold examples.apk
Success
A: Esto puede ocurrir cuando dos o más extensiones proporcionan un stub de Android Manifest que contiene la misma etiqueta de propiedad, pero con valores distintos. Esto ha ocurrido, por ejemplo, con Firebase y AdMob. El error de build tiene un aspecto similar a este:
SEVERE: /tmp/job4531953598647135356/upload/AndroidManifest.xml:32:13-58
Error: Attribute property#android.adservices.AD_SERVICES_CONFIG@resource
value=(@xml/ga_ad_services_config) from AndroidManifest.xml:32:13-58 is also
present at AndroidManifest.xml:92:13-59 value=(@xml/gma_ad_services_config).
Suggestion: add 'tools:replace="android:resource"' to <property> element at
AndroidManifest.xml to override.
Puedes leer más sobre el problema y la solución temporal en el issue de Defold reportado #9453 y el issue de Google #327696048.