SlideShare una empresa de Scribd logo
1 de 29
Tracking con Android, pgws y OpenLayers




                         (Introducción a la programación con Android
racking con Android, pgws y OpenLayers
                                                      (Introducción a la programación con Andro




MercatorLab S.L. Distribuye este documento bajo licencia Creative Commons Reconocimiento, Compartir, Igual 3

Los términos de la licencia se pueden consultar en:

       http://creativecommons.org/licenses/by-sa/3.0/

Enero 2011)
Introducción: ¿Quien soy yo?
¿Quien soy yo?
Santiago Higuera de Frutos, nacido 1960, Ingeniero
 de Caminos, Marino y Geoinquieto

¿Que hago ahora?
Sacar adelante mi empresa MercatorLab S.L., un
  negocio dedicado al desarrollo de aplicaciones LBS
  (Location Based Services) basadas en software
  libre y a la formación y consultoría en temas GIS
  Open Source.
Terminar mi doctorado en la Escuela de Caminos de
  Madrid, con tesis acerca de los GPS's, la geometría
  de las carreteras y los algoritmos genéticos.

 Algunos enlaces
 Algo parecido a un currículum: http://ingemoral.es/docs/curriculo_2011.pdf
 MercatorLab: http://mercatorlab.com
 Twitter : https://twitter.com/#!/santiagohiguera
 Email: shiguera@mercatorlab.com
Introducción: ¿De que va este taller?
Introducción a Android
Durante el taller se repasarán los conceptos básicos de la
 programación con Android.

Ejemplo de uso : Trolpical
Realizaremos un programa de tracking que permite ir leyendo la
 posición del GPS del dispositivo Android y transmitir dichas
 posiciones vía internet a la base de datos postgres alojada
 en un servidor.

pgws.php
El módulo pgws (PostGres Web Service), alojado en el servidor, proporciona un acceso a
  la base de datos desde cualquier lenguaje de programación, vía peticiones HTTP POST
  o HTTP GET

pgws.js
Para 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
Indice

1 .- Android: ¿Que es Android?
2 .- Instalación: SDK, Eclipse, ADT, AVD
3 .- El programa 'Hola Mundo Android'
4 .- Activity, Layout, Resources
5 .- Etiquetas, Campos y Botones
6 .- Actividades
7 .- Acceso a Internet
8 .- Acceso a servicios de localización
9 .- pgws
10 .- Trolpitrack
11 .- pgws.js
12 .- Clientes Javascript y OpenLayers
13 .- Mejoras a Trolpitrack
1.- ¿Qué es Android?
2.- Instalación: SDK, Eclipse, ADT, AVD
.-
3.- El programa Hola Mundo
Para entrar en el asistente de creación de proyectos desde el menú de Eclipse:
                   File → New → Other → Android → Android Project


   Nombre del                      Versión del API
     proyecto                           destino                          package
3.- El programa Hola Mundo Android
/AndroidManifest.xml             /src/.../HolaMundoActivity.java




                                     /res/layout/main.xml
    /res/values/strings.xml
4.- Activity, Layout, Resources
4.- Activity, Layout, Resources
5.- Widgets: Etiquetas, campos, botones




En Android nos podremos encontrar con distintos tamaños 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 tamaños de las pantallas nos podemos encontrar con: begin{itemize} item
   textbf{Pantallas Pequeñas}         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 dpi                  item textbf{FWVGA} Con 480x854 pixels y densidad alta, 240 dpi          end{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}
.- Unidades de medida en pantalla
dp (Density-independent Pixels) (también vale 'dip') Unidades relativas a una pantalla
  de 160 pixels por pulgada. Cualquiera que sea la densidad de puntos del dispositivo
  la representación de los elementos se hará de forma que 160dp sean 1 pulgada en
  el dispositivo
sp (Scale-independent Pixels) Es parecida al anterior, pero tiene en cuenta las
  preferencias del usuario en cuanto a tamaño de fuentes. Opción recomendada para
  para el tamaño de las fuentes.
pt (Points) Equivalen 1/72 de pulgada con relación al tamaño físico real en pantalla.
px (Pixels) Son pixels de la pantalla del dispositivo. No es recomendable pues cada
  dispositivo puede tener diferentes densidades de pixels por pulgada así como
  diferentes 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.
.- Tamaños y densidades de pantallas
Densidades en Puntos por pulgada (dpi):
Baja densidad (ldpi) : Con densidad de 120 dpi
Densidad media (mdpi) Con densidad de 160 dpi
Alta densidad (hdpi) Con densidad de 240 dpi

Tamaños de pantallas:
Pantallas Pequeñas
  QVGA: Con 240x320 pixels y densidad baja, 120 dpi
Pantallas normales
  WQVGA: Con 240x400 pixels y densidad baja, 120 dpi
  FWQVGA: Con 240x432 pixels y densidad baja, 120 dpi
  HVGA: Con 320x480 pixels y densidad media, 160 dpi
  WVGA: Con 480x800 pixels y densidad alta, 240 dpi
  FWVGA: Con 480x854 pixels y densidad alta, 240 dpi
Pantallas grandes:
 WVGA: Con 480x800 pixels y densidad media, 160 dpi
 FWVGA: Con 480x854 pixels y densidad alta, 160 dpi
.- Tamaños y densidades de pantallas
El uso de distintas pantallas se habilita en el AndroidManifest.xml
      <?xml version="1.0" encoding="utf-8"?>
      <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.siglibre.examples"
        android:versionCode="1" android:versionName="1.0" >
        <uses-sdk android:minSdkVersion="7" />
        <supports-screens
               android:smallScreens="false"
               android:normalScreens="true"
               android:largeScreens="false"
               android:anyDensity="true"/>
        <application
          android:icon="@drawable/ic_launcher"
          android:label="@string/app_name" >
          <activity
             android:name=".TestDisplayActivity"
             android:label="@string/app_name" >
             <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
          </activity>
        </application>
      </manifest>
5.- Widgets: Etiquetas, campos, botones
.- Eventos y oyentes
Un oyente de un evento es un interface existente en la clase View que contiene un
  único método de callback.
Estos métodos son llamados por Android cuando el View que tiene registrado el oyente es
  activado 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 botón).

         Cada evento tiene su interface oyente y su función de callback:


   Interface oyente                           Método Callback
   View.OnClickListener                       onClick()
   View.OnLongClickListener                   onLongClick()
   View.OnFocusChangeListener                 onFocusChange()
   View.OnKeyListener                         onKey()
   View.OnTouchListener                       onTouch()
   View.OnCreateContextMenuListener           onCreateContextMenu()
.- Notificaciones: Toast
Toast: Notificación que una vez mostrada desaparece sin intervención del usuario.

    Toas t . make Te xt ( Hol aM o. t hi s , "He l l o Toas t ", 2000) . s how( ) ;
                                und




  Toast: Notificación que una vez mostrada desaparece sin intervención del usuario.


  AlertDialog: Diálogo de notificación con botones para aceptar, cancelar.
.- Notificaciones: AlertDialog
AlertDialog: Diálogo de notificación 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( ) ;
6.- Actividades
7.- Acceso a Internet
Esquema general para acceder a Internet:
Crear un HttpClient (o acceder a una referencia de uno
  existente)
Instanciar un nuevo método PostMethod o GetMethod
Ajustar los parámetros HTTP, parejas nombre/valor
Ejecutar la llamada HTTP a través del HttpClient
Procesar la respuesta HTTP

  Hay que autorizar a la aplicación el acceso a Internet en el
                     AndroidManifest.xml

                   <uses-permission
      android:name="android.permission.INTERNET"/>
7.- Acceso a Internet
8.- Acceso a servicios de localización
9.- pgws
10.- Trolpitrack
11.- pgws.js
12.- Clientes Javascript-OpenLayers
13.- Mejoras a Trolpical

Más contenido relacionado

Similar a Taller livetrackingandroid

MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidAlberto Ruibal
 
HTML5, CSS3 y móviles
HTML5, CSS3 y móvilesHTML5, CSS3 y móviles
HTML5, CSS3 y móvilesPideCurso
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"Alberto Ruibal
 
Python en Android,Charla del FUDcon Latam 2012
Python en Android,Charla del FUDcon Latam 2012Python en Android,Charla del FUDcon Latam 2012
Python en Android,Charla del FUDcon Latam 2012Ernesto Crespo
 
Desarrollo Metro con Windows 8 UPM
Desarrollo Metro con Windows 8 UPMDesarrollo Metro con Windows 8 UPM
Desarrollo Metro con Windows 8 UPMRoberto Luis Bisbé
 
Taller Realidad Aumentada pamplona 29 mayo 2015
Taller Realidad Aumentada pamplona 29 mayo 2015Taller Realidad Aumentada pamplona 29 mayo 2015
Taller Realidad Aumentada pamplona 29 mayo 2015Manuel Alonso Rosa
 
Html5 para móviles, las reglas no escritas
Html5 para móviles, las reglas no escritasHtml5 para móviles, las reglas no escritas
Html5 para móviles, las reglas no escritasCarlos Toxtli
 
Píldora 1: Android intro
Píldora 1: Android introPíldora 1: Android intro
Píldora 1: Android introhojalataverde
 
6.android introduccion
6.android   introduccion   6.android   introduccion
6.android introduccion guidotic
 
Tutorial Nro 1 de Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro 1 de Desarrollo de Aplicaciones Móviles con AndroidTutorial Nro 1 de Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro 1 de Desarrollo de Aplicaciones Móviles con AndroidLuis Ernesto Castillo Alfaro
 
Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosGabriel Huecas
 
Segunda evaluación
Segunda evaluaciónSegunda evaluación
Segunda evaluaciónMartacinco
 
Tema 4 3_3_interfaces_de_usuario
Tema 4 3_3_interfaces_de_usuarioTema 4 3_3_interfaces_de_usuario
Tema 4 3_3_interfaces_de_usuarioCarlos A. Iglesias
 
Unidad 5 Programación de dispositivos moviles
Unidad 5 Programación de dispositivos movilesUnidad 5 Programación de dispositivos moviles
Unidad 5 Programación de dispositivos movileskabis_yadira
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Androidjezabelink
 

Similar a Taller livetrackingandroid (20)

MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a Android
 
HTML5, CSS3 y móviles
HTML5, CSS3 y móvilesHTML5, CSS3 y móviles
HTML5, CSS3 y móviles
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"
 
PhoneGap Basics v1.0
PhoneGap Basics v1.0PhoneGap Basics v1.0
PhoneGap Basics v1.0
 
Python en Android,Charla del FUDcon Latam 2012
Python en Android,Charla del FUDcon Latam 2012Python en Android,Charla del FUDcon Latam 2012
Python en Android,Charla del FUDcon Latam 2012
 
Desarrollo Metro con Windows 8 UPM
Desarrollo Metro con Windows 8 UPMDesarrollo Metro con Windows 8 UPM
Desarrollo Metro con Windows 8 UPM
 
Android master class
Android master classAndroid master class
Android master class
 
Taller Realidad Aumentada pamplona 29 mayo 2015
Taller Realidad Aumentada pamplona 29 mayo 2015Taller Realidad Aumentada pamplona 29 mayo 2015
Taller Realidad Aumentada pamplona 29 mayo 2015
 
Html5 para móviles, las reglas no escritas
Html5 para móviles, las reglas no escritasHtml5 para móviles, las reglas no escritas
Html5 para móviles, las reglas no escritas
 
Primeros Pasos en PyQt4
Primeros Pasos en PyQt4Primeros Pasos en PyQt4
Primeros Pasos en PyQt4
 
Introduccion a Android
Introduccion a AndroidIntroduccion a Android
Introduccion a Android
 
Píldora 1: Android intro
Píldora 1: Android introPíldora 1: Android intro
Píldora 1: Android intro
 
6.android introduccion
6.android   introduccion   6.android   introduccion
6.android introduccion
 
Tutorial Nro 1 de Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro 1 de Desarrollo de Aplicaciones Móviles con AndroidTutorial Nro 1 de Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro 1 de Desarrollo de Aplicaciones Móviles con Android
 
Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos Básicos
 
Segunda evaluación
Segunda evaluaciónSegunda evaluación
Segunda evaluación
 
Tema 4 3_3_interfaces_de_usuario
Tema 4 3_3_interfaces_de_usuarioTema 4 3_3_interfaces_de_usuario
Tema 4 3_3_interfaces_de_usuario
 
Unidad 5 Programación de dispositivos moviles
Unidad 5 Programación de dispositivos movilesUnidad 5 Programación de dispositivos moviles
Unidad 5 Programación de dispositivos moviles
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Android
 
Android
AndroidAndroid
Android
 

Último

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 

Último (19)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 

Taller livetrackingandroid

  • 1. Tracking con Android, pgws y OpenLayers (Introducción a la programación con Android
  • 2. racking con Android, pgws y OpenLayers (Introducción a la programación con Andro MercatorLab S.L. Distribuye este documento bajo licencia Creative Commons Reconocimiento, Compartir, Igual 3 Los términos de la licencia se pueden consultar en: http://creativecommons.org/licenses/by-sa/3.0/ Enero 2011)
  • 3. Introducción: ¿Quien soy yo? ¿Quien soy yo? Santiago Higuera de Frutos, nacido 1960, Ingeniero de Caminos, Marino y Geoinquieto ¿Que hago ahora? Sacar adelante mi empresa MercatorLab S.L., un negocio dedicado al desarrollo de aplicaciones LBS (Location Based Services) basadas en software libre y a la formación y consultoría en temas GIS Open Source. Terminar mi doctorado en la Escuela de Caminos de Madrid, con tesis acerca de los GPS's, la geometría de las carreteras y los algoritmos genéticos. Algunos enlaces Algo parecido a un currículum: http://ingemoral.es/docs/curriculo_2011.pdf MercatorLab: http://mercatorlab.com Twitter : https://twitter.com/#!/santiagohiguera Email: shiguera@mercatorlab.com
  • 4. Introducción: ¿De que va este taller? Introducción a Android Durante el taller se repasarán los conceptos básicos de la programación con Android. Ejemplo de uso : Trolpical Realizaremos un programa de tracking que permite ir leyendo la posición del GPS del dispositivo Android y transmitir dichas posiciones vía internet a la base de datos postgres alojada en un servidor. pgws.php El módulo pgws (PostGres Web Service), alojado en el servidor, proporciona un acceso a la base de datos desde cualquier lenguaje de programación, vía peticiones HTTP POST o HTTP GET pgws.js Para 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. Indice 1 .- Android: ¿Que es Android? 2 .- Instalación: SDK, Eclipse, ADT, AVD 3 .- El programa 'Hola Mundo Android' 4 .- Activity, Layout, Resources 5 .- Etiquetas, Campos y Botones 6 .- Actividades 7 .- Acceso a Internet 8 .- Acceso a servicios de localización 9 .- pgws 10 .- Trolpitrack 11 .- pgws.js 12 .- Clientes Javascript y OpenLayers 13 .- Mejoras a Trolpitrack
  • 6. 1.- ¿Qué es Android?
  • 7. 2.- Instalación: SDK, Eclipse, ADT, AVD
  • 8. .-
  • 9. 3.- El programa Hola Mundo Para entrar en el asistente de creación de proyectos desde el menú de Eclipse: File → New → Other → Android → Android Project Nombre del Versión del API proyecto destino package
  • 10. 3.- El programa Hola Mundo Android /AndroidManifest.xml /src/.../HolaMundoActivity.java /res/layout/main.xml /res/values/strings.xml
  • 13. 5.- Widgets: Etiquetas, campos, botones En Android nos podremos encontrar con distintos tamaños 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 tamaños de las pantallas nos podemos encontrar con: begin{itemize} item textbf{Pantallas Pequeñas} 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 dpi item textbf{FWVGA} Con 480x854 pixels y densidad alta, 240 dpi end{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 pantalla dp (Density-independent Pixels) (también vale 'dip') Unidades relativas a una pantalla de 160 pixels por pulgada. Cualquiera que sea la densidad de puntos del dispositivo la representación de los elementos se hará de forma que 160dp sean 1 pulgada en el dispositivo sp (Scale-independent Pixels) Es parecida al anterior, pero tiene en cuenta las preferencias del usuario en cuanto a tamaño de fuentes. Opción recomendada para para el tamaño de las fuentes. pt (Points) Equivalen 1/72 de pulgada con relación al tamaño físico real en pantalla. px (Pixels) Son pixels de la pantalla del dispositivo. No es recomendable pues cada dispositivo puede tener diferentes densidades de pixels por pulgada así como diferentes 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. .- Tamaños y densidades de pantallas Densidades en Puntos por pulgada (dpi): Baja densidad (ldpi) : Con densidad de 120 dpi Densidad media (mdpi) Con densidad de 160 dpi Alta densidad (hdpi) Con densidad de 240 dpi Tamaños de pantallas: Pantallas Pequeñas QVGA: Con 240x320 pixels y densidad baja, 120 dpi Pantallas normales WQVGA: Con 240x400 pixels y densidad baja, 120 dpi FWQVGA: Con 240x432 pixels y densidad baja, 120 dpi HVGA: Con 320x480 pixels y densidad media, 160 dpi WVGA: Con 480x800 pixels y densidad alta, 240 dpi FWVGA: Con 480x854 pixels y densidad alta, 240 dpi Pantallas grandes: WVGA: Con 480x800 pixels y densidad media, 160 dpi FWVGA: Con 480x854 pixels y densidad alta, 160 dpi
  • 16. .- Tamaños y densidades de pantallas El uso de distintas pantallas se habilita en el AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.siglibre.examples" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" /> <supports-screens android:smallScreens="false" android:normalScreens="true" android:largeScreens="false" android:anyDensity="true"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".TestDisplayActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
  • 17. 5.- Widgets: Etiquetas, campos, botones
  • 18. .- Eventos y oyentes Un oyente de un evento es un interface existente en la clase View que contiene un único método de callback. Estos métodos son llamados por Android cuando el View que tiene registrado el oyente es activado 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 botón). Cada evento tiene su interface oyente y su función de callback: Interface oyente Método Callback View.OnClickListener onClick() View.OnLongClickListener onLongClick() View.OnFocusChangeListener onFocusChange() View.OnKeyListener onKey() View.OnTouchListener onTouch() View.OnCreateContextMenuListener onCreateContextMenu()
  • 19. .- Notificaciones: Toast Toast: Notificación que una vez mostrada desaparece sin intervención del usuario. Toas t . make Te xt ( Hol aM o. t hi s , "He l l o Toas t ", 2000) . s how( ) ; und Toast: Notificación que una vez mostrada desaparece sin intervención del usuario. AlertDialog: Diálogo de notificación con botones para aceptar, cancelar.
  • 20. .- Notificaciones: AlertDialog AlertDialog: Diálogo de notificación 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( ) ;
  • 22. 7.- Acceso a Internet Esquema general para acceder a Internet: Crear un HttpClient (o acceder a una referencia de uno existente) Instanciar un nuevo método PostMethod o GetMethod Ajustar los parámetros HTTP, parejas nombre/valor Ejecutar la llamada HTTP a través del HttpClient Procesar la respuesta HTTP Hay que autorizar a la aplicación el acceso a Internet en el AndroidManifest.xml <uses-permission android:name="android.permission.INTERNET"/>
  • 23. 7.- Acceso a Internet
  • 24. 8.- Acceso a servicios de localización
  • 29. 13.- Mejoras a Trolpical