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 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 de máquinas virtuales (JVM) que no son 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 API restringido. Algunos lenguajes y herramientas de programación permiten la compatibilidad con aplicaciones multiplataforma (es decir, tanto para Android como para iOS ). Las herramientas de terceros, los entornos de desarrollo y el soporte de idiomas 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 la aplicación por etapas, así como la distribución de versiones preliminares de la aplicación a los evaluadores.
El kit de desarrollo de software (SDK) de Android incluye un conjunto completo de herramientas de desarrollo. Las herramientas de la plataforma SDK de Android son un subconjunto del SDK completo que se puede descargar por separado y que consta de herramientas de línea de comandos como adb
y fastboot
. [4] Android Debug Bridge (ADB) es una herramienta para ejecutar comandos en un dispositivo Android conectado. Fastboot es un protocolo utilizado para actualizar sistemas de archivos. El código escrito en C / C++ se puede compilar en ARM o en código nativo x86 (o sus variantes de 64 bits) utilizando el kit de desarrollo nativo de Android (NDK).
La plataforma Android 3.1 (también compatible con Android 2.3.4) presenta compatibilidad con accesorios abiertos de Android, que permite que el hardware USB externo (un accesorio USB de Android) interactúe con un dispositivo con Android en un modo de "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 cumplir con un protocolo simple (protocolo de accesorios de Android) que les permite detectar dispositivos con Android que admiten el modo accesorio. [5]
Las herramientas de desarrollo destinadas a ayudar a un dispositivo Android a interactuar con dispositivos electrónicos externos incluyen IOIO , Android Open Accesorio Development Kit , Microbridge, Triggertrap , etc.
El Android Developer Challenge era 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 , repartidos entre ADC I y ADC II. ADC I acepté presentaciones del 2 de enero al 14 de abril de 2008. Las 50 entradas 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 cada uno, y diez equipos que recibieron $100,000 cada uno. [8]
ADC II se anunció el 27 de mayo de 2009. [9] La primera ronda de ADC II cerró el 6 de octubre de 2009. [10] Los ganadores de la primera ronda de ADC II, que comprende las 200 solicitudes principales, 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 de ADC II el 30 de noviembre, con SweetDreams, What the Doodle!? y WaveSecure fue nominado como el ganador general del desafío. [11] [12]
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 FLAC sin pérdidas y la capacidad de almacenar aplicaciones descargadas en la tarjeta microSD . [13] Esto generalmente implica rootear el dispositivo. El enraizamiento permite a los usuarios acceder al sistema operativo, lo que permite un control total del teléfono. El enraizamiento también tiene varias desventajas, incluido un mayor riesgo de piratería, altas posibilidades de bloqueo , pérdida de garantía, mayores riesgos de ataque 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 utilizar aplicaciones disponibles sólo en versiones más recientes. [15]
Esos 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 autorizado por el operador y tienden a tener menos limitaciones. CyanogenMod y OMFGB son ejemplos de dicho firmware.
El 24 de septiembre de 2009, Google emitió 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 con aplicaciones de Google de código cerrado para funciones como Google Play y navegación GPS. Google ha afirmado que estas aplicaciones sólo pueden proporcionarse 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 se complete el proceso. [18]
Los obstáculos para el desarrollo incluyen 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 completas ni las API incluidas con Java SE o ME. [19] Sin embargo, existen múltiples herramientas en el mercado de empresas como Myriad Group y UpOnTek que brindan servicios de conversión de Java ME a Android. [20] [21] [22]
Android proporciona sus propias clases de GUI y no proporciona Java AWT, Swing o JavaFX. No es compatible con la API completa de Java Beans. [ cita necesaria ]
Android fue creado por Open Handset Alliance , 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 falta de un 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, declaró: "La funcionalidad no está ahí, está mal documentada o simplemente no funciona... Claramente no está lista". para el horario de máxima audiencia." [25] A pesar de esto, las aplicaciones dirigidas a Android comenzaron a aparecer la semana después del anuncio de la plataforma. La primera aplicación disponible públicamente fue el juego Snake . [26]
El 12 de noviembre de 2007 se lanzó una versión preliminar del SDK de Android. El 15 de julio de 2008, el equipo del Desafío de desarrolladores de Android envió accidentalmente un correo electrónico a todos los participantes en el Desafío de desarrolladores de Android 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 de SDK a algunos desarrolladores y no a otros (y manteniendo este acuerdo privado) generó una frustración ampliamente reportada 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 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 agregaron algunas características más pequeñas". También incluyó varios cambios de API desde la versión 0.9. Se han lanzado varias versiones desde su desarrollo. [30]
El 5 de diciembre de 2008, Google anunció el primer teléfono para desarrolladores con Android , un dispositivo desbloqueado por SIM y por hardware diseñado para desarrolladores avanzados. Era una versión modificada del teléfono Dream de HTC. Si bien los desarrolladores pueden utilizar dispositivos de consumo habituales para probar y utilizar sus aplicaciones, algunos desarrolladores pueden elegir un dispositivo dedicado desbloqueado o sin contrato.
En julio de 2013 [actualizar], 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 utilizaban la plataforma, en el momento de la publicación. [34] Se prevé que los envíos de teléfonos inteligentes Android superen los 1.200 millones de unidades en 2018, con una cuota de mercado del 85%. [35]
Francamente, no entiendo por qué Google pretende ignorar la gran cantidad de implementaciones existentes. Me parece un mal caso de “aquí no se inventó”. En última instancia, esto ralentizará la adopción. Ya existen demasiadas plataformas Java para el mundo móvil y esta es otra más
Por otro lado, se podría pensar que se trata de una especie de estafa dirigida a desarrolladores que no comprenden 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ó la primera historia vinculada arriba (que trabaja para la misma compañía que publica JavaWorld), al menos habría mencionado la relación entre Java y Android. dejar clara la rareza de este anuncio.
Tendremos que esperar y ver exactamente cuánta recuperación ve realmente J2Android. La herramienta aún no está disponible en el mercado abierto; Si bien 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. Entonces, aquellos de ustedes que esperan evitar aprender a escribir código de Android pueden tener que esperar un tiempo.