Para profundizar en el tema en cuanto al desarrollo te dejemos algunas herramientas tanto oficiales como de terceros para que aprendas de el gran y abierto mundo de android. Empezaremos con las ofrecidas por Google y despues iniciaremos por aquellas que fueron creadas por grupos de personas conocedoras en el lenguaje con el cual se puede programar bajo este sistema operativo basado en el sistema linux.
Pero antes aprendamos un poco mas sobre el desarrollo de dichas aplicaciones. El Desarrollo de Programas para Android se hace habitualmente con el lenguaje de programación similar a Java 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. La plataforma Android ha crecido hasta ser una de las preferidas por los desarrolladores para plataformas móviles. Un estudio de junio del 2011 indica que el 67% de los desarrolladores para móviles utilizaban la plataforma, en el momento de su publicación.
Herramientas oficiales ofrecidas por Google
Android SDK
El SDK (Software Development Kit) de Android, incluye un conjunto de herramientas de desarrollo. Comprende un depurador de código, biblioteca, un simulador de teléfono basado en QEMU, documentación, ejemplos de código y tutoriales. Las plataformas de desarrollo soportadas incluyen Linux (Lista de Distribuciones GNU/Linux cualquier distribución moderna), Mac OS X 10.5.8 o posterior, y Windows XP o posterior. También puede utilizarse el propio sistema Android para desarrollos utilizando las aplicaciones AIDE - Android IDE - Java, C++ (app) [AIDE - Android IDE - Java, C++] y el editor de Java. La plataforma integral de desarrollo (IDE, Integrated Development Environment) soportada oficialmente es Eclipse junto con el complemento ADT ( Android Development Tools plugin). El IDE IntelliJ IDEA soporta completamente del desarrollo en Android en origen, y el IDE NetBeans también lo hace utilizando un plugin (complemento, extensión o programa adicional). Además, los programadores pueden usar un editor de texto para escribir ficheros Java y XML y utilizar comandos en un terminal (se necesitan los paquetes JDK, Java Development Kit y Apache Ant) para crear y depurar aplicaciones, así como controlar dispositivos Android que estén conectados ( es decir, reiniciarlos, instalar aplicaciones en remoto, etc.).
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.
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 (ejecutables Dalvik, un código intermedio compilado), recursos, etc.
Si deseas descargar esta herramienta te dejo el link de descarga y un video introductorio para que empieces con tu programación:
Descarga: http://developer.android.com/sdk/index.html
Tutorial: https://www.youtube.com/watch?v=kZYWqL0kaAM
Native development kit (Sistema de desarrollo nativo)
El NDK permite instalar bibliotecas escritas en C, C++ y otros lenguajes, una vez compiladas para ARM, MIPS o código nativo x86. Los programas Java corriendo en la máquina virtual Dalvik (Dalvik VM) pueden llamar a clases nativas por medio de la función System.loadLibrary, que forma parte de las clases estándares Java en Android.
Se pueden compilar e instalar aplicaciones completas utilizando las herramientas de desarrollo tradicionales. Sin embargo, según la documentación de Android, NDK no debe utilizarse para desarrollo, simplemente porque el programador prefiera programar en C/C++, ya que la utilización del NDK aumenta la complejidad sin que la mayor parte de las aplicaciones obtengan ningún beneficio por ello.
El depurador ADB proporciona un shell root en el Simulador de Android que permite cargar y ejecutar código nativo ARM, MIPS o x86. Este código puede compilarse con GCC, o el compilador C++ de Intel en un ordenador personal normal. La ejecución de código nativo es difícil porque Android utiliza una 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. 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.
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 Eclipse y Visual Studio.
Descarga: http://developer.android.com/tools/sdk/ndk/index.html
Tutorial: https://www.youtube.com/watch?v=TnAgy6BO34g
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 a los dispositivos Android compatibles con este modo.
Herramientas de desarrollo de terceros
Android APIMiner
Android APIMiner es una plataforma que complementa automáticamente la documentación Javadoc con ejemplos de uso, extraídos de aplicaciones Android de código abierto. Para mejorar la calidad de los ejemplos, APIMiner utiliza un algoritmo de rebanamiento estático dentro de los procedimientos.
Te facilitamos el link de la web oficial si quieres leer mas: http://apiminer.org/howitworks
AndroWish
AndroWish e 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 .
Si quieres descargar y probar esta herramienta te ofrecemos el link de la pagina oficial: http://www.androwish.org/index.html/home
App Inventor for Android
El 12 de Julio de 2010 Google anunció la disponibilidad de App Inventor para Android, un entorno de desarrollo visual, basad 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. [[Hal Abelson]], director de proyecto en el MIT, dijo: "Sólo hemos podido hacerlo porque la arquitectura Android es tan abierta" . Después de un año de desarrollo , 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 .
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 . La última versión creada como resultado de la colaboración entre el MIT y Google fué liberada en Febrero del 2012, y la primera versión exclusiva del MIT en Marzo del mismo año actualizada en App Inventor 2 en Diciembre del 2013.
Si eres nuevo en programacion te recomendamos esta herramienta interactiva, visita esta pagina y empieza a crear: http://appinventor.mit.edu/explore/
Basic4android
Basic4android es un producto comercial similar a Simple. 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 desallollo 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 vesiones 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 sóla 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. 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. 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. 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.
Saphir
Saphir es una rama del intérprete de código abierto Rebol 3 (R3). 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, puede utilizarse código SDL nativo, permitiendo portabilidad a Android como por ejemplo el vídeo juego Jagged Alliance 2.
El proyecto Simple
El objetivo de Simple es ser un lenguaje fácil de aprender para la plataforma Android. 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. 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 sintáxis 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

No hay comentarios:
Publicar un comentario