Preparar el lanzamiento

Antes de distribuir tu aplicación para Android a los usuarios, debes prepararla para el lanzamiento. El proceso de preparación es una tarea de desarrollo necesaria para todas las aplicaciones de Android, y es el primer paso en el proceso de publicación (consulta la figura 1).

Cuando preparas tu aplicación para el lanzamiento, configuras, compilas y pruebas una versión de lanzamiento de tu aplicación. Las tareas de configuración son claras y directas, e implican limpieza y modificación básicas de código que ayudan a optimizar tu aplicación. El proceso de compilación es similar al de compilación de depuración y puede hacerse con herramientas de JDK y Android SDK. Las tareas de prueba sirven a modo de comprobación final, lo cual garantiza que el desempeño de la aplicación sea el que se espera en condiciones reales. Cuando terminas de preparar tu aplicación para el lanzamiento, tienes un archivo APK firmado que puedes distribuir directamente a los usuarios o a través de una tienda de aplicaciones como Google Play.

Este documento resume las tareas principales que debes realizar a fin de preparar tu aplicación para el lanzamiento. Las tareas que se describen en este documento se aplican a todas las aplicaciones de Android sin importar cómo se lancen o distribuyan a los usuarios. Si lanzas tu aplicación a través de Google Play, también debes leer Lista de comprobación para el lanzamiento en Google Play a fin de asegurarte de que tu aplicación lista para el lanzamiento satisfaga todos los requisitos de Google Play.

Nota: Como práctica recomendada, tu aplicación debe cumplir con todos tus criterios de lanzamiento relacionados con la funcionalidad, el desempeño y la estabilidad antes de realizar las tareas que se describen en este documento.

Se muestra la manera en que el proceso de preparación se adecua al proceso de desarrollo

Figura 1: La preparación es una tarea de desarrollo necesaria y es el primer paso en el proceso de publicación.

Introducción

A fin de que tu aplicación esté disponible para los usuarios, debes crear un paquete listo para el lanzamiento que estos puedan instalar y ejecutar en sus dispositivos con Android. El paquete listo para el lanzamiento contiene los mismos componentes que el archivo de depuración (código fuente compilado, recursos, archivo de manifiesto y otros) y se compila usando las mismas herramientas de compilación. Sin embargo, a diferencia del archivo de depuración, el archivo APK listo para el lanzamiento se firma con tu propio certificado y se optimiza con la herramienta zipalign.

Se muestran las cinco tareas que debes realizar a fin de preparar tu app para el lanzamiento

Figura 2: Debes cumplir con cinco tareas principales a fin de preparar tu aplicación para el lanzamiento.

Las tareas de firma y optimización normalmente no presentan interrupciones si compilas tu aplicación con Android Studio. Por ejemplo, puedes usar Android Studio con los archivos de compilación de Gradle para compilar, firmar y optimizar tu aplicación en un solo paso. Además, puedes configurar los archivos de compilación de Gradle para que hagan lo mismo cuando realices compilaciones desde la línea de comandos. Para obtener más información sobre la manera de usar los archivos de compilación de Gradle, consulta la guía Sistema de compilación.

A fin de preparar tu aplicación para el lanzamiento, por lo general debes realizar cinco tareas principales (consulta la figura 2). Cada tarea principal puede incluir una o más tareas más pequeñas según la forma en que lances tu aplicación. Por ejemplo, si lanzas tu aplicación a través de Google Play, tal vez te convenga agregar reglas especiales de filtrado a tu manifiesto mientras configuras tu aplicación para el lanzamiento. Así mismo, para cumplir con las pautas de publicación de Google Play, probablemente debas preparar capturas de pantalla y crear texto promocional mientras juntas el material para el lanzamiento.

Normalmente, realizarás las tareas enumeradas en la figura 2 luego de depurar y probar tu aplicación. Android SDK contiene varias herramientas para ayudarte a probar y depurar tus aplicaciones de Android. Para obtener más información, consulta las secciones Depuración y Prueba en la guía para desarrolladores.

Cómo juntar materiales y recursos

A fin de comenzar a preparar tu aplicación para el lanzamiento, debes reunir varios elementos secundarios. Como mínimo, esto incluye claves criptográficas para firmar tu aplicación y un ícono de esta. Probablemente, también te convenga incluir un contrato de licencia para el usuario final.

Claves criptográficas

El sistema Android exige que cada aplicación que se instale esté firmada digitalmente con un certificado que pertenece al desarrollador de la aplicación (es decir, un certificado para el cual el desarrollador posea una clave privada). El sistema Android usa el certificado para identificar al autor de una aplicación y establecer relaciones de confianza entre aplicaciones. El certificado que usas para firmar no debe estar firmado por una autoridad de certificación. El sistema Android te permite firmar tus aplicaciones con un certificado autofirmado. Para obtener más información sobre requisitos de certificación, consulta Cómo firmar tus aplicaciones.

Importante: Tu aplicación debe estar firmada con una clave criptográfica cuyo período de validez termine luego del 22 de octubre de 2033.

Además, es posible que también debas obtener otras claves de lanzamiento si tu aplicación accede a un servicio o usa una biblioteca de terceros que exija el uso de una clave basada en tu clave privada.

Ícono de la aplicación

Asegúrate de contar con un ícono de aplicación y de que cumpla con las pautas para íconos recomendadas. El ícono de tu aplicación ayuda a los usuarios a identificar tu aplicación en la pantalla de inicio de un dispositivo y en la ventana del Launcher. También aparece en Manage Applications, My Downloads, y en otras secciones. Además, los servicios de publicación, como Google Play, muestran tu ícono a los usuarios.

Nota: Si lanzas tu aplicación en Google Play, debes crear una versión de tu ícono en alta resolución. Para obtener más información, consulta Recursos gráficos para tu aplicación.

Contrato de licencia para el usuario final

Considera crear un contrato de licencia para el usuario final (EULA) para tu aplicación. Un EULA puede ayudarte a proteger tu persona, organización y propiedad intelectual; te recomendamos que incluir uno con tu aplicación.

Otros materiales

Es posible que también te convenga preparar materiales promocionales y de marketing para publicitar tu aplicación. Si lanzas una aplicación en Google Play, por ejemplo, deberás preparar texto promocional y crear capturas de pantalla de tu aplicación. Para obtener más información, consulta Recursos gráficos para tu aplicación.

Cómo configurar tu aplicación para el lanzamiento

Luego de recolectar todo el material complementario, puedes comenzar a configurar tu aplicación para el lanzamiento. En esta sección se ofrece un resumen de los cambios de configuración que te recomendamos hacer en tu código fuente, en archivos de recursos y en el manifiesto de tu aplicación antes de lanzarla. A pesar de que la mayoría de los cambios de configuración que se nombran en esta sección son opcionales, se consideran como buenas prácticas de programación y te recomendamos implementarlos. En algunos casos, es posible que hayas hecho algunos de estos cambios de configuración como parte de tu proceso de desarrollo.

Elige un buen nombre de paquete

Asegúrate de elegir un buen nombre de paquete que sea apropiado para toda la vida útil de tu aplicación. No puedes cambiarlo luego de distribuir tu aplicación a los usuarios. Puedes establecer el nombre del paquete en el archivo de manifiesto de tu aplicación. Para obtener más información, consulta la documentación del atributo package.

Desactiva el registro y la depuración

Asegúrate de desactivar el registro e inhabilitar la opción de depuración antes de compilar tu aplicación para el lanzamiento. Puedes desactivar el registro si quitas las llamadas a los métodos Log en tus archivos de origen. Puedes inhabilitar la depuración si quitas el atributo android: depurable de la etiqueta <application> en tu archivo de manifiesto o fijas el atributo android:debuggable en false en tu archivo de manifiesto. Además, quita todos los archivos de registro o archivos de prueba estáticos que se crearon en tu proyecto.

También debes quitar todas las llamadas de rastreo de Debug que hayas agregado a tu código, como las llamadas a métodos startMethodTracing() y stopMethodTracing().

Importante: Asegúrate de desactivar la depuración para tu aplicación si usas WebView para mostrar contenido de pago o si usas interfaces JavaScript, ya que la depuración permite a los usuarios insertar secuencias de comandos y extraer contenido usando DevTools de Chrome. Para desactivar la depuración, usa el método WebView.setWebContentsDebuggingEnabled().

Limpia los directorios de tu proyecto

Limpia tu proyecto y asegúrate de que cumpla con la estructura de directorios que se describe en Proyectos de Android. Dejar archivos sueltos o huérfanos en tu proyecto puede impedir que tu aplicación se compile y hacer que se comporte de manera impredecible. Como mínimo, debes realizar las siguientes tareas de limpieza:

  • Revisa los contenidos de tus directorios jni/, lib/ y src/. El directorio jni/ debe contener únicamente archivos de origen asociados con el NDK de Android, como los archivos .c, .cpp, .h y .mk. El directorio lib/ debe contener únicamente archivos de bibliotecas de terceros o privadas, incluidas las bibliotecas estáticas y compartidas que se hayan compilado previamente (por ejemplo, archivos .so). El directorio src/ debe contener únicamente los archivos de origen para tu aplicación (archivos .java y .aidl). El directorio src/ no debe contener ningún archivo .jar.
  • Busca en tu proyecto archivos de datos privados o de propietario que tu aplicación no use y quítalos. Por ejemplo, busca en el directorio res/ de tu proyecto archivos de elementos de diseño, archivos de diseño y archivos de valores antiguos que ya no uses, y bórralos.
  • Busca en tu directorio lib/ bibliotecas de prueba y quítalas si ya no se usan en tu aplicación.
  • Revisa el contenido de tu directorio assets/ y tu directorio res/raw/ en busca de archivos de recursos sin procesar y archivos estáticos que necesites actualizar o quitar antes del lanzamiento.

Revisa y actualiza tu manifiesto, y la configuración de compilación de Gradle

Comprueba que la configuración del manifiesto y de los elementos de archivos de compilación siguientes sea correcta:

  • Elemento <uses-permission>

    Debes especificar únicamente aquellos permisos que sean relevantes y requeridos por tu aplicación.

  • Atributos android:icon y android:label

    Debes especificar valores para estos atributos, que se encuentran en el elemento <application>.

  • Atributos android:versionCode y android:versionName

    Te recomendamos especificar valores para estos atributos, que se encuentran en el elemento <manifest>. Para obtener más información, consulta Control de versiones en tus aplicaciones.

Existen varios elementos de archivos de manifiesto o compilación adicionales que puedes configurar si lanzas tu aplicación en Google Play. Por ejemplo, los atributos android:minSdkVersion y android:targetSdkVersion, que se encuentran en el elemento <uses-sdk>. Para obtener más información sobre estas configuraciones de Google Play y otras, consulta Filtros en Google Play.

Trata los problemas de compatibilidad

Android ofrece varias herramientas y técnicas para que tu aplicación sea compatible con una amplia variedad de dispositivos. Si deseas que tus aplicaciones estén disponibles para la mayor cantidad de usuarios, considera hacer lo siguiente:

  • Incorpora compatibilidad para diferentes configuraciones de pantalla

    Asegúrate de cumplir con las prácticas recomendadas para la compatibilidad con diferentes pantallas. Al ofrecer compatibilidad con diferentes configuraciones de pantalla, puedes crear una aplicación que funcione adecuadamente y se vea bien en cualquiera de los tamaños de pantalla con los que Android sea compatible.

  • Optimiza tu aplicación para tablets con Android.

    Si tu aplicación está diseñada para dispositivos con versiones de Android anteriores a la 3.0, haz que sea compatible con dispositivos Android 3.0; para esto, sigue las pautas y prácticas recomendadas descritas en Optimización de aplicaciones para Android 3.0 .

  • Considera el uso de la biblioteca de compatibilidad

    Si tu aplicación está diseñada para dispositivos con Android 3.x, haz que sea compatible con versiones anteriores de Android; para esto, agrega la biblioteca de compatibilidad al proyecto de tu aplicación. La biblioteca de compatibilidad ofrece bibliotecas de compatibilidad estáticas que puedes agregar a tu aplicación para Android. Esto te permite usar las API que no estén disponibles para versiones de plataformas más antiguas o las API de utilidades que no formen parte de las API del framework.

Actualiza las URL para servidores y servicios

Si tu aplicación accede a servidores o servicios remotos, asegúrate de usar la URL de producción o la ruta de ruta de acceso para el servidor o servicio, y no una URL o ruta de acceso de prueba.

Implementa licencias (si lanzas tu aplicación en Google Play)

Si lanzas una aplicación de pago a través de Google Play, considera agregar compatibilidad con el servicio de licencias de Google Play. Las licencias te permiten controlar el acceso a tu aplicación según el usuario actual la haya comprado o no. El uso del servicio de licencias de Google Play es opcional incluso si lanzas tu aplicación a través de Google Play.

Para obtener más información sobre el servicio de licencias de Google Play y sobre la manera de usarlo en tu aplicación, consulta Licencias para aplicaciones.

Cómo compilar tu aplicación para el lanzamiento

Cuando termines de configurar tu aplicación, puedes compilarla en un archivo APK listo para el lanzamiento, firmado y optimizado. El JDK incluye las herramientas para firmar el archivo APK (Keytool y Jarsigner); el Android SDK incluye las herramientas para compilar y optimizar el archivo APK. Si usas Android Studio, el sistema de compilación de Gradle desde la línea de comandos, puedes automatizar el proceso completo de compilación. Para obtener más información sobre la forma de configurar compilaciones de Gradle, consulta Configuración de compilaciones de Gradle.

Compilación con Android Studio

Puedes usar el sistema de compilación de Gradle, integrado con Android Studio, para compilar un archivo APK listo para el lanzamiento que esté optimizado y firmado con tu clave privada. Para aprender a configurar y ejecutar compilaciones desde Android Studio, consulta Compilación y ejecución en Android Studio.

El proceso de compilación prevé que tienes un certificado y una clave privada adecuados para firmar tu aplicación. Si no tienes un certificado y una clave privada adecuados, Android Studio puede ayudarte a generarlos. Para obtener más información sobre el proceso de firma, consulta Cómo firmar tus aplicaciones.

Cómo preparar recursos y servidores externos

Si tu aplicación depende de un servidor remoto, asegúrate de que el servidor esté protegido y configurado para usarse en la producción. Esto es particularmente importante si implementas facturación integrada en tu aplicación y realizas el paso de verificación de firma en un servidor remoto.

Además, si tu aplicación toma contenido de un servidor remoto o un servicio en tiempo real (como una fuente de contenido), asegúrate de que el contenido que proveas esté actualizado y listo para la producción.

Cómo probar tu aplicación para el lanzamiento

Probar la versión de lanzamiento de tu aplicación te ayuda a garantizar que tu aplicación se ejecute correctamente en condiciones realistas de dispositivos y redes. Lo ideal sería que probar tu aplicación en al menos un dispositivo de tamaño teléfono y un dispositivo con tamaño de tablet para verificar que los elementos de tu interfaz de usuario tengan el tamaño correcto y que el rendimiento de tu aplicación y el ahorro de batería sean aceptables.

Como punto de partida para las pruebas, consulta Qué aspectos se deben probar. Este artículo ofrece un resumen de las situaciones comunes de Android que deberías tener en cuenta cuando realices pruebas. Cuando termines con las pruebas y estés satisfecho con un comportamiento adecuado de la versión de lanzamiento de tu aplicación, puedes lanzar tu aplicación para los usuarios. Para obtener más información, consulta Lanzar tu aplicación para los usuarios. Si publicas tu aplicación en Google Play, consulta Lista de comprobación de lanzamiento para Google Play.