Desarrollo de Programas Para Android

download Desarrollo de Programas Para Android

of 8

description

Panorama introductorio al desarrollo de aplicaciones para Android.

Transcript of Desarrollo de Programas Para Android

  • Desarrollo de programas para Android

    El telfono Nexus 4, parte de la serie Google Nexus, una l-nea de dispositivos adecuados para desarrollo (developer-friendly).[1]

    El Desarrollo de Programas para Android se ha-ce habitualmente con el lenguaje de programacin si-milar a Java[2] y el conjunto de herramientas de desa-rrollo SDK ( SDK, SoftwareDevelopment Kit ), perohay otras opciones disponibles. En Julio de 2013 exis-tan ms de 1.000.000 de aplicaciones contabilizadas pa-ra Android, con aproximadamente 25 mil millones dedescargas.[3][4][5] La plataforma Android ha crecido has-ta ser una de las preferidas por los desarrolladores paraplataformas mviles. Un estudio de junio del 2011 indicaque el 67% de los desarrolladores para mviles utilizabanla plataforma, en el momento de su publicacin [6]. En elsegundo trimestre del 2012, se haban vendido alrededor

    de105 millones de telfonos Android, con un porcentajedel 68% de las ventas de telfonos inteligentes hasta esafecha. [7]

    1 Herramientas Ociales

    1.1 Android SDK

    El SDK (Software Development Kit) de Android, incluyeun conjunto de herramientas de desarrollo.[9] Compren-de un depurador de cdigo, biblioteca, un simulador detelfono basado en QEMU, documentacin, ejemplos decdigo y tutoriales. Las plataformas de desarrollo sopor-tadas incluyen GNU/Linux, Mac OS X 10.5.8 o poste-rior, y Windows XP o posterior. Tambien puede utilizar-se el propio sistema Android para desarrollos utilizandolas aplicaciones AIDE - Android IDE - Java, C++(app)[AIDE - Android IDE - Java, C++] y el editor de Ja-va. La plataforma integral de desarrollo (IDE, Integra-ted Development Environment) soportada ocialmentees Android Studio junto con el complemento ADT ( An-droid Development Tools plugin). Adems, los progra-madores pueden usar un editor de texto para escribir -cheros Java y XML y utilizar comandos en un terminal(se necesitan los paquetes JDK, Java Development Kit yApache Ant) para crear y depurar aplicaciones, as co-mo controlar dispositivos Android que estn conectados( es decir, reiniciarlos, instalar aplicaciones en remoto,etc.).[10]

    Las Actualizaciones del SDK estn coordinadas con eldesarrollo general de Android. El SDK soporta tambinversiones antiguas de Android, por si los programadoresnecesitan instalar aplicaciones en dispositivos ya obsole-tos o ms antiguos. Las herramientas de desarrollo soncomponentes descargables, de modo que una vez instala-da la ltima versin, pueden instalarse versiones anterio-res y hacer pruebas de compatibilidad.[11]

    Una aplicacin Android est compuesta por un conjuntode cheros empaquetados en formato .apk y guardada enel directorio /data/app del sistema operativo Android (es-te directorio necesita permisos de superusuario, root, porrazones de seguridad). Un paquete APK incluye cheros.dex [12] (ejecutables Dalvik, un cdigo intermedio com-pilado), recursos, etc.

    1

  • 2 1 HERRAMIENTAS OFICIALES

    1.2 Android Debug Bridge - Conector deDepuracin de Android

    Android Debug Bridge ( Conector o puente para depura-cin de Android ), ADB, es un juego de herramientasincludo en el paquete SDK de Android. Consiste en pro-gramas con funcin tando de cliente, como de servidor,que se comunican entre ellos. El uso normal del ADB serealiza desde la lnea de comandos[13], aunque existen nu-meroso interfaces grcos para controlarlo.La forma de enviar comandos por medio del ADB es nor-malmenteadb [-d|-e|-s ] En un problema de seguridad, publicado en Marzo del2011, ADB fu utilizado como un vector para tratar deinstalar programas como superusuario (root) en telfonosconectados, por medio de un ataque de saturacin de re-cursos ('resource exhaustion attack')[14].

    1.3 Fastboot - Arranque rpido

    Fastboot es un protocolo de diagnstico incluido en elSDK cuya funcin principal consiste en modicar elsistema de cheros ashmediante una conexin USB des-de un ordenador. Para ello el dispositivo ha de arrancarseen modo boot loader ( carga de inicio) o modo SecondProgram Loader ( segundo cargador de programa ) don-de slo se realiza una inicializacin de hardware bsica.Despus de habilitar el protocolo en el dispositivo, es-te acepta un juego especco de instrucciones que recibepor medio de la conexin USB utilizando la lnea de co-mandos. Algunos de los comandos mas usados son:

    ash reescribe una particin con una imagen bina-ria almacenada en el ordenador.

    erase borra una particin especca.

    reboot reinicia el dispositivo con el sistema prin-cipal, la particin de

    recuperacin del sistema o de vuelta al bootloader.

    devices muestra una lista de dispositivos ( con sunmero de serie) conectados

    al ordenador.

    format formatea una particin especca. El siste-ma de cheros de la

    particin tiene que ser compatible con el dispositivo.

    1.4 Native development kit - Sistema dedesarrollo nativo

    El NDK permite instalar bibliotecas escritas en C, C++ yotros lenguajes, una vez compiladas para ARM, MIPSo cdigo nativo x86. Los programas Java corriendoen la mquina virtual Dalvik ( Dalvik VM ) puedenllamar a clases nativas por medio de la funcin Sys-tem.loadLibrary, que forma parte de las clases estndaresJava en Android[16][17].Se pueden compilar e instalar aplicaciones completas uti-lizando las herramientas de desarrollo tradicionales [18].Sin embargo, segn la documentacin de Android, NDKno debe utilizarse para desarrollo, simplemente porqueel programador preera programar en C/C++, ya que lautilizacin del NDK aumenta la complejidad sin que lamayor parte de las aplicaciones obtengan ningn bene-cio por ello[19].El depurador ADB proporciona un shell root en el Simu-lador de Android que permite cargar y ejecutar cdigonativo ARM, MIPS o x86. Este cdigo puede compilarsecon GCC, o el compilador C++ de Intel en un ordenadorpersonal normal[20] . La ejecucin de cdigo nativo es di-fcil porque Android utiliza una biblioteca de C propia(libc, llamada Bionic). La biblioteca grca que utilizaAndroid para controlar el acceso a este dispositivo se lla-ma Skia Graphics Library (SGL), disponible con licen-cia de cdigo abierto[21]. Skia tiene implementaciones enwin32 y Unix, permitiendo el desarrollo multiplataformade aplicaciones, y es el motor de grcos que soporta alnavegador web Google Chrome[22].NDK est basado en la lnea de comandos, y al contra-rio que el desarrollo con Eclipse, requiere la invocacinmanual de comandos para construir, cargar y depurar lasaplicaciones. Hay herramientas de terceros que integranel NDK con Eclipse[23] y Visual Studio[24].

    1.5 Android Open Accessory DevelopmentKit

    La plataforma Android 3.1 ( tambin actualizada en laplataforma Android 2.3.4 ) introduce soporte para An-droid Open Accessory, que permiete que equipos USBexternos ( y Android USB Accesory ) puedan interactuarcon dispositivos Android en un modo especial llamadoaccessory (accesorio). Cuando un dispositivo Androidest en modo accessory, el accesorio conectado actacomo un centro (host) USB ( proporciona potencia al busy ennumera los dispositivos ) mientras que el dispositivoAndroid funciona como un dispositivo USB. Los acce-sorios Android USB estn diseados especcamente pa-ra unirse a dispositivos Android mediante un protocolosencillo ( protocolo Android accessory) que les permitedetectar a los dispositivos Android compatibles con estemodo[25].

  • 2.4 Basic4android 3

    2 Herramientas de desarrollo deterceros

    2.1 Android APIMiner

    Android APIMiner es una plataforma que complemen-ta automticamente la documentacin Javadoc con ejem-plos de uso, extrados de aplicaciones Android de cdi-go abierto[26]. Para mejorar la calidad de los ejemplos,APIMiner utiliza un algoritmo de rebanamiento estticodentro de los procedimientos.

    2.2 AndroWish

    AndroWish e un intrprete de Tcl/Tk en el dispositivo,que proporciona un interfaz grco (GUI) multiventa-na, y acceso a Bluetooth, USB, network sockets, text-to-speech, speech recognition, sensores, localizacin (GPSo informacin de la red), gestor de actividad (activitymanager), SQLite y sonido. La capa GUI est basada enSDL2. AndroWish se incluye con 337 paquetes Tcl[27].

    2.3 App Inventor for Android

    El 12 de Julio de 2010 Google anunci la disponibilidadde App Inventor para Android, un entorno de desarrollovisual, basad en Web, para programadores principiantes,basado en la librera Java Open Blocks del MIT y propor-cionando acceso, en los dispositivos Android, al GPS, da-tos de orientacin y acelermetro, funciones del telfono,mensajes de texto, conversin voz a texto, datos de con-tacto, almacenamiento permanente y servicios Web, in-cluyendo inicialmenta Amazon y Twitter[28]. [[Hal Abel-son]], director de proyecto en el MIT, dijo: Slo he-mos podido hacerlo porque la arquitectura Android estan abierta[29]. Despus de un ao de desarrollo[30], laherramienta de edicin de bloques se ha utilizado paraenseanza a principiantes en ciencias de computacin enHarvard, MIT, Wellesley, Trinity College (Hartford) y enla Universidad de San Francisco, donde el profesor DavidWolber, desarroll un curso de introduccin a la cienciade los ordenadores y un libro de enseanza para estudian-tes que no estudian computacin, basado en App Inventorpara Android[31][32].En la segunda mitad de 2011, Google liber el cdi-go fuente, termin su servicio Web, y proporcion fon-dos para la creacin en el MIT del Center for MobileLearning ( Centro de Aprendizaje para Mviles ) diri-gido por el creador de App Inventor Hal Abelson y loscompaeros y profesores del MIT Eric Klopfer y MitchelResnick[33][34]. La ltima versin creada como resultadode la colaboracin entre el MIT y Google fu liberada enFebrero del 2012[35], y la primera versin exclusiva delMIT en Marzo del mismo ao actualizada en App Inven-tor 2 en Diciembre del 2013[36]. Actualmente (2014) el

    MIT se ocupa de su mantenimiento.[cita requerida]

    2.4 Basic4android

    Basic4android es un producto comercial similar aSimple[37]. Est inspirado en Microsoft Visual Basic 6y Microsoft Visual Studio. Hace la programacin An-droid mucho ms sencilla para programadores habitualesde Visual Basic que encuentran dicultades en el uso deJava. Basic4android cuenta con una fuerte y activa comu-nidad online de desarrolladores.

    2.5 HyperNext Android Creator

    HyperNext Android Creator (HAC) es un sistema dedesarrollo de programas dirigido a programadores queempiezan, permitindoles crear sus propias aplicacionessin necesitar conocimientos de Java y del SDK de An-droid. Est basado en HyperCard, que gestiona el soft-ware como una pila de tarjetas en la que slo una de ellases visible en un momento dado y por tanto encaja bien enaplicaciones para telfonos mviles, con una sola venta-na disponible a la vez. El lenguaje principal de desallollose llama simplemente HyperNext y est relacionado conel lenguaje de HyperCards HyperTalk. HyperNext es unintrprete de un lenguaje similar al Ingls y tiene mu-chas funciones para crear aplicaciones Android. Soportaun subconjunto creciente del SDK de Android incluyen-do sus propias vesiones de controles grcos de interfazde usuario ( GUIs ) y ejecuta autmaticamente su propioservicio, de forma que las aplicaciones pueden continuarejecutndose y procesando informacin, sin estar en elfrontal del usuario.

    2.6 Kivy

    Kivy es una librera Python de cdigo abierto, para desa-rrollar programas multitctil con un interfaz natural deusuario (NUI, natural user interface) para una amplia ga-ma de dispositivos. Kivy da la posibilidad de manteneruna sla aplicacin para numerosos sistemas operativos(programar una vez, ejecutar en todas partes). Kivy tie-ne una herramienta incorporada para distribuir aplica-ciones mviles llamada Buildozer, slo disponible en Li-nux. Buildozer est todava en fase alpha, pero es muchoms sencilla que los sistemas de instalacin anteriores deKivy. Las aplicaciones programadas con Kivy pueden en-viarse a la plataforma de distribucin de aplicaciones m-viles de Android.

    2.7 Processing

    El entorno Processing, que tambin utiliza el lenguaje Ja-va, ha soportado un modo Android desde la versin 1,5.

  • 4 3 EL CONCURSO DE DESARROLLO ANDROID

    Puede integrarse con la cmara y los sensores del dispo-sitivo utilizando la librera Ketai.

    2.8 Qt para Android

    Qt para Android permite a las aplicaciones Qt 5 funcio-nar en dispositivos Android V2.3.3 ( nivel de API 10) oposteriores[38] . Qt es una infraestructura multiplataformapara aplicaciones que puede abarcar a Android, Linux,iOS, Sailsh OS y Windows. El desarrollo de aplicacio-nes Qt se hace en C++ standard y JavaScript. El desa-rrollo de aplicaciones en Qt necesita de Android NDK yJDK[39]. Qt Creator es el entorno de desarrollo integra-do proporcionado por Qt para desarrollo de aplicacionesmultiplataforma.

    2.9 RFO Basic!

    RFO Basic ( un dialecto del Basic Dartmouth) es un in-trprete libre en el dispositivo, que proporciona acceso ahardware, sensores, sonido, grcos, multitactil, sistemade cheros, SQLite, network sockets, FTP, HTTP, Blue-tooth, HTML GUI, encryption, SMS, telfono, correo,texto a voz, reconocimiento de voz, GPS, funciones mate-mticas, funciones de cadenas de caracteres, listas y otrasutilidades esenciales. Es un proyecto de cdigo abiertoque produce cheros apk de Android independientes[40] .El desarrollo de RFO Basic est activo y tiene una fuertecomunidad en lnea de desarrolladores.

    2.10 RubyMotion

    RubyMotion es una herramienta para desarrollar aplica-ciones mviles en Ruby. En la versin 3.0, soporta An-droid. Las aplicaciones RubyMotion pueden interactuarcon el juego completo de Java Android APIs de Ruby,utilizar libreras Java de terceros y estn compiladas es-tticamente en el cdigo mquina[41].

    2.11 Saphir

    Saphir es una rama del intrprete de cdigo abierto Rebol3 (R3)[42]. Toda la funcionalidad de R3, incluyendo el in-terfaz grco, grcos, acceso a red, acceso a cheros,anlisis sintctico, y otras funciones principales son por-tables entre Android, Windows, Mac y Linux, sin cam-bios en el cdigo fuente. Saphir utiliza plantillas de con-cise dialect (DSL) para construir interfaces grcos deusuario y realizar operaciones comunes, usando una sin-txis breve y legible. El pequeo tamao del intrprete (0,5 - 1,5 megabytes ) complementa el diseo utilitario deSaphir.

    2.12 SDL

    La librera SDL ofrece tambin una opcin de desarrollo,al lado de Java, permitiendo desarrollar en C y portar deuna forma sencilla aplicaciones nativas existentes SDL yC. Mediante la inyeccin de una pequea librera Java(shim) y de JNI[43], puede utilizarse cdigo SDL nativo,permitiendo portabilidad a Android como por ejemplo elvdeo juego Jagged Alliance 2[44].

    2.13 El proyecto Simple

    El objetivo de Simple es ser un lenguaje fcil de apren-der para la plataforma Android[45]. Simple es un dialectode BASIC para Android. Sirve tanto para programadoresprofesionales como acionados permitiendo escribir r-pidamente aplicaciones que utilizan los componentes deejecucin de Android.Parecido a Visual Basic 6 de Microsoft, los programasSimple consisten en deniciones de formularios ( quecontienen componentes ) y cdigo ( con la lgica del pro-grama ). La interaccin entre ellos se hace por mdio deeventos lanzados por los componentes. La lgica del pro-grama consiste en gestores de eventos, que ejecutan c-digo dependiendo del evento.El proyecto Simple no tiene mucha actividad[46]. La lti-ma actualizacin de cdigo se realiz en agosto de 2009.

    2.14 WinDev Mobile

    WinDev Mobile es un entorno de desarrollo propietario,creado por PC SOFT y utilizado para crear interfaces deusuario grcos en apliaciones para telfonos inteligentesy tabletas ( incluyendo Android ). Utiliza WLanguage co-mo lenguaje de programacin, disponible en ingls, fran-cs y chino.

    3 El Concurso de Desarrollo An-droid

    El Concurso de Desarrollo Android (ADC Android De-veloper Challenge ) fue una competicin a la aplicacinms innovadora para Android. Google ofreci premiospor valor de 10 millones de dlares, distribuidos en dosfases ADC 1 y ADC 2. ADC 1 aceptaba subscripcionesentre el 2 de enero y el 14 de abril de 2008. Las 50 apli-caciones ms prometedoras, seleccionadas el 12 de ma-yo del 2008, recibieron 25.000 dlares para soporte a sudesarrollo. A principios de septiembre diez equipos reci-bieron 275.000 dlares, y otros diez, 100.000 dlares.ADC II empez el 27 de mayo de 2009. La primera ron-da concluy el 6 de octubre. Los ganadores, 200 aplica-ciones, se publicaron el 5 de noviembre. La votacin de

  • 5la segunda ronda empez ese mismo da y acab el 25de noviembre. Google public los ganadores el 30, conSweetDreams, What the Doodle!? y WaveSecure comolos ganadores totales del concurso.

    4 Firmware de ComunidadHay una comunidad de apoyo al cdigo abierto que cons-truye y comparte rmware basado en Android con modi-caciones y funciones adicionales, por ejemplo, soportepara audio FLAC y la capacidad de guardar aplicacionesen la tarjeta microSD. Normalmente, esto implica accesocomo superusuario al dispositivo (rooting). Rootingpermite al superusuario acceder al sistema operativo conun control completo del telfono. Rooting tambin tie-ne el inconvenientes, al aumentar el peligro de intrusionesde software maligno, prdida de garanta del dispositivo,altas posibilidades de inutilizarlo, peligro de virus, etc.Sin embargo hacer Rooting permite instalar rmwaresadaptados, aunque hay que desbloquear tambin el car-gador de arranque (bootloader) del dispositivo. Sistemasmodicados permiten a los usuarios de telfonos antiguosutilizar aplicaciones slo disponibles en versiones nuevas.Los paquetes de rmware se actualizan con frecuencia,incorporan funciones a Android que no se distribuyen o-cialmente dentro del rmware autorizado por un opera-dor, y suelen tener menos limitaciones. Como ejemploestn CyanogenMod y OMFGB.El 24 de septiembre de 2009, Google envi una carta so-licitando el cese de estas actividades a Cyanogen, men-cionando problemas con la redistribucin de aplicacionesGoogle con cdigo cerrado en el rmware modicado.Aunque la mayor parte del S.O. Android es cdigo abier-to, los telfonos incorporan cdigo propietario de Goo-gle para aplicaciones como Android Market y navega-cin GPS. Google ha declarado que estas aplicaciones s-lo pueden distribuirse a travs de canales de distribucinaprobados con su correspondiente licencia. Cyanogen hacumplido los deseos de Google y contina distribuyendosus modicaciones sin cdigo propietario, proporcionan-do un mtodo para copiar las aplicaciones con licenciaGoogle durante la instalacin y recuperarlas al nalizarla misma.

    5 Estndares de JavaAndroid no utiliza los estndares establecidos de Java, i.e.Java SE y ME, lo cual es un problema para el desarro-llo. Esto impide la compatibilidad entre aplicaciones Ja-va escritas para otras plataformas. Android slo utiliza lasintxis y la semntica de Java, pero no incorpora en sutotalidad las bibliotecas de clases de Java y APIs ( Ap-plication Programming Interface ) que acompaan a JavaSE o ME. Sin embargo, hay diversas herramientas en el

    mercado de empresas como Myriad Group y UpOnTekque dan un servicio de conversin entre J2ME y Android.

    6 Historia

    Early Android device.

    La Open Handset Alliance, liderada por Google, es lacreadora de Android. Los primeros informes de desarro-llo de aplicaciones para la plataforma Android era con-fusa. Entre los temas expuestos se incluan errores, faltade documentacin, infraestructura de control de calidadinadecuada, inexistencia de un sistema de seguimiento deproblemas. ( Google anunci un sistema de seguimientode incidencias el 18 de enero de 2008 ). En diembre del2007, Adam MacBeth, fundador de MergeLab mobile,expres No hay funcionalidad, est mal documentada ono funciona... desde luego no est lista para el lanzamien-to. A pesar de todo, las aplicaciones dirigidas a Androidempezaron aparecer a la semana siguiente de su apari-cin. La primera aplicacin publicada fue el juego de laserpiente. El Telfono de Desarrollo Android es un dispo-sitivo con el SIM y el hardware desbloqueados, orienta-do a desarrolladores avanzados. As como pueden usarsedispositivos de consumo normales para probar y utilizaraplicaciones, algunos programadores preeren dispositi-vos desbloqueados y sin contrato.El 12 de noviembre de 2007 se lanz una versin de prue-ba de Android SDK. El 15 de julio de 2008, El equipo delConcurso de Desarrollo Android envi accidentalmenteun correo electrnico a todos los participantes anuncian-do una nueva versin de SDK en el rea restringida de

  • 6 7 REFERENCIAS

    descargas. El correo deba dirigirse nicamente a los ga-nadores de la primera ronda. El hecho de que Google pro-porcionara una nueva versin de SDK a unos desarrolla-dores y no a otros, mediante una acuerdo privado, originun gran descontento en la comunidad de desarrolladoresde Android.El 19 de agosto apareci la versin Beta de Android 0.9SDK. Proporcionaba una API mejorada extendida, me-joras en la herramientas y un diseo actualizado de lapantalla principal. Hay instrucciones detalladas de actua-lizacin para aquellos que todava utilicen versiones an-teriores. Android 1.0 SDK ( versin 1) aparece el 23 deseptiembre del 2008. Segn las notas de la versin, in-clua fundamentalmente correcciones de errores, aunqueincorporaba pequeas novedades. Incluso inclua varioscambios en el API sobre la versin 0.9. Desde esa fecha,se han distribuido mltiples versiones.

    7 Referencias[1] Syed H (24 de septiembre de 2012). Editorial: Why You

    Should Go Nexus. Droid Lessons. Consultado el 17 deabril de 2013.

    [2] Seth Rosenblatt (9 de mayo de 2014). Court sides withOracle over Android in Java patent appeal. CNet. Con-sultado el 5 de enero de 2014.

    [3] Google Play REaches 1 Million apps

    [4] Android App Stats. Archivado desde el original el 2 deenero de 2011. Consultado el 31 de diciembre de 2010.

    [5] Leena Rao (14 de abril de 2011). Google: 3 Billion An-droid Apps Installed; Downloads Up 50 Percent FromLast Quarter. Techcrunch. Archivado desde el original el25 de abril de 2011. Consultado el 13 de mayo de 2011.

    [6] Developer Economics 2011.

    [7] Android and iOS Surge to New Smartphone OS Recordin Second Quarter, According to IDC

    [8] SDK Tools | Android Developers. Develo-per.android.com. Consultado el 8 de noviembre de2014.

    [9] Tools Overview. Android Developers. 21 de julio de2009.

    [10] Westfall, Jon (25 de agosto de 2009). Backup & RestoreAndroid Apps Using ADB. JonWestfall.com. Consultadoel 7 de Diciembre, 2009.

    [11] SDK Tools.

    [12] Android SDK Glossary.

    [13] Android Debug Bridge | Android Developers AccessedDecember 27, 2012

    [14] Lemos, Robert Open source vulnerabilities paint a tar-get on Android March 25, 2011, accessed December 27,2012

    [15] Android NDK | Android Developers. Develo-per.android.com. 13 de noviembre de 2012. Consultadoel 13 de marzo de 2014.

    [16] Srinivas, Davanum (9 de diciembre de 2007). Android Invoke JNI based methods (Bridging C/C++ and Ja-va). Archivado desde el original el 16 de diciembre de2008. Consultado el 13 de diciembre de 2008.

    [17] java.lang.System. Android Developers. Consultado el 3de septiembre de 2009.

    [18] Leslie, Ben (13 de noviembre de 2007). Native C ap-plication for Android. Bennos blog. Archivado desde eloriginal el 13 de septiembre de 2009. Consultado el 4 deseptiembre de 2009.

    [19] Android NDK | Android Developers. Develo-per.android.com. 13 de noviembre de 2012. Consultadoel 17 de junio de 2014.

    [20] Intel C++ Compiler 14.0 for Android. Softwa-re.intel.com. Consultado el 17 de junio de 2014.

    [21] Skia source.

    [22] Toker, Alp (6 de septiembre de 2008). Skia graphics li-brary in Chrome: First impressions. Archivado desde eloriginal el 16 de diciembre de 2008. Consultado el 13 dediciembre de 2008.

    [23] Using Eclipse for Android C/C++ Development.

    [24] Tutorial: Android Native Development with Visual Stu-dio.

    [25] Accessory Development Kit | Android Developers. De-veloper.android.com. Consultado el 2 de octubre de 2012.

    [26] Android APIMiner.

    [27] AndroWish. tcl.tk. 21 de junio de 2014. Consultado el3 de julio de 2014.

    [28] Claburn, Thomas (12 de julio de 2010). Google AppInventor Simplies Android Programming. InformationWeek. Archivado desde el original el 15 de julio de 2010.Consultado el 12 de julio de 2010.

    [29] Lohr, Steve (11 de julio de 2010). Googles Do-It-Yourself App Creation Software. New York Times.Archivado desde el original el 13 de julio de 2010. Con-sultado el 12 de julio de 2010.

    [30] Abelson, Hal (31 de julio de 2009). App Inventor forAndroid. Google Research Blog. Archivado desde el ori-ginal el 7 de agosto de 2010. Consultado el 12 de julio de2010.

    [31] Kim, Ryan (11 de diciembre de 2009). Google bringsapp-making to the masses. San Francisco Chronicle.Archivado desde el original el 17 de julio de 2010. Con-sultado el 12 de julio de 2010.

    [32] Wolber, David. AppInventor.org. Archivado desde eloriginal el 15 de julio de 2010. Consultado el 12 de juliode 2010.

    [33] App Inventor @ MIT.

  • 7[34] MIT Launches New Center for Mobile Learning. 16 deagosto de 2011.

    [35] Clark,rst=Andrew (30 de diciembre de 2013). App In-ventor launches second iteration.

    [36] App Inventor Classic | Explore MIT App Inventor. Ap-pinventor.mit.edu. 3 de diciembre de 2013. Consultado el13 de marzo de 2014.

    [37] Basic4android.[38] Qt for Android.[39] Qt Wiki : Android.[40] rfobasic.[41] http://www.rubymotion.com/news/2014/12/11/

    announcing-rubymotion-3.html.[42] R3.[43] Simple DirectMedia Layer for Android. sdl.org. 12 de

    agosto de 2012. Consultado el 9 de septiembre de 2012.Como se porta una aplicacin, - Las aplicaciones Androidestn basadas en Java, con partes escritas en C en ocasio-nes, - Como las apps en SDL son C, usamos un pequeoshim Java que utiliza el JNI para hablar con la libreraSDL, - Esto implica que el cdigo C el la aplicacin ha deincluirse en el proyecto android en Java, junto con un cdi-co en C de soporte que comunica con Java, - Esto producenalmente un paquete Android estndar .apk.

    [44] JA2 Stracciatella Feedback Jagged Alliance 2 AndroidStracciatella Port RC2 Release - please test on the BearsPit Forum, October 3, 2011

    [45] Android Simple.[46] Source Code Changes List.

    8 Bibliografa Burnette, Ed (13 de julio de 2010). Hello, An-

    droid: Introducing Googles Mobile DevelopmentPlatform (3 edicin). Pragmatic Bookshelf. ISBN9781934356562.

    Ableson, Frank; Sen, Robi; King, Chris (enero2011). Android in Action, Second Edition (2 edi-cin). Manning. ISBN 9781935182726.

    Conder, Shane; Darcey, Lauren (7 de septiembre de2009). Android Wireless Application Development(1 edicin). Addison-Wesley Professional. ISBN0321627091.

    Murphy,Mark (16 de junio de 2009). Beginning An-droid (1 edicin). Apress. ISBN 1430224193.

    Meier, Reto (marzo 2010). Professional Android 2Application Development (1 edicin). Wrox Press.ISBN 9780470565520.

    Haseman, Chris (21 de julio de 2008). Android Es-sentials (1st edicin). Apress. ISBN 1430210648.

    9 Enlaces externos Programar para Android Android Developers Android Training Android Developers Blog

    Android training courses Google Projects for Android from Google Code Diagram of Android internals Pgina web de Appcelerator Titanium Hypertext map of Android API classes JavocSoft - Blog

    Esta obra deriva de la traduccin de Android soft-ware development de Wikipedia en ingls, concre-tamente de esta versin, publicada por sus edito-res bajo la Licencia de documentacin libre deGNU y la Licencia Creative Commons Atribucin-CompartirIgual 3.0 Unported.

  • 8 10 TEXTO E IMGENES DE ORIGEN, COLABORADORES Y LICENCIAS

    10 Texto e imgenes de origen, colaboradores y licencias10.1 Texto

    Desarrollo de programas para Android Fuente: https://es.wikipedia.org/wiki/Desarrollo_de_programas_para_Android?oldid=85051323 Colaboradores: Petronas, Taichi, BOT-Superzerocool, CEM-bot, Jorgelrm, Rosarinagazo, Bigsus-bot, Panypeces, Wikimont,Zilgs, Edgardo C, PatruBOT, ZroBot, J. A. Glvez, Miguillen-bot, Albertojuanse, Waka Waka, JESSIP, Andrewfelo, Invadibot, Aeter-na~eswiki, Aeterna2, Addbot, JavocSoft, Jarould, BenjaBot, AeternaEn y Annimos: 20

    10.2 Imgenes Archivo:Android_mobile_phone_platform_early_device.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/5/51/

    Android_mobile_phone_platform_early_device.jpg Licencia: CC BY 2.0 Colaboradores: Android uploaded by Kozuch Artista original:Kai Hendry from London, UK

    Archivo:Nexus_4.png Fuente: https://upload.wikimedia.org/wikipedia/commons/7/7d/Nexus_4.png Licencia: CC BY 2.5 Colaborado-res: http://developer.android.com/distribute/promote/device-art.html, combined with personal screenshot of a Nexus 4 on Android 4.4.2KitKat. Artista original: developer.android.com

    10.3 Licencia de contenido Creative Commons Attribution-Share Alike 3.0

    Herramientas Oficiales Android SDKAndroid Debug Bridge - Conector de Depuracin de AndroidFastboot - Arranque rpidoNative development kit - Sistema de desarrollo nativoAndroid Open Accessory Development Kit

    Herramientas de desarrollo de tercerosAndroid APIMinerAndroWishApp Inventor for AndroidBasic4androidHyperNext Android Creator KivyProcessingQt para AndroidRFO Basic!RubyMotionSaphirSDLEl proyecto Simple WinDev Mobile

    El Concurso de Desarrollo Android Firmware de Comunidad Estndares de Java Historia Referencias Bibliografa Enlaces externos Texto e imgenes de origen, colaboradores y licenciasTextoImgenesLicencia de contenido