stringtranslate.com

Desarrollo de software para Android

La pila de Android [1]
El Nexus 4 , parte de la serie Nexus de Google , una línea de dispositivos "aptos para desarrolladores" [2]

El desarrollo de software de Android es el proceso mediante el cual se crean aplicaciones para dispositivos que ejecutan el sistema operativo Android . Google afirma que [3] "las aplicaciones de Android se pueden escribir usando 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 de máquina virtual (JVM) que no sean Java , 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 y herramientas de programación permiten compatibilidad con aplicaciones multiplataforma (es decir, tanto para Android como para iOS ). Las herramientas de terceros, los entornos de desarrollo y la compatibilidad con 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 usuarios finales es Google Play ; también permite el lanzamiento gradual de aplicaciones por etapas, así como la distribución de versiones de aplicaciones previas al lanzamiento a los 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 la plataforma Android SDK son un subconjunto descargable por separado del SDK completo, que consta de herramientas de línea de comandos como adby fastboot. [4] Android Debug Bridge (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 en 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 incorporada a Android 2.3.4) presenta compatibilidad con Android Open Accessory, que permite que un hardware USB externo (un accesorio USB de Android) interactúe con un dispositivo con Android en un modo "accesorio" especial. Cuando un dispositivo con Android está en modo accesorio, el accesorio conectado actúa como host USB (alimenta el bus y enumera los dispositivos) y el dispositivo con Android actúa como dispositivo USB. Los accesorios USB de Android están diseñados específicamente para conectarse a dispositivos con Android y se adhieren a un protocolo simple (protocolo de accesorios de Android) que les permite detectar dispositivos con Android que admiten el modo accesorio. [5]

Desarrollo de hardware externo

Las herramientas de desarrollo diseñadas para ayudar a un dispositivo Android a interactuar con dispositivos electrónicos externos incluyen IOIO , Android Open Accessory Development Kit , Microbridge, Triggertrap , etc.

Emuladores de Android

Desafío para desarrolladores de Android

El Android Developer Challenge fue una competición 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ó presentaciones desde el 2 de enero hasta el 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 un mayor desarrollo. [6] [7] Terminó 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. [8]

El ADC II se anunció el 27 de mayo de 2009. [9] La primera ronda del ADC II cerró el 6 de octubre de 2009. [10] Los ganadores de la primera ronda del 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ó los principales ganadores del ADC II el 30 de noviembre, y SweetDreams, What the Doodle!? y WaveSecure fueron nominados como los ganadores generales del desafío. [11] [12]

Distribuciones basadas en la comunidad

Existe una comunidad de entusiastas del código abierto que crean y comparten distribuciones basadas en Android (es decir, firmware ) con una serie de personalizaciones y características adicionales, como soporte de audio sin pérdida FLAC y la capacidad de almacenar aplicaciones descargadas en la tarjeta microSD . [13] Esto generalmente implica rootear el dispositivo. El rooteo permite a los usuarios acceso root al sistema operativo, lo que permite un control total del teléfono. El rooteo también tiene varias desventajas, incluido un mayor riesgo de piratería, altas posibilidades de bloqueo , pérdida de garantía, mayores riesgos de ataques de virus, etc. [14] También es posible instalar firmware personalizado, aunque el cargador 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 nuevas. [15]

Estos paquetes de firmware se actualizan con frecuencia, incorporan elementos de la funcionalidad de Android que aún no se han lanzado oficialmente dentro de un firmware aprobado por el operador y tienden a 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 [16] al modder Cyanogen, citando problemas con la redistribución de las aplicaciones de código cerrado de Google [17] dentro del firmware personalizado. Aunque la mayor parte del sistema operativo Android es de código abierto, los teléfonos vienen empaquetados con aplicaciones de código cerrado de Google para funciones como Google Play y navegación GPS. Google ha afirmado que estas aplicaciones solo se pueden proporcionar a través de canales de distribución aprobados por distribuidores autorizados. Cyanogen cumplió con la licencia de Google y continuó distribuyendo su mod 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 del mod y restaurarlas cuando el proceso se completa. [18]

Estándares de Java

Los obstáculos para el desarrollo incluyen el hecho de que Android no utiliza los estándares establecidos de Java, 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 API completas incluidas con Java SE o ME. [19] Sin embargo, existen múltiples herramientas en el mercado de empresas como Myriad Group y UpOnTek que proporcionan servicios de conversión de Java ME a Android. [20] [21] [22]

Android ofrece sus propias clases de interfaz gráfica de usuario y no ofrece Java AWT, Swing ni JavaFX. No es compatible con la API completa de Java Beans. [ cita requerida ]

Historia y cuota de mercado

Android fue creado por la Open Handset Alliance , que está liderada por Google. Los primeros comentarios sobre el desarrollo de aplicaciones para la plataforma Android fueron mixtos. [23] Los problemas citados incluyen errores, falta de documentación, infraestructura de control de calidad inadecuada y ningún sistema público de seguimiento de problemas. (Google anunció un rastreador de problemas el 18 de enero de 2008.) [24] En diciembre de 2007, el fundador de la startup móvil MergeLab, Adam MacBeth, afirmó: "La funcionalidad no está ahí, está mal documentada o simplemente no funciona... Claramente no está listo para el gran momento". [25] A pesar de esto, las aplicaciones dirigidas a Android comenzaron a aparecer la semana después de que se anunció 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 del Android Developer Challenge anunciando que había una nueva versión del SDK 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 suministrando nuevas versiones del SDK a algunos desarrolladores y no a otros (y manteniendo este acuerdo en privado) provocó una frustración generalizada dentro de la comunidad de desarrolladores de Android en ese 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. Las instrucciones detalladas para la actualización están disponibles para aquellos que ya trabajaban 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 agregaron algunas funciones menores". También incluía varios cambios en la API de la versión 0.9. Se han lanzado múltiples versiones desde que se desarrolló. [30]

El 5 de diciembre de 2008, Google anunció el primer Android Dev Phone , un dispositivo desbloqueado por hardware y SIM , diseñado para desarrolladores avanzados. Era una versión modificada del teléfono Dream de HTC. Si bien los desarrolladores pueden usar dispositivos de consumo comunes para probar y usar sus aplicaciones, algunos desarrolladores pueden optar por un dispositivo exclusivo desbloqueado o sin contrato.

En julio de 2013 , se habían 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 usaban la plataforma, en el momento de la publicación. [34] Se pronostica que los envíos de teléfonos inteligentes Android superarán los 1.2 mil millones de unidades en 2018 con una participación de mercado del 85%. [35]

Véase también

Referencias

  1. ^ "El código fuente de Android". Source.Android.com . Consultado el 2 de febrero de 2017 .
  2. ^ Syed H (24 de septiembre de 2023). «Editorial: Por qué deberías pasarte a Nexus». Droid Lessons . Archivado desde el original el 18 de febrero de 2017. Consultado el 22 de agosto de 2023 .
  3. ^ "Fundamentos de la aplicación". Desarrolladores de Android .
  4. ^ Modesti, Paolo (marzo de 2021). "Un enfoque basado en scripts para enseñar y evaluar el desarrollo de aplicaciones de Android". ACM Transactions on Computing Education . 21 (1): 1–24. doi :10.1145/3427593 . Consultado el 8 de mayo de 2022 .
  5. ^ "Guías para desarrolladores de Android". Developer.android.com . Consultado el 17 de abril de 2021 .
  6. ^ Chen, Jason (12 de mayo de 2008). «Las 50 mejores aplicaciones». Blog de desarrolladores de Android . Archivado desde el original el 25 de septiembre de 2009. Consultado el 4 de septiembre de 2009 .
  7. ^ Brown, Eric (13 de mayo de 2008). «Android Developer Challenge Announces First-Round Winners». Linux for Devices . Archivado desde el original el 14 de mayo de 2008.
  8. ^ "ADC I Top 50 Gallery". Android Developer Challenge . Consultado el 19 de mayo de 2009 .
  9. ^ "Android Developer Challenge". Código de Google . Consultado el 11 de enero de 2008 .
  10. ^ Chu, Eric (6 de octubre de 2009). «Puntuación de la primera ronda de ADC 2 completa». Blog de desarrolladores de Android . Archivado desde el original el 1 de noviembre de 2009. Consultado el 3 de noviembre de 2009 .
  11. ^ "Ganadores generales de ADC 2". Android Developer Challenge . Archivado desde el original el 4 de enero de 2011. Consultado el 5 de diciembre de 2010 .
  12. ^ Kharif, Olga (30 de noviembre de 2009). «Android Developer Challenge 2 Winners Announced». BusinessWeek . Archivado desde el original el 4 de diciembre de 2009. Consultado el 5 de diciembre de 2010 .
  13. ^ "Desarrollo de Android de ensueño". Foro de desarrolladores de xda . Consultado el 11 de septiembre de 2009 .
  14. ^ "Enraizamiento: ventajas y desventajas". Foro ITCSE . Archivado desde el original el 29 de noviembre de 2014. Consultado el 21 de septiembre de 2013 .
  15. ^ "Android 2.1 de Motorola Droid portado a G1". Volt Mobile . 10 de marzo de 2010. Archivado desde el original el 31 de mayo de 2011. Consultado el 13 de mayo de 2011 .
  16. ^ Wimberly, Taylor (24 de septiembre de 2009). «¿CyanogenMod en problemas?». Android y yo . Archivado desde el original el 3 de octubre de 2009. Consultado el 26 de septiembre de 2009 .
  17. ^ Morrill, Dan (25 de septiembre de 2009). "Una nota sobre Google Apps para Android". Blog de desarrolladores de Android . Archivado desde el original el 25 de octubre de 2009. Consultado el 26 de septiembre de 2009 .
  18. ^ "El estado actual..." ROM Android CyanogenMod . 27 de septiembre de 2009. Archivado desde el original el 3 de noviembre de 2009. Consultado el 27 de septiembre de 2009 .
  19. ^ van Gurp, Jilles (13 de noviembre de 2007). "Google Android: impresiones iniciales y críticas". Javalobby . Archivado desde el original el 28 de agosto de 2008. Consultado 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 inventado aquí". En última instancia, esto ralentizará la adopción. Ya existen demasiadas plataformas Java para el mundo móvil y esta es otra más.
  20. ^ "El nuevo convertidor J2Android de Myriad impulsa la fiebre del oro de las aplicaciones Android". 19 de marzo de 2010. Archivado desde el original el 4 de julio de 2011. Consultado el 13 de mayo de 2011 .
  21. ^ Fruhlinger, Josh (23 de marzo de 2010). "J2Android espera que no sepas que Android está basado en Java". JavaWorld . Consultado el 13 de julio de 2020 . Por otro lado, podrías pensar que se trata de una especie de estafa dirigida a los desarrolladores que no entienden realmente la naturaleza de la plataforma a la que apuntan. Mi mayor queja es que pensarías que Mikael Ricknäs, el reportero de IDG News Service que escribió la primera historia vinculada anteriormente (que trabaja para la misma empresa que publica JavaWorld), al menos habría mencionado la relación entre Java y Android para dejar en claro lo extraño de este anuncio.
  22. ^ Fruhlinger, Josh (31 de marzo de 2010). "Myriad CTO: J2Android mueve MIDlets a un "hermoso" framework Android". JavaWorld . Consultado el 13 de julio de 2020 . Tendremos que esperar y ver exactamente cuánto éxito obtiene J2Android. La herramienta todavía no está disponible en el mercado abierto; mientras que Schillings habló con optimismo sobre "convertir 1.000 MIDlets en una tarde", en este momento están trabajando con algunos proveedores para transformar sus catálogos anteriores. Así que aquellos de ustedes que esperan evitar aprender a escribir código Android tal vez tengan que esperar un tiempo.
  23. ^ Paul, Ryan (19 de diciembre de 2007). «Desarrollo de aplicaciones para Google Android: un panorama heterogéneo». Ars Technica . Archivado desde el original el 20 de diciembre de 2007. Consultado el 19 de diciembre de 2007 .
  24. ^ Morrill, Dan (18 de enero de 2008). "No se puede apresurar la perfección, pero ahora se pueden presentar errores". Blog de desarrolladores de Android . Consultado el 3 de septiembre de 2009 .
  25. ^ Morrison, Scott (19 de diciembre de 2007). "Glitches Bug Google's Android Software". The Wall Street Journal . Consultado el 19 de diciembre de 2007 .
  26. ^ "La primera aplicación para Android: Snake". Mobiles2day . 14 de noviembre de 2007. Archivado desde el original el 11 de mayo de 2008 . Consultado el 7 de enero de 2008 .
  27. ^ Metz, Cade (14 de julio de 2008). «Google juega al escondite con el SDK de Android». The Register . Archivado desde el original el 6 de octubre de 2008. Consultado el 23 de octubre de 2008 .
  28. ^ "Android — Un proyecto de la Open Handset Alliance: actualización del SDK". Archivado desde el original el 13 de septiembre de 2008. Consultado el 24 de octubre de 2008 .
  29. ^ "Otras versiones del SDK". Desarrolladores de Android . Consultado el 2 de septiembre de 2009 .
  30. ^ "Archivos SDK". Desarrolladores de Android .
  31. ^ "Google Play alcanza el millón de aplicaciones". Mashable . 24 de julio de 2013.
  32. ^ "Estadísticas de aplicaciones Android". Archivado desde el original el 2 de enero de 2011. Consultado el 31 de diciembre de 2010 .
  33. ^ Leena Rao (14 de abril de 2011). «Google: 3 mil millones de aplicaciones Android instaladas; las descargas aumentaron un 50 por ciento con respecto al último trimestre». Techcrunch . Archivado desde el original el 25 de abril de 2011. Consultado el 13 de mayo de 2011 .
  34. ^ "Developer Economics 2011". Archivado desde el original el 29 de septiembre de 2013. Consultado el 8 de julio de 2011 .
  35. ^ "Los volúmenes mundiales de teléfonos inteligentes seguirán a la baja en 2018 antes de volver a crecer en 2019 y más allá, según IDC". idc.com . 30 de mayo de 2018. Archivado desde el original el 17 de octubre de 2019 . Consultado el 6 de junio de 2018 .

Bibliografía