Download - Taller livetrackingandroid

Transcript
  • 1. Tracking con Android, pgws y OpenLayers (Introduccin a la programacin con Android

2. racking con Android, pgws y OpenLayers(Introduccin a la programacin con AndroMercatorLab S.L. Distribuye este documento bajo licencia Creative Commons Reconocimiento, Compartir, Igual 3Los trminos de la licencia se pueden consultar en: http://creativecommons.org/licenses/by-sa/3.0/Enero 2011) 3. Introduccin: Quien soy yo?Quien soy yo?Santiago Higuera de Frutos, nacido 1960, Ingeniero de Caminos, Marino y GeoinquietoQue hago ahora?Sacar adelante mi empresa MercatorLab S.L., unnegocio dedicado al desarrollo de aplicaciones LBS(Location Based Services) basadas en softwarelibre y a la formacin y consultora en temas GISOpen Source.Terminar mi doctorado en la Escuela de Caminos deMadrid, con tesis acerca de los GPSs, la geometrade las carreteras y los algoritmos genticos. Algunos enlaces Algo parecido a un currculum: http://ingemoral.es/docs/curriculo_2011.pdf MercatorLab: http://mercatorlab.com Twitter : https://twitter.com/#!/santiagohiguera Email: [email protected] 4. Introduccin: De que va este taller?Introduccin a AndroidDurante el taller se repasarn los conceptos bsicos de la programacin con Android.Ejemplo de uso : TrolpicalRealizaremos un programa de tracking que permite ir leyendo la posicin del GPS del dispositivo Android y transmitir dichas posiciones va internet a la base de datos postgres alojada en un servidor.pgws.phpEl mdulo pgws (PostGres Web Service), alojado en el servidor, proporciona un acceso ala base de datos desde cualquier lenguaje de programacin, va peticiones HTTP POSTo HTTP GETpgws.jsPara clientes Javascript se puede utilizar una capa intermedia, pgws.js, escrita en Javascript, y que facilita el acceso a postgres sin necesidad de hacer peticiones directas a pgws.php 5. Indice1 .- Android: Que es Android?2 .- Instalacin: SDK, Eclipse, ADT, AVD3 .- El programa Hola Mundo Android4 .- Activity, Layout, Resources5 .- Etiquetas, Campos y Botones6 .- Actividades7 .- Acceso a Internet8 .- Acceso a servicios de localizacin9 .- pgws10 .- Trolpitrack11 .- pgws.js12 .- Clientes Javascript y OpenLayers13 .- Mejoras a Trolpitrack 6. 1.- Qu es Android? 7. 2.- Instalacin: SDK, Eclipse, ADT, AVD 8. .- 9. 3.- El programa Hola MundoPara entrar en el asistente de creacin de proyectos desde el men de Eclipse: File New Other Android Android Project Nombre delVersin del API proyecto destinopackage 10. 3.- El programa Hola Mundo Android/AndroidManifest.xml /src/.../HolaMundoActivity.java /res/layout/main.xml/res/values/strings.xml 11. 4.- Activity, Layout, Resources 12. 4.- Activity, Layout, Resources 13. 5.- Widgets: Etiquetas, campos, botonesEn Android nos podremos encontrar con distintos tamaos y densidades de pantalla. Las densidades habituales, medidas en textit{dpi}, textit{puntos por pulgada}, son: begin{itemize} item textbf{Baja densidad}: (textit{ldpi}) Con densidad de 120 dpi item textbf{Densidad media} (textit{mdpi}) Con densidad de 160 dpi item textbf{Alta densidad} (textit{hdpi}) Con densidad de 240 dpi end{itemize} En cuanto a los tamaos de las pantallas nos podemos encontrar con: begin{itemize} item textbf{Pantallas Pequeas} begin{itemize} item textbf{QVGA} Con 240x320 pixels y densidad baja, 120 dpi end{itemize} item textbf{Pantallas normales} begin{itemize} item textbf{WQVGA} Con 240x400 pixels y densidad baja, 120 dpi item textbf{FWQVGA} Con 240x432 pixels y densidad baja, 120 dpi item textbf{HVGA} Con 320x480 pixels y densidad media, 160 dpi item textbf{WVGA} Con 480x800 pixels y densidad alta, 240 dpiitem textbf{FWVGA} Con 480x854 pixels y densidad alta, 240 dpiend{itemize} item textbf{Pantallas grandes}begin{itemize}item textbf{WVGA} Con 480x800 pixels y densidad media, 160 dpi item textbf{FWVGA} Con 480x854 pixels y densidad alta, 160 dpi end{itemize} end{itemize} 14. .- Unidades de medida en pantalladp (Density-independent Pixels) (tambin vale dip) Unidades relativas a una pantallade 160 pixels por pulgada. Cualquiera que sea la densidad de puntos del dispositivola representacin de los elementos se har de forma que 160dp sean 1 pulgada enel dispositivosp (Scale-independent Pixels) Es parecida al anterior, pero tiene en cuenta laspreferencias del usuario en cuanto a tamao de fuentes. Opcin recomendada parapara el tamao de las fuentes.pt (Points) Equivalen 1/72 de pulgada con relacin al tamao fsico real en pantalla.px (Pixels) Son pixels de la pantalla del dispositivo. No es recomendable pues cadadispositivo puede tener diferentes densidades de pixels por pulgada as comodiferentes dimensiones totales en pixels.mm (Milimeters) Milimetros reales en la salida de la pantalla del dispositivo.in (Inches) Pulgadas reales en la salida de la pantalla del dispositivo. 15. .- Tamaos y densidades de pantallasDensidades en Puntos por pulgada (dpi):Baja densidad (ldpi) : Con densidad de 120 dpiDensidad media (mdpi) Con densidad de 160 dpiAlta densidad (hdpi) Con densidad de 240 dpiTamaos de pantallas:Pantallas PequeasQVGA: Con 240x320 pixels y densidad baja, 120 dpiPantallas normalesWQVGA: Con 240x400 pixels y densidad baja, 120 dpiFWQVGA: Con 240x432 pixels y densidad baja, 120 dpiHVGA: Con 320x480 pixels y densidad media, 160 dpiWVGA: Con 480x800 pixels y densidad alta, 240 dpiFWVGA: Con 480x854 pixels y densidad alta, 240 dpiPantallas grandes: WVGA: Con 480x800 pixels y densidad media, 160 dpi FWVGA: Con 480x854 pixels y densidad alta, 160 dpi 16. .- Tamaos y densidades de pantallasEl uso de distintas pantallas se habilita en el AndroidManifest.xml 17. 5.- Widgets: Etiquetas, campos, botones 18. .- Eventos y oyentesUn oyente de un evento es un interface existente en la clase View que contiene unnico mtodo de callback.Estos mtodos son llamados por Android cuando el View que tiene registrado el oyente esactivado por el usuario al actuar sobre el item en el interface de usuario. (Por ejemplo,si el View es un Button, el oyente se disparar cuando el usuario pulse el botn). Cada evento tiene su interface oyente y su funcin de callback: Interface oyente Mtodo Callback View.OnClickListener onClick() View.OnLongClickListener onLongClick() View.OnFocusChangeListener onFocusChange() View.OnKeyListener onKey() View.OnTouchListener onTouch() View.OnCreateContextMenuListener onCreateContextMenu() 19. .- Notificaciones: ToastToast: Notificacin que una vez mostrada desaparece sin intervencin del usuario.Toas t . make Te xt ( Hol aM o. t hi s , "He l l o Toas t ", 2000) . s how( ) ;undToast: Notificacin que una vez mostrada desaparece sin intervencin del usuario.AlertDialog: Dilogo de notificacin con botones para aceptar, cancelar. 20. .- Notificaciones: AlertDialogAlertDialog: Dilogo de notificacin con botones para aceptar, cancelar. ne w Al e rt Di al og. Bui l d e r( t hi s ) . s e t Ti t l e ( "M s s age De mo")e . s e t M s s age ( "Are you s ure you want t o e xi t ?") e . s e t Ne ut ral But t on( "Cl os e ", ne w Di al ogI nt e rf ace . OnCl i ckLi s t e ne r( ) { publ i c voi d onCl i ck( Di al ogI nt e rf ace d l g, i nt s umt hi n) {// no hay que hace r nad a, s e ci e rra s ol o } } ) . s how( ) ; 21. 6.- Actividades 22. 7.- Acceso a InternetEsquema general para acceder a Internet:Crear un HttpClient (o acceder a una referencia de unoexistente)Instanciar un nuevo mtodo PostMethod o GetMethodAjustar los parmetros HTTP, parejas nombre/valorEjecutar la llamada HTTP a travs del HttpClientProcesar la respuesta HTTPHay que autorizar a la aplicacin el acceso a Internet en el AndroidManifest.xml 23. 7.- Acceso a Internet 24. 8.- Acceso a servicios de localizacin 25. 9.- pgws 26. 10.- Trolpitrack 27. 11.- pgws.js 28. 12.- Clientes Javascript-OpenLayers 29. 13.- Mejoras a Trolpical