+ All Categories
Home > Documents > C omputo M ovil: Introducci on a Android · base de datos a diario para ver si se han anadido~...

C omputo M ovil: Introducci on a Android · base de datos a diario para ver si se han anadido~...

Date post: 28-Sep-2018
Category:
Upload: dothien
View: 213 times
Download: 0 times
Share this document with a friend
45
logo omputo M´ ovil: Introducci´ on a Android Dr. Gregorio Toscano Pulido Centro de Investigaci´on y de Estudios Avanzados del IPN. Laboratorio de Tecnolog´ ıas de Informaci´ on Dr. Gregorio Toscano Pulido Plataforma S60
Transcript

logo

Computo Movil: Introduccion a Android

Dr. Gregorio Toscano Pulido

Centro de Investigacion y de Estudios Avanzados del IPN.

Laboratorio de Tecnologıas de Informacion

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Historia

Octubre de 2003: Andy Rubin y otros cofundadores creanAndroid Inc., una pequena companıa cuya finalidad era eldesarrollo de aplicaciones para dispositivos moviles, cuyosintegrantes tenıan una gran experiencia en plataformas web,telecomunicaciones y aplicaciones moviles.

Junio de 2005: Google compra Android Inc. Andy Rubin seconvierte en el director de la division de plataformas movilesde Google.

Un buen tiempo: Se hicieron varios prototipos. La mayorıaeran nada atractivos (ver http://www.marcelor.com/wp-content/uploads/google-android-prototipo.jpg).

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Historia

Noviembre de 2007: Se anuncia la creacion de la OpenHandset Alliance, una organizacion cuyo objetivo es ladifusion de la plataforma movil Android. Fabricantes deequipos y prestadores de servicios de tecnologıa que unieronfuerzas para lanzar el primer sistema operativo abierto paramoviles, que no estarıa atado a una marca o equipo, sino quegracias a su kernel de Linux, podrıa ser adaptado a casicualquier dispositivo. Para sorpresa de muchos, 5 dıas despuesdel anuncio, Google lanza un Software Development Kit oSDK , que incluıa un emulador de Android para ir probandolas primeras lıneas de codigo.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Historia

Septiembre de 2008: Se lanza el G1 T-Mobile G1/HTC Dreamque es la primera version de un Telefono movil con Androidhttp://www.t-mobileg1.com/

Septiembre de 2008:Tambien se lanzo una version Dev Phone1 con una serie de caracterısticas adicionales que le permiten alos desarrolladores tener privilegios (root) en la administracionde movil y sus productos http://www.androidclub.nl/joomla/images/stories/hardware/g1_dev_phone_1.png.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

¿Que es android?

Android es un conjunto de software disponible para dispositivosmoviles que incluye un sistema operativo con una capa deabstraccion de aplicaciones distribuidas sobre plataformasheterogeneas dirigidas al usuario.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Caracterısticas

1. Framework de aplicaciones: permite reuso y reemplazo decomponentes.

2. Maquina virtual Dalvik: optimizada para dispositivosmoviles.

3. Navegador integrado: basado en el motor open sourceWebKit.

4. Graficos optimizados, con una librerıa de graficos 2D;graficos 3D basado en la especificacion OpenGL ES 1.0(aceleracion por hardware opcional).

5. SQLite para almacenamiento de datos estructurados.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Caracterısticas

6. Soporte para medios con formatos comunes de audio, videoe imagenes planas (MPEG4, H.264, MP3, AAC, AMR, JPG,PNG, GIF)

7. Telefonıa GSM (dependiente del hardware)

8. Bluetooth, EDGE, 3G, y WiFi (dependiente del hardware)

9. Camara, GPS, brujula, y acelerometro (dependiente delhardware)

10. Ambiente rico de desarrollo incluyendo un emulador dedispositivo, herramientas para depurar, perfiles de memoria yrendimiento, y un plugin para el IDE Eclipse.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Caracterısticas

11. Pantalla tactil

12. Android Market permite que los desarrolladores pongansus aplicaciones, gratuitas o de pago, en el mercado a travesde esta aplicacion accesible desde todos los telefonos conAndroid.

13. Entorno de desarrollo SDK que proporciona un plugin parael IDE de Eclipse y APIs necesarias para empezar a desarrollaraplicaciones en la plataforma Android usando un lenguaje deprogramacion java el cual incluye un emulador de dispositivo,herramientas para la depuracion, memoria y rendimiento deperfile.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Arquitectura de Android

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Aplicaciones

En Android se suministran con un conjunto de aplicaciones queincluyen un cliente de correo electronico, programa de SMS,calendario, mapas, navegador, contactos, y muchas mas quepuedes obtener desde el sitio Market Android.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Application Framework:

Los desarrolladores pueden acceder a los marcos utilizado por laAPI de las aplicaciones basicas. La arquitectura de aplicaciones seha disenado para simplificar la reutilizacion de componentes, ycualquier aplicacion puede publicar sus capacidades y cualquierotra aplicacion podra entonces hacer uso de esas capacidades(sujeto a las limitaciones de seguridad impuestas por el marco).Este mismo mecanismo permite que los componentes que sesustituye por el usuario.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

conjunto de servicios y sistemas

Una rica y extensible conjunto de vista que se pueden utilizar paraconstruir una solicitud, incluyendo listas, rejillas, cajas de texto,botones, e incluso un navegador web incrustables, los proveedoresde contenido que permiten que las aplicaciones de acceso a losdatos de otras aplicaciones (como Contactos), o para compartirsus propios datos

Dr. Gregorio Toscano Pulido Plataforma S60

logo

1. El Administrador de recursos, facilitar el acceso a losrecursos de codigo no como cadenas localizadas, graficos yarchivos de diseno

2. Una notificacion Manager que permite a todas lasaplicaciones personalizadas y mostrar las alertas en la barra deestado

3. El Gerente de la actividad que gestiona el ciclo de vida delas aplicaciones y proporciona una navegacion backstack

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Bibliotecas

Android incluye un conjunto de librerıas de C / C + + utilizadodiversos componentes del sistema . Estas capacidades estanexpuestos a los desarrolladores a traves de la aplicacion marco.Algunas de las principales librerıas se enumeran a continuacion:

1. Sistema de librerıa de C un derivado de BSD aplicacion delsistema de biblioteca estandar para Linux sintonizado losdispositivos embebido basados en C (libc)

2. Medios de comunicacion de librerıas lde basadas enOpenCORE

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Bibliotecas

3. PacketVideo, para la reproduccion y la grabacion deformatos de audio y video, ası como archivos de imagen,MPEG4, H.264, MP3, AAC, AMR, JPG y PNG, ogg vorbis yogg theora.

4. Superficie Manager - gestiona el acceso a la pantalla y a lossubsistemas compuestos 2D y graficos 3D a partir de capasmultiples aplicaciones

5. LibWebCore - un moderno navegador web

6. SGL - el motor de graficos 2D subyacente

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Bibliotecas

7. Librerıas 3D basada en OpenGL ES 1.0 API

8. FreeType - mapa de bits y vectores de la renderizacion defuentes

9. SQLite - un ligero y potente motor de bases de datosrelacionales disponibles para todas las aplicaciones

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Android Runtime:

Android incluye un conjunto de librerıas que proporciona la mayorparte de la funcionalidad disponible en el nucleo de las bibliotecasel lenguaje de programacion Java.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Android Runtime

Android cada aplicacion se ejecuta en su propio proceso, con supropia instancia de la maquina virtual Dalvık que se ha escrito demodo que un dispositivo puede ejecutar multiples maquinasvirtuales de manera eficiente. La maquina virtual de Dalvık ejecutaen el Dalvık archivos ejecutables (. Dex) que el formatoesta optimizado para memoria mınima. La maquina virtual se basaen registros, y corre clases compiladas por un compilador delenguaje Java que se han transformado en el. Dex incluido elformato de la “dx” herramienta. La maquina virtual de Dalvık sebasa en el kernel de Linux para la funcionalidad subyacente comosubprocesos y de bajo nivel de gestion de memoria.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Kernel de Linux:

Android se basa en la version 2.6 del kernel (nucleo) de Linux queactua como una capa de abstraccion entre el hardware y el restodel conjunto de software, ademas de prestar los servicios deseguridad, gestion de memoria, gestion de procesos, network stack,driver model.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Puedes construir aplicaciones con todo tipo de datos.

Android permite crear aplicaciones tomando en consideracion datosque se obtienen de muchos lugares. Por ejemplo, si se quiereelaborar una nueva aplicacion que sirva a modo de bibliotecamovil, Android no solo tomara en cuenta los nombres de los librosque ya se tengan almacenados en nuestro telefono, sino que sepodra recurrir a una base de datos que se encuentre en Internetpara engrosar los fondos. Pero es mas, no hara falta visitar estabase de datos a diario para ver si se han anadido nuevos tıtulos,Android se encargara de detectar los ultimos tıtulos y de anadirlosautomaticamente a la biblioteca.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Construir nuevas aplicaciones es muy facil.

Android ha sido disenado para que crear y llevar a la practicanuevas aplicaciones sea una tarea facil. Por otra parte, el sistemaoperativo esta pensado para que todas las aplicaciones que secreen se puedan utilizar con mucha facilidad tambien, no debemosapartar el hecho de que Android por poseer un kernel de Linuxfacilmente pueden ser instalado en ordenadores.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Licencia de Android:

Android posee doble licencia, GPLv2 (kernel de Linux) y Apache2.0 (Aplicativos) las cuales fueron pensadas para brindar unamayor flexibilidad y oportunidades de negocio al permitir a losdesarrolladores la creacion de aplicaciones manteniendo sin afectarcon esto la licencia del kernel de Linux.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Version actual de Android:

Cupcake Android 1.5 es la version estable. La proxima versiontendra por nombre Donut.http://developer.android.com/guide/index.html

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Modelo de negocio y Cambio Social.

Al tratarse de un sistema operativo de codigo abierto, se puedengenerar desarrollos a la medida de empresas o institucionesgenerando ası un mayor numero de empleos con excelente calidady evitando monopolios, ademas que todas las aplicaciones que secreen con Android pueden ser compartidas con otros usuarios deforma libre o vender algunas mejoras para poder financiar dichosdesarrollos.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Conclusiones del futuro de Android.

Desde su lanzamiento de Android ha despertado mucho interes,curiosidad y revuelo, tanto en las comunidades de hackers deaplicaciones libres como en los mismo usuarios que buscanalternativas viables a necesidad puntuales, estamos hablando queen la actualidad existen alrededor de 4,000 millones de usuarios detelefonos moviles y de equipos de escritorios y portatiles alcanzasolo 1,600 millones y es en ese diferenciador exponencial de numerode usuarios donde queremos llegar con la tecnologıa de Android.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Conclusiones del futuro de Android.

El futuro de Linux y especialmente de Android es uno de los masclaros y prometedores por sus propias caracterıstica de inclusion enel desarrollo, seguridad y transparencia ası como en la versatilidadde su modelo economico donde el Open Handset Alliance,emprendedores emergentes, universidades y empresas dedicadas alcapital de riesgo estan apostando a esta plataforma para serpioneros en la nueva era de la informacion y las tecnologıa libres ypoder cambiar al mundo

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Metodo para ingresar de caractere

En el sistema primero se determina un plano de referencia, luego sedetecta un angulo o direccion de inclinacion en el dispositivo comouna desviacion del plano de referencia y por medio del acelerometose indica la direccion de inclinacion y se recibe la entrada de uncaracter determinado en la pantalla. Por lo tanto, solo sonnecesarios dos movimientos para completar el ingreso de uncaracter: inclinar el dispositivo y presionar una tecla. Por eso, setrata de un metodo intuitivo, comodo y rapido escribir texto.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Ligas interesantes

http://kronox.org/ - Android and other herbs forEarthlings (de aquı se tomo la mayor parte del texto

http://www.youtube.com/user/androiddevelopers?hl=esAndroid en Youtube

http://source.android.com/ - open source projec

http://developer.android.com/sdk/1.5_r2/index.html -SDK android

http://www.openhandsetalliance.com/ - Open handsetalliance

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Ligas interesantes

http://www.android.com/market/ - Aplicaciones AndroidMarket

http://developer.android.com/guide/samples/index.html -Ejemplos de codigo

http://groups.google.es/group/desarrolladores-android/web - tutoriales

http://code.google.com/android/

http://en.androidwiki.com/wiki/Main_Page - Wikiinteresante.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Instalando los paquetes necesarios en Debian

La descripcion sobre la instalacion del entorno de desarrollo y laprimera prueba fue modificado de la guıa http://groups.google.es/group/desarrolladores-android/web/instalando-el-entorno-de-desarrollo-y-primera-prueba.Sin embargo, a diferencia de la guıa, modifico los pasos para sepueda instalar en Debian.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Instalando los paquetes necesarios en Debian

Se necesita el jdk de java, el sdk de android y algun editor decodigo. Los programadores de java y de android, aseguran queeclipse es el mejor editor.

Asegurate de no tener instalado: java-gcj-compat,java-6-openjdk ni kaffe-pthreads. En mi caso, adicionalmenteal hecho que tuve que desinstalar dichos paquetes, me salio elsiguiente error: undefined symbol: ZN4nsID5ParseEPKc. Sinembargo, al instalar el paquete xulrunner-dev, quedo resuelto.

Instala el jdk: wajig install sun-java6-jre sun-java6-jdk

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Instalando los paquetes necesarios en Debian

Instala el editor eclipse. Descargalo desdehttp://www.eclipse.org/downloads/. Preferentementedescarga la version Eclipse IDE for Java EE Developers,aunque tambien puedes descargar la version Eclipse IDE forJava Developers.

Descarga el sdk de android en: http://developer.android.com/sdk/1.5_r2/index.html

Unicamente descomprime el archivo en algun directorio y listo.

tar xvfz eclipse-jee-galileo-linux-gtk-x86_64.tar.gzcd eclipse./eclipse

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Agregando Android a eclipse

Una vez descargado el sdk de android, descomprımalo en undirectorio que pueda ser accedido publicamente. En mi caso lodescomprimı en el directorio /usr/local/. Posteriormente, esimporante agregar/usr/local/android-sdk-linux_x86-1.5_r3/tools/ alPATH

mv android-sdk-linux_x86-1.5_r3.zip /algun/pathunzip android-sdk-linux_x86-1.5_r2.zipexport PATH=$PATH:/algun/path/android-sdk-linux_x86-1.5_r3/tools/

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Instalando el ADT para eclipse

Es necesario descargar el ADT para poder utilizar android eneclipse.

Descargalo desdehttp://dl-ssl.google.com/android/ADT-0.9.1.zip

Descomprime el archivo ZIP en alguna carpeta.

Inicia eclipse

Pulsa sobre el menu Help > Install New Software > Add

En Name agrega Android Plugin y en Local agrega laubicacion de donde descomprimiste el .ZIP

Marca Developer Tools y presiona Next. Selecciona ambosrenglones y presiona Next. Posteriormente deberas aceptar lalicencia y presionar Finish.

Reinicia el eclipse.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Agregando el SDK a eclipse.

Inicia eclipse

Presiona Window > Preferences > Android

Selecciona el lugar donde descomprimiste el SDK y presionaApply

Presiona OK

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Creando Agregando Android a eclipse

Para correr la aplicacion en el emulador de Android, esnecesario crear un dispositivo virtual de Android (AVD por sussıglas en ingles). Un AVD define la imagen de sistema y ajustael dispositivo usado por el emulador.Para crear un AVD use la siguiente lınea. Asegurese de teneren su PATH la ruta de las herramientas del SDK de android.

android create avd --target 3 --name my_avd

Posteriormente, de un enter.

Inicie android y podra ver en Window > Android AVDManager, los dispositivos creados.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Probando la instalacion

Pulsamos File > New > Project y seleccionamos Android >AndroidProject. Posteriormente pulsamos Next.

Posteriormente agregamos la siguiente informacion:

Project name: HelloAndroidSeleccionamos Android 1.5 en Build TargetApplication name: Hello, AndroidPackage name: com.example.helloandroid (or your own privatenamespace)Create Activity: HelloAndroidMin SDK Version: 3

Seleccionamos Finish

Dr. Gregorio Toscano Pulido Plataforma S60

logo

C en Android (compilador externo

Descargue el “toolchain” de CodeSourcery:http://www.codesourcery.com/sgpp/lite/arm/portal/subscription?@template=lite

Instalalo: sh arm-2008q3-72-arm-none-linux-gnueabi.bin

Compila el codigo: arm-none-linux-gnueabi-gcc -o hello -statichello.c

Copia el binario a tu telefono y ejecutalo desde ul adb shell:./hello

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Native Developer Kit (NDK)

El Android NDK es una herramienta (se usa conjuntamente con elAndroid SDK) que permite construir modulos de aplicaciones encodigo nativo.Las aplicaciones Android se ejecutan en la maquina virtual Dalvik.El NDK permite a los desarrolladores implementar parte de susaplicaciones usando codigo nativo como C y C++. Esto puede darbeneficions a ciertas clases de aplicaciones (reusar codigo existenteo bien incrementar la velocidad de ejecucion).

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Native Developer Kit (NDK)

El NDK provee:

Un conjunto de herramientas y archivos de construccionusados para generar bibliotecas de codigo nativo usandofuentes de C y C++.

Una manera de empotrar bibliotecas nativas en archivos depaquetes de aplicaciones (.apks) que pueden ser distribuidosen dispositivos Android.

Un conjunto de cabeceras y bibliotecas de sistema que seransoportadas en todas las versiones futuras de la plataformaAndroid, iniciando desde la version 1.5.

Ejemplos, tutoriales y documentacion diversa.

Esta version soporta el conjunto de instruciones de maquina deARMv5TE y provee cabeceras estables para libc, libm la interfaceJNI y otras bibliotecas.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Instalacion

Para instalar el NDK siga los siguientes pasos:

Seleccione el paquete NDK que es apropiado para tucomputadora y descargue el paquete.

Descomprima el paquete NDK, nos vamos a referir aldirectorio que contiene el NDK como <ndk>

En una terminal dirıjase al nuevo directorio creado y ejecute elscript <ndk>/build/host-setup.sh. El script cnfigura elambiente y genera archivos de configuracion.

Agrega la variable exportANDROID NDK ROOT=ruta/donde/esta/android/ndk

Si el script termina satisfactoriamente, este imprime “Hostsetup complete.”

Puedes comenzar a trabajar con el NDK.

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Trabajando con el NDK

Revisa la documentacion incluida en el NDK, particularmente eldocumento OVERVIEW.TXT que se encuentra en el directorio<ndk>/docs/

Tus codigos nativos deberan ir en <ndk>/sources/<my src>/

Cada codigo, debera de tener un archivo de descripcion<ndk>/sources/<my src>/Android.mk

Tambien se debera crear un archivo de descripcion que sirvade liga entre la aplicacion SDK y cualquier numero debibliotecas compartidas. Dicho archivo debera de ir en<ndk>/apps/<my app>/Android.mk

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Trabajando con el NDK

Para construir la aplicacion teclee make en el el directorio raızde <ndk>.

$make APP=<my_app>

En el caso especıfico de los ejemplos que vienen con el SDKse tendrıa que compilar de la siguiente manera:

$ make APP=hello-jni$ make APP=two-libs

Finalmente compile la aplicacon usando las herramientas delSDK de la manera usual.

En caso que este usando Eclipse realice lo siguiente:

<ndk>/apps/<app name>/project/

Dr. Gregorio Toscano Pulido Plataforma S60

logo

Ligas interesantes

http://groups.google.es/group/desarrolladores-android/web/instalando-el-entorno-de-desarrollo-y-primera-prueba

http://developer.android.com/guide/tutorials/hello-world.html

http://android-tricks.blogspot.com/2009/02/hello-world-in-c-on-android.html

http://android-tricks.blogspot.com/2009/02/hello-world-c-program-on-using-android.html

http://hashspeaks.wordpress.com/2009/04/18/how-to-compilerun-and-package-c-programs-in-android/

http://developer.android.com/intl/it/sdk/ndk/1.5_r1/index.html

Dr. Gregorio Toscano Pulido Plataforma S60


Recommended