Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Índice
Herramientas oficiales
Android SDK
Android Debug Bridge - Conector de Depuración de El teléfono Nexus 4, parte de la
Android serie Google Nexus, una línea de
Fastboot - Arranque rápido dispositivos "adecuados para
Native development kit - Sistema de desarrollo nativo desarrollo" ("developer-friendly").1
Herramientas oficiales
Android SDK
Véase también: Android Studio
El SDK (Software Development Kit) de Android Android SDK
incluye un conjunto de herramientas de desarrollo. 9
developer.android.com/tools/sdk/eclipse-adt.html
Comprende un depurador de código, una biblioteca,
un simulador de teléfono basado en QEMU, Tipo de entorno de desarrollo integrado
documentación, ejemplos de código y tutoriales. Las programa
plataformas de desarrollo soportadas Desarrollador Google
incluyen GNU/Linux, Mac OS X 10.5.8 o posterior, Lanzamiento octubre de 2009
y Windows XP o posterior. También puede utilizarse Última 24.0.2
el propio sistema Android para desarrollos utilizando versión 00 de diciembre de 2014 (5
las aplicaciones AIDE - Android IDE - Java, C++(app) estable años, 1 mes y 31 días)8
[AIDE - Android IDE - Java, C++] y el editor de Java. Género EDI, KDS
La plataforma integral de desarrollo (IDE, Integrated Programado Java
Development Environment) soportada oficialmente en
es Android Studio junto con el complemento ADT Sistema Multiplataforma
(Android Development Tools plugin). Además, los operativo
programadores pueden usar un editor de texto para
Licencia Gratuita. Acuerdo con Google
escribir ficheros Java y XML, y utilizar comandos en
Idiomas Inglés
un terminal (se necesitan los paquetes JDK, Java
Development Kit y Apache Ant) para crear y depurar En español No
aplicaciones, así como controlar dispositivos Android
que estén conectados (es decir, reiniciarlos, instalar aplicaciones en remoto, etc.).10
Las actualizaciones del SDK están coordinadas con el desarrollo general de Android. El SDK soporta
también versiones antiguas de Android, por si los programadores necesitan instalar aplicaciones en
dispositivos ya obsoletos o más antiguos. Las herramientas de desarrollo son componentes
descargables, de modo que una vez instalada la última versión pueden instalarse versiones anteriores y
hacer pruebas de compatibilidad.11
Una aplicación Android está compuesta por un conjunto de ficheros empaquetados en formato .apk y
guardada en el directorio /data/app del sistema operativo Android (este directorio necesita permisos
de superusuario, root, por razones de seguridad). Un paquete APK incluye ficheros .dex 12
(ejecutables Dalvik, un código intermedio compilado), recursos, etc.
En un problema de seguridad, publicado en marzo del 2011, ADB fue utilizado como un vector para
tratar de instalar programas como superusuario (root) en teléfonos conectados, por medio de un
ataque de saturación de recursos ('resource exhaustion attack').14
flash – reescribe una partición con una imagen binaria almacenada en el ordenador.
erase – borra una partición específica.
reboot – reinicia el dispositivo con el sistema principal, la partición de recuperación del sistema o de
vuelta al bootloader.
devices – muestra una lista de dispositivos (con su número de serie) conectados al ordenador.
format – formatea una partición específica. El sistema de ficheros de la partición tiene que ser
compatible con el dispositivo.
NDK está basado en la línea de comandos, y, al contrario que el desarrollo con Eclipse, requiere la
invocación manual de comandos para construir, cargar y depurar las aplicaciones. Hay herramientas de
terceros que integran el NDK con Eclipse23 y Visual Studio.24
Android APIMiner
Android APIMiner es una plataforma que complementa automáticamente la
documentación Javadoccon ejemplos de uso, extraídos de aplicaciones Android de código abierto. 26
Para mejorar la calidad de los ejemplos, APIMiner utiliza un algoritmo de rebanamiento estático dentro
de los procedimientos.
AndroWish
AndroWish es un intérprete de Tcl/Tk en el dispositivo, que proporciona un interfaz gráfico (GUI)
multiventana, y acceso a Bluetooth, USB, network sockets, text-to-speech, speech recognition,
sensores, localización (GPS o información de la red), gestor de actividad ("activity manager"), SQLite y
sonido. La capa GUI está basada en SDL2. AndroWish se incluye con 337 paquetes Tcl.27
En la segunda mitad de 2011, Google liberó el código fuente, terminó su servicio Web, y proporcionó
fondos para la creación en el MIT del "Center for Mobile Learning" ( Centro de Aprendizaje para
Móviles ) dirigido por el creador de App Inventor Hal Abelson y los compañeros y profesores del MIT
Eric Klopfer y Mitchel Resnick.33 34 La última versión creada como resultado de la colaboración entre
el MIT y Google fue liberada en febrero del 2012,35 y la primera versión exclusiva del MIT en marzo
del mismo año actualizada en App Inventor 2 en diciembre del 2013.36 Actualmente (2014) el MIT se
ocupa de su mantenimiento.[cita requerida]
Basic4android
Basic4android es un producto comercial similar a Simple.37 Está inspirado en Microsoft Visual Basic
6 y Microsoft Visual Studio. Hace la programación Android mucho más sencilla para programadores
habituales de Visual Basic que encuentran dificultades en el uso de Java. Basic4android cuenta con una
fuerte y activa comunidad online de desarrolladores.
Kivy
Kivy es una librería Python de código abierto, para desarrollar programas multitáctil con un interfaz
natural de usuario ( NUI, natural user interface) para una amplia gama de dispositivos. Kivy da la
posibilidad de mantener una sola aplicación para numerosos sistemas operativos ("programar una vez,
ejecutar en todas partes"). Kivy tiene una herramienta incorporada para distribuir aplicaciones móviles
llamada Buildozer, sólo disponible en Linux. Buildozer está todavía en fase alpha, pero es mucho más
sencilla que los sistemas de instalación anteriores de Kivy. Las aplicaciones programadas con Kivy
pueden enviarse a la plataforma de distribución de aplicaciones móviles de Android.
Processing
El entorno Processing, que también utiliza el lenguaje Java, ha soportado un modo Android desde la
versión 1,5. Puede integrarse con la cámara y los sensores del dispositivo utilizando la librería Ketai.
Qt para Android
Qt para Android permite a las aplicaciones Qt 5 funcionar en dispositivos Android V2.3.3 ( nivel de API
10) o posteriores.38 Qt es una infraestructura multiplataforma para aplicaciones que puede abarcar a
Android, Linux, iOS, Sailfish OS y Windows. El desarrollo de aplicaciones Qt se hace en C++standard y
JavaScript. El desarrollo de aplicaciones en Qt necesita de Android NDK y JDK.39 Qt Creator es el
entorno de desarrollo integrado proporcionado por Qt para desarrollo de aplicaciones multiplataforma.
RFO Basic!
RFO Basic ( un dialecto del Basic Dartmouth) es un intérprete libre en el dispositivo, que proporciona
acceso a hardware, sensores, sonido, gráficos, multitactil, sistema de ficheros, SQLite, network sockets,
FTP, HTTP, Bluetooth, HTML ÇGUI, encryption, SMS, teléfono, correo, texto a voz, reconocimiento de
voz, GPS, funciones matemáticas, funciones de cadenas de caracteres, listas y otras utilidades
esenciales. Es un proyecto de código abierto que produce ficheros apk de Android independientes.40 El
desarrollo de RFO Basic está activo y tiene una fuerte comunidad en línea de desarrolladores.
RubyMotion
RubyMotion es una herramienta para desarrollar aplicaciones móviles en Ruby. En la versión 3.0,
soporta Android. Las aplicaciones RubyMotion pueden interactuar con el juego completo de Java
Android APIs de Ruby, utilizar librerías Java de terceros y están compiladas estáticamente en el código
máquina.41
Saphir
Saphir es una rama del intérprete de código abierto Rebol 3 (R3).42 Toda la funcionalidad de R3,
incluyendo el interfaz gráfico, gráficos, acceso a red, acceso a ficheros, análisis sintáctico, y otras
funciones principales son portables entre Android, Windows, Mac y Linux, sin cambios en el código
fuente. Saphir utiliza plantillas de "concise dialect" (DSL) para construir interfaces gráficos de usuario y
realizar operaciones comunes, usando una sintaxis breve y legible. El pequeño tamaño del intérprete (
0,5 - 1,5 megabytes ) complementa el diseño utilitario de Saphir.
SDL
La librería SDL ofrece también una opción de desarrollo, al lado de Java, permitiendo desarrollar en C y
portar de una forma sencilla aplicaciones nativas existentes SDL y C. Mediante la inyección de una
pequeña librería Java (shim) y de JNI,43 puede utilizarse código SDL nativo, permitiendo portabilidad
a Android como por ejemplo el vídeo juego Jagged Alliance 2.44
El proyecto Simple
El objetivo de Simple es ser un lenguaje fácil de aprender para la plataforma Android.45 Simple es un
dialecto de BASIC para Android. Sirve tanto para programadores profesionales como aficionados
permitiendo escribir rápidamente aplicaciones que utilizan los componentes de ejecución de Android.
Parecido a Visual Basic 6 de Microsoft, los programas Simple consisten en definiciones de formularios (
que contienen componentes ) y código ( con la lógica del programa ). La interacción entre ellos se hace
por médio de eventos lanzados por los componentes. La lógica del programa consiste en gestores de
eventos, que ejecutan código dependiendo del evento.
El proyecto Simple no tiene mucha actividad.46 La última actualización de código se realizó en agosto
de 2009.
WinDev Mobile
WinDev Mobile es un entorno de desarrollo propietario, creado por PC SOFT y utilizado para crear
interfaces de usuario gráficos en apliaciones para teléfonos inteligentes y tabletas ( incluyendo Android
). Utiliza WLanguage como lenguaje de programación, disponible en inglés, francés y chino.
ADC II empezó el 27 de mayo de 2009. La primera ronda concluyó el 6 de octubre. Los ganadores, 200
aplicaciones, se publicaron el 5 de noviembre. La votación de la segunda ronda empezó ese mismo día y
acabó el 25 de noviembre. Google publicó los ganadores el 30, con SweetDreams, What the Doodle!? y
WaveSecure como los ganadores totales del concurso.
Firmware de Comunidad
Hay una comunidad de apoyo al código abierto que construye y comparte firmware basado en Android
con modificaciones y funciones adicionales, por ejemplo, soporte para audio FLAC y la capacidad de
guardar aplicaciones en la tarjeta microSD. Normalmente, esto implica acceso como superusuario al
dispositivo ("rooting"). "Rooting" permite al superusuario acceder al sistema operativo con un control
completo del teléfono. "Rooting" también tiene el inconvenientes, al aumentar el peligro de intrusiones
de software maligno, pérdida de garantía del dispositivo, altas posibilidades de inutilizarlo, peligro de
virus, etc. Sin embargo hacer "Rooting" permite instalar firmwares adaptados, aunque hay que
desbloquear también el cargador de arranque (bootloader) del dispositivo. Sistemas modificados
permiten a los usuarios de teléfonos antiguos utilizar aplicaciones sólo disponibles en versiones nuevas.
Los paquetes de firmware se actualizan con frecuencia, incorporan funciones a Android que no se
distribuyen oficialmente dentro del firmware autorizado por un operador, y suelen tener menos
limitaciones. Como ejemplo están CyanogenMod y OMFGB.
El 24 de septiembre de 2009, Google envió una carta solicitando el cese de estas actividades a
Cyanogen, mencionando problemas con la redistribución de aplicaciones Google con código cerrado en
el firmware modificado. Aunque la mayor parte del S.O. Android es código abierto, los teléfonos
incorporan código propietario de Google para aplicaciones como Android Market y navegación GPS.
Google ha declarado que estas aplicaciones sólo pueden distribuirse a través de canales de distribución
aprobados con su correspondiente licencia. Cyanogen ha cumplido los deseos de Google y continúa
distribuyendo sus modificaciones sin código propietario, proporcionando un método para copiar las
aplicaciones con licencia Google durante la instalación y recuperarlas al finalizar la misma.
Estándares de Java
Android no utiliza los estándares establecidos de Java, i.e. Java SE y ME, lo cual es un problema para el
desarrollo. Esto impide la compatibilidad entre aplicaciones Java escritas para otras plataformas.
Android sólo utiliza la sintaxis y la semántica de Java, pero no incorpora en su totalidad las bibliotecas
de clases de Java y APIs ( Application Programming Interface ) que acompañan a Java SE o ME. Sin
embargo, hay diversas herramientas en el mercado de empresas como Myriad Group y UpOnTek que
dan un servicio de conversión entre J2ME y Android.
Historia
La Open Handset Alliance, liderada por Google, es la creadora de Android. Los primeros informes de
desarrollo de aplicaciones para la plataforma Android era confusa. Entre los temas expuestos se
incluían errores, falta de documentación, infraestructura de control de calidad inadecuada, inexistencia
de un sistema de seguimiento de problemas. ( Google anunció un sistema de seguimiento de incidencias
el 18 de enero de 2008 ). En diciembre del 2007, Adam MacBeth, fundador de MergeLab mobile,
expresó "No hay funcionalidad, está mal documentada o no funciona... desde luego no está lista para el
lanzamiento". A pesar de todo, las aplicaciones dirigidas a Android empezaron aparecer a la semana
siguiente de su aparición. La primera aplicación publicada fue el juego de la serpiente. El Teléfono de
Desarrollo Android es un dispositivo con el SIM y el hardware desbloqueados, orientado a
desarrolladores avanzados. Así como pueden usarse dispositivos de consumo normales para probar y
utilizar aplicaciones, algunos programadores prefieren dispositivos desbloqueados y sin contrato.
El 12 de noviembre de 2007 se lanzó una versión de prueba de
Android SDK. El 15 de julio de 2008, El equipo del Concurso de
Desarrollo Android envió accidentalmente un correo electrónico a
todos los participantes anunciando una nueva versión de SDK en el
área restringida de descargas. El correo debía dirigirse únicamente a
los ganadores de la primera ronda. El hecho de que Google
proporcionara una nueva versión de SDK a unos desarrolladores y no
a otros, mediante una acuerdo privado, originó un gran descontento
en la comunidad de desarrolladores de Android.