

El desarrollo de software para Android es el proceso mediante el cual se crean aplicaciones para dispositivos que ejecutan el sistema operativo móvil Android . Google afirma que [ 2 ] "las aplicaciones de Android se pueden escribir utilizando los lenguajes Kotlin , Java y C++ " utilizando el kit de desarrollo de software (SDK) de Android, aunque también es posible utilizar otros lenguajes. Todos los lenguajes que no son de la máquina virtual Java (JVM), como Go , JavaScript , C , C++ o ensamblador , necesitan la ayuda del código del lenguaje JVM, que puede ser proporcionado por herramientas, probablemente con soporte de API restringido. Algunos lenguajes de programación y herramientas permiten el soporte de aplicaciones multiplataforma (es decir, para Android e iOS ). Las herramientas de terceros, los entornos de desarrollo y el soporte de lenguajes también han seguido evolucionando y expandiéndose desde que se lanzó el SDK inicial en 2008. El mecanismo oficial de distribución de aplicaciones de Android para los usuarios finales es Google Play ; también permite el lanzamiento gradual de aplicaciones por etapas, así como la distribución de versiones preliminares de aplicaciones para evaluadores.
Herramientas de desarrollo oficiales
El kit de desarrollo de software (SDK) de Android incluye un conjunto completo de herramientas de desarrollo. Las herramientas de plataforma del SDK de Android son un subconjunto descargable por separado del SDK completo, que consta de herramientas de línea de comandos como adby fastboot. [ 3 ] El puente de depuración de Android (ADB) es una herramienta para ejecutar comandos en un dispositivo Android conectado. Fastboot es un protocolo utilizado para flashear sistemas de archivos. El código escrito en C / C++ se puede compilar a código nativo ARM o x86 (o sus variantes de 64 bits) utilizando el kit de desarrollo nativo de Android (NDK).
Kit de desarrollo de accesorios abiertos para Android
La plataforma Android 3.1 (también adaptada a Android 2.3.4) introduce la compatibilidad con Android Open Accessory, que permite que el hardware USB externo (un accesorio USB de Android) interactúe con un dispositivo Android en un modo especial de "accesorio". Cuando un dispositivo Android está en modo accesorio, el accesorio conectado actúa como host USB (alimenta el bus y enumera los dispositivos) y el dispositivo Android actúa como dispositivo USB. Los accesorios USB de Android están diseñados específicamente para conectarse a dispositivos Android y cumplen con un protocolo simple (protocolo de accesorio de Android) que les permite detectar dispositivos Android compatibles con el modo accesorio. [ 4 ]
Desarrollo de hardware externo
Las herramientas de desarrollo destinadas a ayudar a un dispositivo Android a interactuar con dispositivos electrónicos externos incluyen IOIO , Android Open Accessory Development Kit, Microbridge, Triggertrap , etc.
Emuladores y subsistemas de Android
Desafío para desarrolladores de Android
El Android Developer Challenge fue una competencia para encontrar la aplicación más innovadora para Android. Google ofreció premios por un total de 10 millones de dólares estadounidenses , distribuidos entre ADC I y ADC II. ADC I aceptó propuestas del 2 de enero al 14 de abril de 2008. Las 50 propuestas más prometedoras, anunciadas el 12 de mayo de 2008, recibieron cada una un premio de 25 000 dólares para su posterior desarrollo. [ 5 ] [ 6 ] Finalizó a principios de septiembre con el anuncio de diez equipos que recibieron 275 000 dólares cada uno, y diez equipos que recibieron 100 000 dólares cada uno. [ 7 ]
ADC II se anunció el 27 de mayo de 2009. [ 8 ] La primera ronda de ADC II cerró el 6 de octubre de 2009. [ 9 ] Los ganadores de la primera ronda de ADC II, que comprendían las 200 mejores aplicaciones, se anunciaron el 5 de noviembre de 2009. La votación para la segunda ronda también se abrió el mismo día y finalizó el 25 de noviembre. Google anunció a los principales ganadores de ADC II el 30 de noviembre, siendo SweetDreams, What the Doodle!? y WaveSecure nominados como los ganadores generales del desafío. [ 10 ] [ 11 ]
Distribuciones comunitarias
Existe una comunidad de entusiastas del código abierto que crean y comparten distribuciones basadas en Android (es decir, firmware ) con varias personalizaciones y funciones adicionales, como compatibilidad con audio sin pérdidas FLAC y la capacidad de almacenar aplicaciones descargadas en la tarjeta microSD . [ 12 ] Esto generalmente implica rootear el dispositivo. Rootear permite a los usuarios acceso root al sistema operativo, lo que permite el control total del teléfono. Rootear también tiene varias desventajas, incluyendo un mayor riesgo de pirateo, altas probabilidades de dejar el dispositivo inutilizable , pérdida de la garantía, mayores riesgos de ataques de virus, etc. [ 13 ] También es posible instalar firmware personalizado, aunque el gestor de arranque del dispositivo también debe estar desbloqueado. El firmware personalizado permite a los usuarios de teléfonos más antiguos usar aplicaciones disponibles solo en versiones más recientes. [ 14 ]
Estos paquetes de firmware se actualizan con frecuencia, incorporan funciones de Android que aún no se han lanzado oficialmente en un firmware autorizado por el operador y suelen tener menos limitaciones. CyanogenMod y OMFGB son ejemplos de este tipo de firmware.
El 24 de septiembre de 2009, Google envió una carta de cese y desistimiento [ 15 ] al desarrollador Cyanogen, alegando problemas con la redistribución de las aplicaciones de código cerrado de Google [ 16 ] dentro del firmware personalizado. Si bien la mayor parte del sistema operativo Android es de código abierto, los teléfonos vienen con aplicaciones de código cerrado de Google para funciones como Google Play y la navegación GPS. Google ha afirmado que estas aplicaciones solo pueden ser proporcionadas a través de canales de distribución autorizados por distribuidores con licencia. Cyanogen cumplió con la licencia de Google y continuó distribuyendo su modificación sin el software propietario. Proporcionó un método para realizar copias de seguridad de las aplicaciones de Google con licencia durante el proceso de instalación de la modificación y restaurarlas una vez finalizado el proceso. [ 17 ]
Estándares Java
Entre los obstáculos para el desarrollo se encuentra el hecho de que Android no utiliza los estándares Java establecidos, es decir, Java SE y ME . Esto impide la compatibilidad entre las aplicaciones Java escritas para esas plataformas y las escritas para la plataforma Android. Android reutiliza la sintaxis y la semántica del lenguaje Java, pero no proporciona las bibliotecas de clases y las API completas incluidas en Java SE o ME. [ 18 ] Sin embargo, existen varias herramientas en el mercado de empresas como Myriad Group y UpOnTek que ofrecen servicios de conversión de Java ME a Android. [ 19 ] [ 20 ] [ 21 ]
Android proporciona sus propias clases de interfaz gráfica de usuario (GUI) y no proporciona Java AWT, Swing ni JavaFX. No admite la API completa de Java Beans. [ 22 ]
Historia y cuota de mercado
Android fue creado por la Open Handset Alliance , liderada por Google. Las primeras opiniones sobre el desarrollo de aplicaciones para la plataforma Android fueron mixtas. [ 23 ] Entre los problemas citados se incluyen errores, falta de documentación, infraestructura de control de calidad inadecuada y ausencia de un sistema público de seguimiento de problemas. (Google anunció un sistema de seguimiento de problemas el 18 de enero de 2008). [ 24 ] En diciembre de 2007, Adam MacBeth, fundador de la startup móvil MergeLab, declaró: «La funcionalidad no está presente, está mal documentada o simplemente no funciona... Claramente no está lista para su lanzamiento». [ 25 ] A pesar de esto, las aplicaciones dirigidas a Android comenzaron a aparecer la semana posterior al anuncio de la plataforma. La primera aplicación disponible públicamente fue el juego Snake . [ 26 ]
El 12 de noviembre de 2007 se publicó una versión preliminar del SDK de Android. El 15 de julio de 2008, el equipo del Android Developer Challenge envió por error un correo electrónico a todos los participantes anunciando que una nueva versión del SDK estaba disponible en un área de descarga "privada". El correo electrónico estaba destinado a los ganadores de la primera ronda del Android Developer Challenge. La revelación de que Google estaba proporcionando nuevas versiones del SDK a algunos desarrolladores y no a otros (y manteniendo este acuerdo en secreto) provocó una gran frustración en la comunidad de desarrolladores de Android en aquel momento. [ 27 ]
El 18 de agosto de 2008 se lanzó la versión beta del SDK de Android 0.9. Esta versión proporcionó una API actualizada y ampliada, herramientas de desarrollo mejoradas y un diseño actualizado para la pantalla de inicio. Hay instrucciones detalladas para la actualización disponibles para quienes ya trabajan con una versión anterior. [ 28 ] El 23 de septiembre de 2008 se lanzó el SDK de Android 1.0 (Versión 1). [ 29 ] Según las notas de la versión, incluía "principalmente correcciones de errores, aunque se añadieron algunas funciones menores". También incluía varios cambios en la API con respecto a la versión 0.9. Se han lanzado múltiples versiones desde su desarrollo. [ 30 ]
El 5 de diciembre de 2008, Google anunció el primer Android Dev Phone , un dispositivo desbloqueado tanto para SIM como para hardware, diseñado para desarrolladores avanzados. Se trataba de una versión modificada del teléfono Dream de HTC. Si bien los desarrolladores pueden usar dispositivos de consumo comunes para probar sus aplicaciones, algunos prefieren un dispositivo desbloqueado o sin contrato.
A partir de julio de 2013Se han desarrollado más de un millón de aplicaciones para Android, [ 31 ] con más de 25 mil millones de descargas. [ 32 ] [ 33 ] Una investigación de junio de 2011 indicó que más del 67% de los desarrolladores móviles utilizaban la plataforma en el momento de la publicación. [ 34 ] Se pronosticaba que los envíos de teléfonos inteligentes Android superarían los 1.200 millones de unidades en 2018 con una cuota de mercado del 85%. [ 35 ]
Véase también
Referencias
- ↑ "Descripción general de la arquitectura" . Proyecto de código abierto de Android . Consultado el 31 de octubre de 2025 .
- ↑ "Fundamentos de la aplicación" . Desarrolladores de Android .
- ↑ Modesti, Paolo (marzo de 2021). "Un enfoque basado en scripts para la enseñanza y evaluación del desarrollo de aplicaciones Android" . ACM Transactions on Computing Education . 21 (1): 1– 24. doi : 10.1145/3427593 . Recuperado el 8 de mayo de 2022 .
- ↑ "Guías para desarrolladores de Android" . Developer.android.com . Consultado el 17 de abril de 2021 .
- ↑ Chen, Jason (12 de mayo de 2008). "Las 50 mejores aplicaciones" . Blog de desarrolladores de Android . Archivado del original el 25 de septiembre de 2009. Consultado el 4 de septiembre de 2009 .
- ↑ Brown, Eric (13 de mayo de 2008). "Android Developer Challenge anuncia a los ganadores de la primera ronda" . Linux for Devices . Archivado del original el 14 de mayo de 2008.
- ↑ "ADC I Top 50 Gallery" . Android Developer Challenge . Consultado el 19 de mayo de 2009 .
- ↑ "Android Developer Challenge" . Google Code . Consultado el 11 de enero de 2008 .
- ↑ Chu, Eric (6 de octubre de 2009). "ADC 2 Ronda 1 Puntuación Completa" . Blog de desarrolladores de Android . Archivado del original el 1 de noviembre de 2009. Recuperado el 3 de noviembre de 2009 .
- ↑ "Ganadores generales de ADC 2" . Android Developer Challenge . Archivado del original el 4 de enero de 2011. Consultado el 5 de diciembre de 2010 .
- ↑ Kharif, Olga (30 de noviembre de 2009). "Se anuncian los ganadores del Android Developer Challenge 2" . BusinessWeek . Archivado del original el 4 de diciembre de 2009. Recuperado el 5 de diciembre de 2010 .
- ↑ "Desarrollo de Android de ensueño" . Foro xda-developers . Consultado el 11 de septiembre de 2009 .
- ↑ "Rooting: Ventajas y desventajas" . Foro ITCSE . Archivado del original el 29 de noviembre de 2014. Consultado el 21 de septiembre de 2013 .
- ↑ "Android 2.1 del Motorola Droid adaptado al G1" . Volt Mobile . 10 de marzo de 2010. Archivado del original el 31 de mayo de 2011. Consultado el 13 de mayo de 2011 .
- ↑ Wimberly, Taylor (24 de septiembre de 2009). "¿CyanogenMod en problemas?" . Android y yo . Archivado del original el 3 de octubre de 2009 . Recuperado el 26 de septiembre de 2009 .
- ↑ Morrill, Dan (25 de septiembre de 2009). "Una nota sobre las aplicaciones de Google para Android" . Blog de desarrolladores de Android . Archivado del original el 25 de octubre de 2009. Recuperado el 26 de septiembre de 2009 .
- ↑ "El estado actual..." ROM de Android CyanogenMod . 27 de septiembre de 2009. Archivado del original el 3 de noviembre de 2009. Recuperado el 27 de septiembre de 2009 .
- ↑ van Gurp, Jilles (13 de noviembre de 2007). "Google Android: primeras impresiones y críticas" . Javalobby . Archivado del original el 28 de agosto de 2008. Recuperado el 7 de marzo de 2009. Francamente
, no entiendo por qué Google pretende ignorar la gran cantidad de implementaciones existentes. Me parece un caso grave de "no fue inventado aquí". En última instancia, esto ralentizará la adopción. Ya hay demasiadas plataformas Java para el mundo móvil y esta es otra más.
- ↑ "El nuevo convertidor J2Android de Myriad impulsa la fiebre del oro de las aplicaciones Android" . 19 de marzo de 2010. Archivado del original el 4 de julio de 2011. Consultado el 13 de mayo de 2011 .
- ↑ Fruhlinger, Josh (23 de marzo de 2010). "J2Android espera que no sepas que Android está basado en Java" . JavaWorld . Recuperado el 13 de julio de 2020.
Por otro lado, podrías pensar que esto es una especie de estafa dirigida a desarrolladores que no entienden realmente la naturaleza de la plataforma a la que se dirigen. Mi mayor queja es que uno pensaría que Mikael Ricknäs, el reportero de IDG News Service que escribió el primer artículo enlazado arriba (quien trabaja para la misma empresa que publica JavaWorld), al menos habría mencionado la relación entre Java y Android para dejar clara la extrañeza de este anuncio.
- ↑ Fruhlinger, Josh (31 de marzo de 2010). "El CTO de Myriad: J2Android traslada los MIDlets al marco de trabajo "hermoso" de Android" . JavaWorld . Consultado el 13 de julio de 2020.
Tendremos que esperar para ver qué acogida tiene realmente J2Android. La herramienta aún no está disponible en el mercado; si bien Schillings habló con optimismo sobre "convertir 1000 MIDlets en una tarde", por el momento están trabajando con algunos proveedores para transformar sus catálogos. Así que aquellos que esperan evitar aprender a escribir código Android tendrán que esperar un tiempo.
- ↑ Cecilia, Jean (10 de junio de 2026). "Estándares modernos de desarrollo de Android: kits de herramientas de interfaz de usuario nativa, compatibilidad con JVM y restricciones de plataforma" . Recuperado el 11 de junio de 2026 .
- ↑ Paul, Ryan (19 de diciembre de 2007). "Desarrollo de aplicaciones para Google Android: una mezcla de aspectos positivos y negativos" . Ars Technica . Archivado del original el 20 de diciembre de 2007. Consultado el 19 de diciembre de 2007 .
- ↑ Morrill, Dan (18 de enero de 2008). "No se puede apresurar la perfección, pero ahora se pueden reportar errores" . Blog de desarrolladores de Android . Consultado el 3 de septiembre de 2009 .
- ↑ Morrison, Scott (19 de diciembre de 2007). "Fallos en el software Android de Google" . The Wall Street Journal . Consultado el 19 de diciembre de 2007 .
- ↑ "Primera aplicación para Android : Snake" . Mobiles2day . 14 de noviembre de 2007. Archivado del original el 11 de mayo de 2008. Consultado el 7 de enero de 2008 .
- ↑ Metz, Cade (14 de julio de 2008). "Google juega al escondite con el SDK de Android" . The Register . Archivado del original el 6 de octubre de 2008. Consultado el 23 de octubre de 2008 .
- ↑ "Android — Un proyecto de Open Handset Alliance: Actualización del SDK" . Archivado del original el 13 de septiembre de 2008. Consultado el 24 de octubre de 2008 .
- ↑ "Otras versiones del SDK" . Desarrolladores de Android . Consultado el 2 de septiembre de 2009 .
- ↑ "Archivos SDK" . Desarrolladores de Android .
- ↑ "Google Play alcanza el millón de aplicaciones" . Mashable . 24 de julio de 2013.
- ↑ "Estadísticas de la aplicación Android" . Archivado del original el 2 de enero de 2011. Consultado el 31 de diciembre de 2010 .
- ↑ Leena Rao (14 de abril de 2011). "Google: 3 mil millones de aplicaciones de Android instaladas; las descargas aumentaron un 50 por ciento con respecto al trimestre anterior" . Techcrunch . Archivado del original el 25 de abril de 2011. Recuperado el 13 de mayo de 2011 .
- ↑ "Economía del Desarrollador 2011" . Archivado del original el 29 de septiembre de 2013. Consultado el 8 de julio de 2011 .
- ↑ "Según IDC , el volumen mundial de ventas de smartphones seguirá siendo bajo en 2018 antes de volver a crecer en 2019 y años posteriores". idc.com . 30 de mayo de 2018. Archivado del original el 17 de octubre de 2019. Consultado el 6 de junio de 2018 .
Bibliografía
- Ed, Burnette (13 de julio de 2010). Hola, Android: Introducción a la plataforma de desarrollo móvil de Google (3.ª ed.). Pragmatic Bookshelf . ISBN 978-1-934356-56-2.
- Ableson, Frank; Sen, Robi; King, Chris (enero de 2011). Android en acción, segunda edición (2.ª ed.). Manning . ISBN 978-1-935182-72-6.
- Conder, Shane; Darcey, Lauren (24 de julio de 2012). Desarrollo de aplicaciones inalámbricas para Android, Volumen II: Temas avanzados (3.ª ed.). Addison-Wesley Professional . ISBN 978-0-321-81384-8.
- Murphy, Mark (26 de junio de 2009). Introducción a Android (1.ª ed.). Apress . ISBN 978-1-4302-2419-8.
- Meier, Reto (marzo de 2010). Desarrollo profesional de aplicaciones para Android 2 (1.ª ed.). Wrox Press . ISBN 978-0-470-56552-0.
- Haseman, Chris (21 de julio de 2008). Fundamentos de Android (1.ª ed.). Apress . ISBN 978-1-4302-1064-1.
- Clifton, Ian (3 de agosto de 2012). Fundamentos del desarrollo de aplicaciones Android: LiveLessons (Formación en vídeo) (1.ª ed.). Addison-Wesley Professional . ISBN 978-0-13-299658-7.
- Android (sistema operativo)
- Software de desarrollo para Android (sistema operativo)
- Linux embebido
- Software móvil gratuito
- Linux móvil
- Software Android (sistema operativo)
- Comunidades de desarrolladores de software
- Desarrollo de software por plataformas