Preguntas frecuentes

En esta página, se proporcionan respuestas a algunas preguntas frecuentes.

Código abierto

¿Qué es el Proyecto de código abierto de Android?

El Proyecto de código abierto de Android (AOSP) se refiere a las personas, los procesos y el código fuente que conforman Android.

Las personas supervisan el proyecto y desarrollan el código fuente. Los procesos son las herramientas y procedimientos que usamos para administrar el desarrollo del software. El resultado neto es el código fuente, que se puede usar en teléfonos móviles y otros dispositivos.

¿Por qué abrimos el código fuente de Android?

En Google, comenzamos el proyecto de Android en respuesta a nuestras propias experiencias en el lanzamiento de apps para dispositivos móviles. Queríamos asegurarnos de que siempre hubiera una plataforma abierta disponible para que los operadores, OEM y desarrolladores pudieran llevar a cabo sus ideas innovadoras. Además, queríamos evitar todo punto central de falla, para que ningún actor de la industria pudiera restringir o controlar las innovaciones de otro. Nuestro objetivo más importante con AOSP es asegurarnos de que el software de código abierto de Android se implemente de la manera más amplia y compatible posible, para beneficio de todos.

¿Qué tipo de proyecto de código abierto es Android?

Google supervisa el desarrollo de la plataforma de código abierto principal de Android y trabaja para crear comunidades eficaces de desarrolladores y de usuarios. En gran parte, el código fuente de Android está bajo la protección de la licencia permisiva Apache 2.0, en lugar de una licencia copyleft. Elegimos la licencia Apache 2.0 porque creemos que fomenta la adopción generalizada del software de Android. Para obtener más información, consulta Licencias.

¿Por qué Google está a cargo de Android?

El lanzamiento de una plataforma de software es algo complejo. La apertura es vital para el éxito a largo plazo de una plataforma, ya que atrae la inversión de los desarrolladores y garantiza la igualdad de condiciones. La plataforma también debe ser un producto atractivo para los usuarios.

Google confirmó los recursos de ingeniería profesionales necesarios para garantizar que Android sea una plataforma de software plenamente competitiva. Google considera el proyecto de Android como una operación de desarrollo de productos a gran escala y logra los acuerdos comerciales necesarios para asegurarse de que los dispositivos con Android salgan al mercado.

Al asegurarnos de que Android sea un éxito para los usuarios, ayudamos a garantizar la vitalidad de Android como plataforma y como proyecto de código abierto. Después de todo, ¿quién quiere el código fuente de un producto que no tiene éxito?

El objetivo de Google es garantizar un ecosistema exitoso en torno a Android. Abrimos el código fuente de Android para que cualquiera pueda modificar y distribuir el software a fin de satisfacer sus propias necesidades.

¿Cuál es la estrategia general de Google para el desarrollo de productos de Android?

Lanzamos excelentes dispositivos dentro de un mercado competitivo. Luego, incorporamos las innovaciones y mejoras que le realizamos a la plataforma principal como la próxima versión.

En la práctica, esto significa que el equipo de Ingeniería de Android se centra en un pequeño número de dispositivos "insignia" y desarrolla la próxima versión del software de Android para admitir los lanzamientos de esos productos. Estos dispositivos insignia absorben gran parte del riesgo del producto y abren el camino para la amplia comunidad de OEM, que realiza el seguimiento con más dispositivos que aprovechan las nuevas funciones. De esta manera, nos aseguramos de que la plataforma de Android evolucione en función de las necesidades de los dispositivos del mundo real.

¿Cómo se desarrolla el software de Android?

Cada versión de la plataforma de Android (como la 1.5 o la 8.1) tiene su respectiva rama en el árbol de código abierto. La rama más reciente se considera la versión estable actual de la rama. Es la rama que los fabricantes transfieren a sus dispositivos. Esta rama se mantiene apta para el lanzamiento en todo momento.

A la vez, hay una rama experimental actual, que es donde se desarrollan las contribuciones especulativas, como las grandes funciones de última generación. Las correcciones de errores y otras contribuciones se pueden incluir en la rama estable actual desde la rama experimental según corresponda.

Por último, Google trabaja en la próxima versión de la plataforma Android, junto con el desarrollo de un dispositivo insignia. Esta rama recopila los cambios de las ramas experimentales y estables según corresponda.

Para obtener detalles sobre las líneas de código, las ramas y las versiones, consulta Administración del código del AOSP.

¿Por qué hay partes de Android que se desarrollan en privado?

Por lo general, lleva más de un año lanzar un dispositivo al mercado. Y, por supuesto, los fabricantes de dispositivos quieren entregar el software lo más actualizado posible. A la vez, los desarrolladores no quieren realizar el seguimiento constante de nuevas versiones de la plataforma cuando escriben el código de las apps. Se genera tensión en ambos grupos entre el envío de productos y el no querer quedar rezagado.

Para solucionar este problema, algunas partes de la próxima versión de Android, incluso las APIs de la plataforma principal, se desarrollan en una rama privada. Estas APIs constituyen la próxima versión de Android. Nuestro objetivo es centrar la atención en la versión estable actual del código fuente de Android mientras creamos la próxima versión de la plataforma. Esto permite a los desarrolladores y a los OEM utilizar una única versión sin realizar el seguimiento de trabajo futuro sin terminar solo para mantenerse al día. Otras partes del sistema Android no relacionadas con la compatibilidad de aplicaciones se desarrollan de forma abierta. Nuestra intención es, con el tiempo, mover más de estas partes a desarrollo abierto.

¿Cuándo se hacen los lanzamientos de código fuente?

Cuando están listos. El lanzamiento de código fuente es un proceso bastante complejo. Algunas partes de Android se desarrollan de forma abierta y ese código fuente siempre está disponible. Otras partes se desarrollan primero en un árbol privado, y ese código fuente se lanza cuando está lista la siguiente versión de la plataforma.

En algunos lanzamientos, las APIs de la plataforma principal están listas con suficiente anticipación como para que podamos lanzar el código fuente y que se conozca primero, antes del lanzamiento del dispositivo. En otros lanzamientos, esto no es posible. En todos los casos, lanzamos la fuente de la plataforma cuando consideramos que la versión es estable y el proceso de desarrollo lo permite.

¿Qué implica lanzar el código fuente para una nueva versión de Android?

El lanzamiento de código fuente de una nueva versión de la plataforma de Android es un proceso importante. En primer lugar, el software está integrado dentro de una imagen del sistema de un dispositivo y se somete a varias formas de certificación, incluida la certificación reglamentaria oficial correspondiente a las regiones donde se implementarán los teléfonos. El código también pasa por pruebas de operadores. Esta fase del proceso es muy importante porque ayuda a detectar errores de software.

Cuando los entes reguladores y los operadores aprueban el lanzamiento, el fabricante comienza a producir dispositivos en masa y comenzamos a lanzar el código fuente.

Al mismo tiempo que se realiza la producción en masa, el equipo de Google inicia varios esfuerzos para preparar el lanzamiento del código abierto. Estos esfuerzos incluyen cambios definitivos en las APIs, actualización de documentación (para reflejar las modificaciones realizadas durante las pruebas de calificación, por ejemplo), preparación de un SDK para la nueva versión y lanzamiento de la información de compatibilidad de la plataforma.

Nuestro equipo legal aprueba definitivamente el lanzamiento del código abierto como fuente. Así como los colaboradores de código abierto deben firmar un Acuerdo de licencia para colaboradores que certifique la titularidad de la propiedad intelectual de su contribución, Google debe verificar que la fuente esté autorizada para realizar contribuciones.

El proceso de lanzamiento de software suele demorar alrededor de un mes a partir del momento en que comienza la producción masiva, por lo que los lanzamientos de código fuente suelen producirse casi al mismo tiempo que los dispositivos llegan a los usuarios.

¿Cómo se relaciona AOSP con el Programa de compatibilidad de Android?

El Proyecto de código abierto de Android mantiene el software de Android y desarrolla nuevas versiones. Como es de código abierto, este software se puede usar con cualquier fin, incluso para el desarrollo de dispositivos que no son compatibles con otros dispositivos basados en la misma fuente.

La función del Programa de compatibilidad de Android es definir la implementación de un modelo de referencia de Android que sea compatible con apps de terceros escritas por desarrolladores. Los dispositivos que son compatibles con Android pueden participar en el ecosistema de Android, incluso en Google Play, mientras que los que no cumplen con los requisitos de compatibilidad existen fuera de ese ecosistema.

En otras palabras, el Programa de compatibilidad de Android se usa para separar los dispositivos compatibles con Android de los que simplemente ejecutan versiones derivadas del código fuente. Aceptamos todos los usos del código fuente de Android, pero, para participar en el ecosistema de Android, el programa tiene que identificar al dispositivo como compatible con Android.

¿Cómo puedo colaborar con Android?

Puedes informar errores, escribir apps para Android o contribuir con código fuente al Proyecto de código abierto de Android.

Existen límites para los tipos de contribuciones de código que aceptamos. Por ejemplo, alguien podría querer contribuir con una API para aplicaciones alternativas como, por ejemplo, un entorno completo basado en C++. Rechazaríamos esa contribución porque Android recomienda que las aplicaciones se ejecuten en el entorno de ejecución de ART. Tampoco aceptaremos contribuciones como, por ejemplo, bibliotecas GPL o LGPL incompatibles con nuestros objetivos de otorgamiento de licencias.

Recomendamos a quienes estén interesados en contribuir con código fuente que se comuniquen con nosotros a través de los canales que se indican en la página Comunidad de Android antes de comenzar cualquier trabajo. Para obtener más información, consulta Cómo colaborar.

¿Cómo me convierto en confirmador de Android?

El Proyecto de código abierto de Android realmente no incluye la noción de confirmador. Todas las contribuciones (incluso las creadas por los empleados de Google) pasan por un sistema basado en la Web, conocido como Gerrit, que forma parte del proceso de ingeniería de Android. Este sistema funciona en conjunto con el sistema de administración de código fuente de Git para administrar de forma limpia las contribuciones de código fuente.

Cuando se envían, los cambios deben contar con la aprobación de un responsable de aprobación designado. Los responsables de aprobación suelen ser empleados de Google, pero son responsables de todos los envíos, independientemente de su origen.

Para obtener más información, consulta Cómo enviar parches.

Volver al principio

Compatibilidad

¿Qué es la "compatibilidad" con Android?

Por definición, un dispositivo compatible con Android es aquel que puede ejecutar cualquier aplicación escrita por desarrolladores externos que utilicen SDK y NDK de Android. Usamos esto como filtro para separar los dispositivos que pueden participar en el ecosistema de apps de Android y aquellos que no. En el caso de los dispositivos compatibles, los fabricantes de dispositivos pueden solicitar la aprobación para usar la marca de Android. Los dispositivos que no son compatibles se derivan del código fuente de Android y no tienen permitido usar la marca de Android.

En otras palabras, la compatibilidad es un requisito previo para participar en el ecosistema de apps para Android. Cualquiera puede usar el código fuente de Android. Sin embargo, si el dispositivo no es compatible, no se considera parte del ecosistema de Android.

¿Cuál es la función de Google Play en la compatibilidad?

Los fabricantes de dispositivos compatibles con Android pueden obtener la licencia de software de cliente de Google Play. Los dispositivos con licencia se vuelven parte del ecosistema de apps de Android, lo que permite a sus usuarios descargar apps de desarrolladores desde un catálogo compartido por todos los dispositivos compatibles. No hay licencias disponibles para dispositivos no compatibles.

¿Qué tipos de dispositivos pueden ser compatibles con Android?

El software de Android se puede transferir a muchos dispositivos diferentes, incluso a algunos en los que las apps de terceros no se ejecutarán correctamente. El Documento de definición de compatibilidad de Android (CDD) detalla las configuraciones específicas del dispositivo que se consideran compatibles.

Por ejemplo, aunque el código fuente de Android se puede transferir para ejecutarlo en un teléfono sin cámara, el CDD requiere que todos los teléfonos tengan cámara. Esto permite a los desarrolladores confiar en un conjunto coherente de capacidades al escribir sus apps.

El CDD continúa evolucionando para reflejar las realidades del mercado. Por ejemplo, la versión 1.6 del CDD solo admite teléfonos celulares. Pero la versión 2.1 permite que los dispositivos omitan el hardware de telefonía, lo que hace que dispositivos que no sean teléfonos, como reproductores de música tipo tableta, sean compatibles. A medida que realicemos estos cambios, también aumentaremos Google Play para permitir que los desarrolladores tengan control sobre dónde están disponibles sus apps. Para continuar con el ejemplo de telefonía, una app que administra mensajes de texto SMS no es útil en un reproductor multimedia, por lo que Google Play permite al desarrollador restringir esa app exclusivamente a dispositivos telefónicos.

Si mi dispositivo es compatible, ¿tiene automáticamente acceso a Google Play y al desarrollo de la marca?

No. El acceso no es automático. Google Play es un servicio manejado por Google. Lograr la compatibilidad es un requisito previo para obtener acceso al software de Google Play y al desarrollo de la marca. Una vez que un dispositivo se califica como compatible con Android, el fabricante debe completar el formulario de contacto incluido en Cómo otorgar licencias de los Servicios de Google para dispositivos móviles a fin de obtener acceso a Google Play. Si podemos ayudarte, nos comunicaremos contigo.

Si no soy fabricante, ¿cómo puedo obtener Google Play?

La licencia de Google Play solo se otorga a fabricantes de equipos que distribuyen dispositivos. Si tienes preguntas sobre casos específicos, comunícate con android-partnerships@google.com.

¿Cómo puedo acceder a las apps de Google para Android, como Maps?

Las apps de Google para Android, como YouTube, Google Maps y Gmail, son Propiedades de Google que no forman parte de Android y que tienen licencias independientes. Si tienes consultas relacionadas con estas apps, comunícate con android-partnerships@google.com.

¿Es obligatoria la compatibilidad?

No. El Programa de compatibilidad de Android es opcional. El código fuente de Android es abierto, por lo que cualquier persona puede usarlo para compilar cualquier tipo de dispositivo. Sin embargo, si los fabricantes desean utilizar el nombre de Android con sus productos o desean acceder a Google Play, primero tienen que demostrar que sus dispositivos son compatibles.

¿Cuánto cuesta la certificación de compatibilidad?

Obtener la compatibilidad de Android para un dispositivo no tiene costo. El Conjunto de pruebas de compatibilidad es de código abierto y está disponible para que cualquier persona pueda realizar pruebas en dispositivos.

¿Cuánto tarda la compatibilidad?

El proceso es automático. El Conjunto de pruebas de compatibilidad genera un informe que se puede proporcionar a Google para verificar la compatibilidad. Por último, intentamos proporcionar herramientas de autoservicio para subir estos informes a una base de datos pública.

¿Quién determina la definición de compatibilidad?

Google es responsable de la dirección general de Android como plataforma y producto, por lo que mantiene el Documento de definición de compatibilidad (CDD) para cada versión. Redactamos el CDD para una nueva versión de Android junto con varios OEM que proporcionan información.

¿Durante cuánto tiempo se admitirá cada versión de Android para los dispositivos nuevos?

El código de Android es abierto, por lo que no podemos evitar que alguien use una versión anterior para lanzar un dispositivo. En cambio, Google elige no otorgar licencias de software de cliente de Google Play para su uso en versiones que se consideran obsoletas. Esto permite que cualquiera continúe enviando versiones anteriores de Android, pero esos dispositivos no usarán el nombre de Android y existirán fuera del ecosistema de apps de Android, como si no fueran compatibles.

¿Es posible que un dispositivo tenga una interfaz de usuario diferente y sea compatible?

El Programa de compatibilidad de Android determina si un dispositivo puede ejecutar aplicaciones de terceros. Los componentes de la interfaz de usuario que se envían con un dispositivo (como la pantalla de inicio, el marcador y el esquema de colores) por lo general no inciden mucho en las apps de terceros. Como tales, los desarrolladores de dispositivos tienen la libertad de personalizar la interfaz de usuario. El documento de definición de compatibilidad restringe el grado en el que los OEM pueden modificar la interfaz de usuario del sistema para las áreas que afectan a las apps de terceros.

¿Cuándo se lanzan las definiciones de compatibilidad para las nuevas versiones de Android?

Nuestro objetivo es lanzar una nueva versión del Documento de definición de compatibilidad de Android (CDD) cuando la versión de la plataforma Android correspondiente haya convergido lo suficiente como para permitirlo. A pesar de que no podemos lanzar una versión final de un CDD para una versión de software de Android antes de que el primer dispositivo insignia se envíe con ese software, los CDD definitivos siempre se lanzan después del primer dispositivo. Sin embargo, siempre que sea posible, actualizamos versiones preliminares de CDD.

¿Cómo se validan las declaraciones de compatibilidad de los fabricantes de dispositivos?

No existe un proceso de validación para la compatibilidad de dispositivos con Android. Sin embargo, si el dispositivo debe incluir Google Play, por lo general, Google valida la compatibilidad del dispositivo antes de aceptar otorgar la licencia del software de cliente de Google Play.

¿Qué sucede si se descubre que un dispositivo que alega ser compatible luego tiene problemas de compatibilidad?

Por lo general, gracias a las relaciones de Google con los licenciatarios de Google Play, podemos solicitar al fabricante del programa que publique imágenes actualizadas del sistema que solucionen los problemas.

Volver al principio

Conjunto de pruebas de compatibilidad (CTS)

¿Cuál es el fin del CTS?

El Conjunto de pruebas de compatibilidad es una herramienta que usan los fabricantes de dispositivos para ayudar a garantizar que sus dispositivos sean compatibles y a fin de informar los resultados de las pruebas para las validaciones. El CTS está diseñado para que los OEM lo ejecuten a menudo durante todo el proceso de ingeniería a fin de detectar problemas de compatibilidad de manera anticipada.

¿Qué tipo de pruebas incluye el CTS?

Actualmente, el CTS comprueba que todas las API de tipado fuerte compatibles con Android estén presentes y se comporten correctamente. Además, comprueba otros comportamientos del sistema que no son de API, como el ciclo de vida y el rendimiento de la aplicación. Planeamos hacer que futuras versiones de CTS admitan también la comprobación de API de tipado débil, como los intents.

¿Se darán a conocer los informes de CTS?

Sí. Si bien no se implementa actualmente, Google tiene la intención de proporcionar herramientas de autoservicio basadas en la Web para que los OEM publiquen informes de CTS de modo que cualquiera pueda verlos. Los fabricantes pueden compartir informes de CTS con la cantidad de personas que quieran.

¿Cómo se otorga la licencia del CTS?

El CTS está protegido bajo la misma licencia de software Apache 2.0 que utiliza la mayor parte de Android.

¿El CTS acepta contribuciones?

Sí. El Proyecto de código abierto de Android acepta contribuciones para mejorar el CTS, como ocurre con cualquier otro componente. De hecho, mejorar la cobertura y la calidad de los casos de prueba de CTS es una de las mejores formas de ayudar a Android.

¿Se puede usar el CTS en dispositivos existentes?

El Documento de definición de compatibilidad requiere que los dispositivos compatibles implementen la utilidad de depuración adb. Esto significa que cualquier dispositivo compatible (incluso los disponibles en puntos de venta minorista) debe poder ejecutar las pruebas de CTS.

¿El CTS verifica los códecs?

Sí. El CTS verifica todos los códecs obligatorios.

Volver al principio