Diferencia entre revisiones de «Usuario:Juanda/phonegap/PhoneGap»

De WikiEducator
Saltar a: navegación, buscar
(Despliegue de aplicaciones mediante Emulador Android)
(Instalación de plugins html y javascript para Eclipse)
 
(13 revisiones intermedias por el mismo usuario no mostrado)
Línea 7: Línea 7:
 
</div>
 
</div>
 
<div class="slide">
 
<div class="slide">
===Entorno de desarrollo en Android===
+
====Entorno de desarrollo en Android====
 
*JDK (Android se programa en Java)
 
*JDK (Android se programa en Java)
 
*Eclipse
 
*Eclipse
Línea 15: Línea 15:
 
*PhoneGap SDK para Android
 
*PhoneGap SDK para Android
 
*Menos PhoneGap, el resto se pueden obtener mediante una [http://developer.android.com/sdk/index.html descarga única]
 
*Menos PhoneGap, el resto se pueden obtener mediante una [http://developer.android.com/sdk/index.html descarga única]
 +
*Instalación de plugins para desarrollo web con Eclipse
 
</div>
 
</div>
  
 
<div class="slide">
 
<div class="slide">
  
===Nuevo proyecto Android===
+
====Personalización Eclipse para Web====
[[Archivo:new_android_project.png|600px|thumb|center|Nuevo Proyecto mediante Android]]
+
*Si tuvieramos instalado el Eclipse de Ubuntu 12.04 (Indigo 3.7) podemos desinstalarlo (no es necesario):
 +
<source lang="bash">
 +
sudo apt-get remove eclipse-platform
 +
</source>
 +
[http://www.eclipse.org/downloads/ Descargamos Eclipse Classic], la versión actual es la 4.2 (Juno).
 +
*Descomprimimos el fichero en el directorio que nos parezca (/home/usuario) es una buena opción).
 +
*Si al ejecutarlo nos pide el entorno de java, deberemos instalarlo:
 +
<source lang="bash">
 +
$ sudo apt-get install openjdk-7-jre
 +
</source>
 
</div>
 
</div>
 
<div class="slide">
 
<div class="slide">
*[http://www.youtube.com/watch?feature=player_embedded&v=DZ5H99R3ghg#! Video Introducción Android] [http://www.media.formandome.es/android/intro_android.webm Descargar video]
+
*El paquete openjdk-7-jre contiene tan solo el Java Runtime Environment.
*[http://www.youtube.com/watch?feature=player_embedded&v=OZq-7T5kOrk#! Video sobre la creación del primer programa] [http://www.media.formandome.es/android/primer_programa.webm Descargar video]
+
*Para desarrollar en Java haría falta instalar el paquete openjdk-7-jdk que contiene el Java Development Kit.
*'''Application Name:'''
+
*Creamos el enlace al nuevo Eclipse en nuestro sistema:
:Es el nombre de la aplicación que aparecerá en el dispositivo Android. Tanto en la barra superior cuando esté en ejecución, como en el icono que se instalará en el menú de programas.
+
<source lang="bash">
*'''Project Name:'''
+
juanda@juanda-PC:/usr/bin$ cat eclipse
:Es el nombre del proyecto. Se creará una carpeta con el mismo nombre que contendrá los ficheros del proyecto.
+
#!/bin/sh
 +
ECLIPSE=/home/juanda/eclipse/eclipse
 +
exec $ECLIPSE
 +
</source>
 
</div>
 
</div>
 
<div class="slide">
 
<div class="slide">
*'''Package Name:'''
+
*Una vez que podamos ejecutar Eclipse, configuramos un nuevo repositorio de descarga de software, desde el menú ''''Help->Install new software''''
:Indicamos el paquete con el espacio de nombres utilizado por nuestra aplicación. Hay que usar las reglas de los espacios de nombre en el lenguaje de programación Java. Las clases que creemos estarán dentro de él. Esto también establece el nombre del paquete donde se almacenará la aplicación generada.
+
http://download.aptana.com/studio3/plugin/install
</div>
+
<div class="slide">
+
*'''Minimum required SDK:'''
+
:Este valor especifica el mínimo nivel del API que requiere tu aplicación. Por lo tanto, la aplicación no podrá ser instalada en dispositivos con una versión inferior. Procura escoger valores pequeños para que tu aplicación pueda instalarse en la mayoría de dispositivos. Escoger valores pequeños para este parámetro tiene un inconveniente. No podremos utilizar ninguna de las mejoras que aparezcan en los siguientes niveles de API.
+
*'''Target SDK:'''
+
:Indica la versión más alta de Android con la que se han puesto a prueba la aplicación. Cuando salgan nuevas versiones del SDK, tendrás que probar la aplicación con estas versiones y actualizar el valor.
+
</div>
+
<div class="slide">
+
*'''Compile With:'''  
+
:Es la versión de la plataforma con la que compila la aplicación. Se recomienda indicar la versión más reciente que haya aparecido. Las nuevas versiones no solo añaden funcionalidades al API, también añaden mejoras en el desarrollo. Utilizar un Target SDK alto no está reñido con usar un Minimum requiered SDKpequeño.
+
</div>
+
 
+
<div class="slide">
+
===Personalización Eclipse para Web===
+
*El bundle viene con Eclipse 3.7 Indigo
+
*Debemos instalar los paquetes desde el respositorio: http://download.eclipse.org/releases/indigo/
+
*Software necesario:
+
:Web Development Tools
+
 
+
 
+
  
 +
*Otra opción es instalar plugins específicos (es la que yo prefiero).
  
 +
</div>
 
<div class="slide">
 
<div class="slide">
  
===Despliegue de aplicaciones a dispositivo físico===
+
====Instalación de plugins html y javascript para Eclipse====
:Desplegar una aplicación a un dispositivo físico es un proceso con dos partes:
+
*Help->Install new software
====Configuración del dispositivo====
+
*Seleccionamos en los repositiorios el de Juno: Juno - http://download.eclipse.org/releases/juno e instalamos:
[[Archivo:Android_phone_settings.png|600px|thumb|center|(Configuración de dispositivo físico Android para despliegue de aplicaciones de desarrollo)]]
+
:Web Developer Tools (html, css y javascript)
*En Android 4 la habilitación del USB Debug está en Ajustes > Opciones de Desarrollo.
+
:JavaScript Development Tools
*'''Nota:''' A partir de '''Android 4.2''', las opciones de desarrollo no están visibles por defecto: ''"To make it available, go to Settings > About phone and tap Build number seven times. Return to the previous screen to find Developer options."''
+
 
</div>
 
</div>
 
<div class="slide">
 
<div class="slide">
====Configuración del dispositivo====
 
=====Windows=====
 
*Tendremos que descargar el driver del dispositivo
 
=====Mac=====
 
*No hace falta hacer nada
 
=====Ubuntu=====
 
*Tendremos que añadir el fichero 51-android.rules con los permisos y texto que figura a continuación:
 
root@juanda-PC:/etc/udev/rules.d# ls -l 51-android.rules
 
-rw-r--r-- 1 root root 76 feb 24 11:33 51-android.rules
 
root@juanda-PC:/etc/udev/rules.d# cat 51-android.rules
 
SUBSYSTEM=="usb", ATTR{idVendor}=="ID_DISPOSITIVO", MODE="0666", GROUP="plugdev"
 
root@juanda-PC:/etc/udev/rules.d#
 
*Tendremos que conocer el identificador del dispositivo (ID_DISPOSITIVO), así que conectamos el dispositivo y observamos las trazas del fichero de logs del sistema:
 
<source lang="bash">
 
tail -100f /var/log/syslog
 
Feb 24 11:12:27 juanda-PC kernel: [ 1918.767308] usb 3-1: new high-speed USB device number 6 using xhci_hcd
 
Feb 24 11:12:27 juanda-PC mtp-probe: checking bus 3, device 6: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-1"
 
Feb 24 11:12:27 juanda-PC kernel: [ 1918.784245] usb 3-1: ep 0x81 - rounding interval to 32768 microframes, ep desc says 0 microframes
 
Feb 24 11:12:27 juanda-PC kernel: [ 1918.784252] usb 3-1: ep 0x83 - rounding interval to 32768 microframes, ep desc says 0 microframes
 
Feb 24 11:12:27 juanda-PC kernel: [ 1918.784256] usb 3-1: ep 0x4 - rounding interval to 32768 microframes, ep desc says 0 microframes
 
Feb 24 11:12:27 juanda-PC kernel: [ 1918.784796] scsi11 : usb-storage 3-1:1.0
 
Feb 24 11:12:27 juanda-PC mtp-probe: bus: 3, device: 6 was not an MTP device
 
Feb 24 11:12:28 juanda-PC kernel: [ 1919.781950] scsi 11:0:0:0: Direct-Access    Linux    File-CD Gadget  0000 PQ: 0 ANSI: 2
 
Feb 24 11:12:28 juanda-PC kernel: [ 1919.782212] scsi 11:0:0:1: Direct-Access    Linux    File-CD Gadget  0000 PQ: 0 ANSI: 2
 
Feb 24 11:12:28 juanda-PC kernel: [ 1919.782607] sd 11:0:0:0: Attached scsi generic sg8 type 0
 
</source>
 
*De las trazas observamos que el dispositivo se conecta como  bus:3, device: 6
 
*Ejecutamos lsusb para ver el vendor id del dispositivo, en nuestro caso 2207:0010:
 
<source lang="bash">
 
juanda@juanda-PC:/etc/udev$ lsusb
 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
 
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
 
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
 
Bus 001 Device 003: ID 413c:2111 Dell Computer Corp.
 
Bus 001 Device 004: ID 046d:c063 Logitech, Inc. DELL Laser Mouse
 
Bus 004 Device 002: ID 059f:104a LaCie, Ltd
 
Bus 002 Device 003: ID 058f:6362 Alcor Micro Corp. Flash Card Reader/Writer
 
Bus 001 Device 006: ID 0cf3:e004 Atheros Communications, Inc.
 
Bus 003 Device 006: ID 2207:0010 
 
</source>
 
*Actualizamos el fichero anterior:
 
<source lang="bash">
 
juanda@juanda-PC:/etc/udev/rules.d$ cat 51-android.rules
 
SUBSYSTEM=="usb", ATTR{id_vendor}=="2207", MODE="0666", GROUP="plugdev"
 
</source>
 
*Para comprobar si todo hay ido bien, se puede hacer desde la línea de comandos:
 
*Reiniciamos el servicio de udev:
 
<source lang="bash">
 
juanda@juanda-PC:/etc/udev/rules.d$ sudo service udev restart
 
udev stop/waiting
 
udev start/running, process 9069
 
juanda@juanda-PC:/etc/udev/rules.d$
 
</source>
 
*Paramos y arrancamos adb (android device bridge) y comprobamos la lista de dispositivos:
 
<source lang="bash">
 
juanda@juanda-PC:/etc/udev/rules.d$ adb kill-server
 
juanda@juanda-PC:/etc/udev/rules.d$ adb start-server
 
* daemon not running. starting it now on port 5037 *
 
* daemon started successfully *
 
juanda@juanda-PC:/etc/udev/rules.d$ adb devices
 
List of devices attached
 
emulator-5554 device
 
</source>
 
*Es útil poner los comandos más habituales dentro del PATH:
 
<source lang="bash">
 
juanda@juanda-PC:~$ cat .bashrc|grep -i PATH
 
PATH=$PATH:$HOME/Android/sdk/tools:$HOME/Android/sdk/platform-tools
 
</source>
 
  
====Indicar que queremos desplegarlo en el dispositivo al ejecutar la aplicación====
+
==== Instalación plugin de jQuery para Eclipse Juno ====
*Cuando ejecutemos la aplicación veremos una pantalla similar a la siguiente:
+
*Instalamos el Marketplace de Eclipse desde Help->Install new Software
:Eclipse->Windows->Open Perspective->DDMS
+
*Ejecutamos Help->Eclipse Marketplace y buscamos JSDT jQuery y lo instalamos
*Aparecerán los emuladores que tengamos corriendo y los dispositivos físicos que estén enchufados a la entrada USB del PC
+
*Configuración:
*En caso de tener un solo dispositivo disponible esta pantalla no aparecerá.
+
:Project Explorer->JavaScript Resources
</div>
+
:Properties (botón derecho) y pulsamos en Add JavaScript Library y seleccionamos jQuery.
<div>
+
===Error en funcionamiento de dispositivos físicos y emuladores===
+
*El error es el siguiente:
+
:[2013-02-22 13:55:20 - adb] Unexpected exception 'Cannot run program "/home/juanda/Android/sdk/platform-tools/adb": java.io.IOException: error=2, No existe el archivo o el directorio' while attempting to get adb version from '/home/juanda/Android/sdk/platform-tools/adb'
+
*Solución, instalar los siguientes paquetes:
+
<source lang="bash">
+
sudo apt-get update
+
sudo apt-get install ia32-libs
+
</source>
+
 
</div>
 
</div>
 
</div>
 
</div>

Última revisión de 12:10 29 may 2013


Entorno de desarrollo en Android

  • JDK (Android se programa en Java)
  • Eclipse
  • Android SDK
  • Android ADT Plugin para Eclipse
  • Android AVD (Android Virtual Device)
  • PhoneGap SDK para Android
  • Menos PhoneGap, el resto se pueden obtener mediante una descarga única
  • Instalación de plugins para desarrollo web con Eclipse

Personalización Eclipse para Web

  • Si tuvieramos instalado el Eclipse de Ubuntu 12.04 (Indigo 3.7) podemos desinstalarlo (no es necesario):
sudo apt-get remove eclipse-platform

Descargamos Eclipse Classic, la versión actual es la 4.2 (Juno).

  • Descomprimimos el fichero en el directorio que nos parezca (/home/usuario) es una buena opción).
  • Si al ejecutarlo nos pide el entorno de java, deberemos instalarlo:
$ sudo apt-get install openjdk-7-jre
  • El paquete openjdk-7-jre contiene tan solo el Java Runtime Environment.
  • Para desarrollar en Java haría falta instalar el paquete openjdk-7-jdk que contiene el Java Development Kit.
  • Creamos el enlace al nuevo Eclipse en nuestro sistema:
juanda@juanda-PC:/usr/bin$ cat eclipse
#!/bin/sh
ECLIPSE=/home/juanda/eclipse/eclipse
exec $ECLIPSE
  • Una vez que podamos ejecutar Eclipse, configuramos un nuevo repositorio de descarga de software, desde el menú 'Help->Install new software'

http://download.aptana.com/studio3/plugin/install

  • Otra opción es instalar plugins específicos (es la que yo prefiero).

Instalación de plugins html y javascript para Eclipse

Web Developer Tools (html, css y javascript)
JavaScript Development Tools

Instalación plugin de jQuery para Eclipse Juno

  • Instalamos el Marketplace de Eclipse desde Help->Install new Software
  • Ejecutamos Help->Eclipse Marketplace y buscamos JSDT jQuery y lo instalamos
  • Configuración:
Project Explorer->JavaScript Resources
Properties (botón derecho) y pulsamos en Add JavaScript Library y seleccionamos jQuery.