Sei sulla pagina 1di 9

Desarrollo de programas para Android

El desarrollo de programas para Android se hace


habitualmente con el lenguaje de programación similar a Java2 y
el conjunto de herramientas de desarrollo SDK (
SDK, SoftwareDevelopment Kit ), pero hay otras opciones
disponibles. En julio de 2013 existían más de 1.000.000 de
aplicaciones contabilizadas para Android, con aproximadamente 25
mil millones de descargas.3 4 5 La plataforma Android ha crecido
hasta ser una de las preferidas por los desarrolladores para
plataformas móviles. Un estudio de junio de 2011 indica que el
67% de los desarrolladores para móviles utilizaban la plataforma
en el momento de su publicación.6 En el segundo trimestre de
2012, se habían vendido alrededor de 105 millones de teléfonos
Android, un 68% de las ventas de teléfonos inteligentes hasta esa
fecha.7

Í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

Android Open Accessory Development Kit


Herramientas de desarrollo de terceros
Android APIMiner
AndroWish
App Inventor for Android
Basic4android
HyperNext Android Creator
Kivy
Processing
Qt para Android
RFO Basic!
RubyMotion
Saphir
SDL
El proyecto Simple
WinDev Mobile
El Concurso de Desarrollo Android
Firmware de Comunidad
Estándares de Java
Historia
Referencias
Bibliografía
Enlaces externos

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.

Android Debug Bridge - Conector de Depuración de Android


Android Debug Bridge (Conector o puente para depuración de Android ), ó ADB, es un juego de
herramientas incluido en el paquete SDK de Android. Consiste en programas con funciones tanto de
cliente como de servidor, que se comunican entre ellos. El uso normal del ADB se realiza desde la línea
de comandos,13 aunque existen numerosos interfaces gráficos para controlarlo.

La forma de enviar comandos por medio del ADB es normalmente

adb [-d|-e|-s <NúmeroDeSerie>] <comando>

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

Fastboot - Arranque rápido


Fastboot es un protocolo de diagnóstico incluido en el SDK cuya función principal consiste en modificar
el sistema de ficheros flash mediante una conexión USB desde un ordenador. Para ello el dispositivo ha
de arrancarse en modo boot loader (carga de inicio) o modo Second Program Loader (segundo cargador
de programa) donde sólo se realiza una inicialización de hardware básica. Después de habilitar el
protocolo en el dispositivo, este acepta un juego específico de instrucciones que recibe por medio de la
conexión USB utilizando la línea de comandos. Algunos de los comandos más usados son:

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.

Native development kit - Sistema de desarrollo nativo


El NDK permite instalar bibliotecas escritas
en C, C++ y otros lenguajes, una vez compiladas Android Native Development Kit
para ARM, MIPS o código nativo x86. Los programas (Android NDK)
Java corriendo en la máquina virtual Dalvik (Dalvik developer.android.com/tools/sdk/ndk/index.html
VM) pueden llamar a clases nativas por medio de la Tipo de entorno de desarrollo integrado
funciónSystem.loadLibrary, que forma parte de las programa
clases estándares Java en Android.16 17 Desarrollador Google
Lanzamiento octubre de 2009
Última 10d
Se pueden compilar e instalar aplicaciones completas versión 00 de diciembre de 2014 (5
utilizando las herramientas de desarrollo estable años, 1 mes y 31 días)15
tradicionales.18 Sin embargo, según la documentación Género EDI, KDS
de Android, NDK no debe utilizarse para desarrollo Programado C y C++
simplemente porque el programador prefiera en
programar en C/C++, ya que la utilización del NDK Sistema Multiplataforma
aumenta la complejidad sin que la mayor parte de las operativo
aplicaciones obtengan ningún beneficio por ello.19 Licencia Android Open Source Project

El depurador ADB proporciona un shell root en el Idiomas Inglés


simulador de Android que permite cargar y ejecutar En español No
código nativo ARM, MIPS o x86. Este código puede
compilarse con GCC, o el compilador C++ de Intel en lanzamiento = 00 de junio de
un ordenador personal normal. 20 La ejecución de 2009 (10 años, 7 meses y 31
código nativo es difícil porque Android utiliza una días)15
biblioteca de C propia (libc, llamada Bionic). La
biblioteca gráfica que utiliza Android para controlar el acceso a este dispositivo se llama Skia Graphics
Library (SGL), disponible con licencia de código abierto.21 Skia tiene implementaciones en Win32 y
Unix, permitiendo el desarrollo multiplataforma de aplicaciones, y es el motor de gráficos que soporta
al navegador web Google Chrome.22

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 Open Accessory Development Kit


La plataforma Android 3.1 (también actualizada en la plataforma Android 2.3.4) introduce soporte para
Android Open Accessory, que permite que equipos USB externos (y Android USB Accesory) puedan
interactuar con dispositivos Android en un modo especial llamado "accessory" (accesorio). Cuando un
dispositivo Android está en modo "accessory", el accesorio conectado actúa como un centro (host) USB
(proporciona potencia al bus y enumera los dispositivos) mientras que el dispositivo Android funciona
como un dispositivo USB. Los accesorios Android USB están diseñados específicamente para unirse a
dispositivos Android mediante un protocolo sencillo (protocolo "Android accessory") que les permite
detectar los dispositivos Android compatibles con este modo.25

Herramientas de desarrollo de terceros

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

App Inventor for Android


El 12 de julio de 2010 Google anunció la disponibilidad de App Inventor para Android, un entorno de
desarrollo visual, basado en Web, para programadores principiantes, basado en la librería Java Open
Blocks del MIT y proporcionando acceso, en los dispositivos Android, al GPS, datos de orientación y
acelerómetro, funciones del teléfono, mensajes de texto, conversión voz a texto, datos de contacto,
almacenamiento permanente y servicios Web, incluyendo inicialmente Amazon y Twitter.28 [[Hal
Abelson]], director de proyecto en el MIT, dijo: "Sólo hemos podido hacerlo porque la arquitectura
Android es tan abierta".29 Después de un año de desarrollo,30 la herramienta de edición de bloques
se ha utilizado para enseñanza a principiantes en ciencias de computación en Harvard, MIT, Wellesley,
Trinity College (Hartford) y en la Universidad de San Francisco, donde el profesor David Wolber,
desarrolló un curso de introducción a la ciencia de los ordenadores y un libro de enseñanza para
estudiantes que no estudian computación, basado en App Inventor para Android.31 32

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.

HyperNext Android Creator


HyperNext Android Creator (HAC) es un sistema de desarrollo de programas dirigido a programadores
que empiezan, permitiéndoles crear sus propias aplicaciones sin necesitar conocimientos de Java y del
SDK de Android. Está basado en HyperCard, que gestiona el software como una pila de tarjetas en la
que sólo una de ellas es visible en un momento dado y por tanto encaja bien en aplicaciones para
teléfonos móviles, con una sola ventana disponible a la vez. El lenguaje principal de desarrollo se llama
simplemente HyperNext y está relacionado con el lenguaje de HyperCards HyperTalk. HyperNext es
un intérprete de un lenguaje similar al Inglés y tiene muchas funciones para crear aplicaciones Android.
Soporta un subconjunto creciente del SDK de Android incluyendo sus propias versiones de controles
gráficos de interfaz de usuario (GUIs) y ejecuta autómaticamente su propio servicio, de forma que las
aplicaciones pueden continuar ejecutándose y procesando información, sin estar en el frontal del
usuario.

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.

El Concurso de Desarrollo Android


El Concurso de Desarrollo Android (ADC Android Developer Challenge ) fue una competición a la
aplicación más innovadora para Android. Google ofreció premios por valor de 10 millones de dólares,
distribuidos en dos fases ADC 1 y ADC 2. ADC 1 aceptaba subscripciones entre el 2 de enero y el 14 de
abril de 2008. Las 50 aplicaciones más prometedoras, seleccionadas el 12 de mayo del 2008, recibieron
25.000 dólares para soporte a su desarrollo. A principios de septiembre diez equipos recibieron
275.000 dólares, y otros diez, 100.000 dólares.

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.

El 19 de agosto apareció la versión Beta de Android 0.9 SDK.


Proporcionaba una API mejorada extendida, mejoras en la
herramientas y un diseño actualizado de la pantalla principal. Hay
instrucciones detalladas de actualización para aquellos que todavía
Google Sooner, el primer celular
utilicen versiones anteriores. Android 1.0 SDK ( versión 1) aparece el
con Android, sin embargo nunca
23 de septiembre del 2008. Según las notas de la versión, incluía salió al mercado, por lo cual se
fundamentalmente correcciones de errores, aunque incorporaba considera al HTC Dream como
pequeñas novedades. Incluso incluía varios cambios en el API sobre primer celular con Android.
la versión 0.9. Desde esa fecha, se han distribuido múltiples
versiones.

Potrebbero piacerti anche