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

De WikiEducator
Saltar a: navegación, buscar
(Despliegue de aplicaciones mediante Emulador Android)
Línea 46: Línea 46:
  
 
<div class="slide">
 
<div class="slide">
===Despliegue de aplicaciones mediante Emulador Android===
+
===Personalización Eclipse para Web===
*[http://www.youtube.com/watch?feature=player_embedded&v=k2Ly6O9LlPw Video sobre como crear dispositivos AVD] [http://www.media.formandome.es/android/avd.webm Descargar video]
+
*El bundle viene con Eclipse 3.7 Indigo
*Teclas de acceso rápido:
+
*Debemos instalar los paquetes desde el respositorio: http://download.eclipse.org/releases/indigo/
:Inicio: Tecla Home.
+
*Software necesario:
:F2: Tecla Menú.
+
:Web Development Tools
:Esc: Tecla de volver.
+
 
:F7: Tecla On/Off
+
:Ctrl-F5/Ctrl-F6 óKeyPad +/-: Control de volumen de audio.
+
:Ctrl-F11 ó KeyPad 7: Cambia la orientación entre horizontal y vertical.
+
:Alt-Intro: Visualiza el emulador a pantalla completa.
+
</div>
+
  
<div class="slide">
 
====Optimización del emulador====
 
*Por defecto, el emulador va más lento que un desfile de cojos.
 
*Debemos marcar snapshots para acelerarlo.
 
*Si está disponible (Intel va con algo de retardo a veces), resulta más útil utilizar un emulador con Intel (haz un wipe user data la primera vez que lo uses, sino, ¿se queda colgado?)
 
*Puede ir más rápido también mediante KVM (Kernel-based virtual machine). [https://help.ubuntu.com/community/KVM/Installation Instalación]. [http://developer.android.com/tools/devices/emulator.html Configuración en Eclipse]
 
*Ojo KVM con VmWare y VirtualBox pueden no llevarse del todo bien.
 
</div>
 
  
  
 
<div class="slide">
 
<div class="slide">
 +
 
===Despliegue de aplicaciones a dispositivo físico===
 
===Despliegue de aplicaciones a dispositivo físico===
 
:Desplegar una aplicación a un dispositivo físico es un proceso con dos partes:
 
:Desplegar una aplicación a un dispositivo físico es un proceso con dos partes:

Revisión de 11:17 28 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

Nuevo proyecto Android

Nuevo Proyecto mediante Android
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.
  • Project Name:
Es el nombre del proyecto. Se creará una carpeta con el mismo nombre que contendrá los ficheros del proyecto.
  • Package Name:
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.
  • 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.
  • 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.

Personalización Eclipse para Web

Web Development Tools



Despliegue de aplicaciones a dispositivo físico

Desplegar una aplicación a un dispositivo físico es un proceso con dos partes:

Configuración del dispositivo

(Configuración de dispositivo físico Android para despliegue de aplicaciones de desarrollo)
  • En Android 4 la habilitación del USB Debug está en Ajustes > Opciones de Desarrollo.
  • 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."

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:
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
  • 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:
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
  • Actualizamos el fichero anterior:
juanda@juanda-PC:/etc/udev/rules.d$ cat 51-android.rules 
SUBSYSTEM=="usb", ATTR{id_vendor}=="2207", MODE="0666", GROUP="plugdev"
  • Para comprobar si todo hay ido bien, se puede hacer desde la línea de comandos:
  • Reiniciamos el servicio de udev:
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$
  • Paramos y arrancamos adb (android device bridge) y comprobamos la lista de dispositivos:
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
  • Es útil poner los comandos más habituales dentro del PATH:
juanda@juanda-PC:~$ cat .bashrc|grep -i PATH
PATH=$PATH:$HOME/Android/sdk/tools:$HOME/Android/sdk/platform-tools

Indicar que queremos desplegarlo en el dispositivo al ejecutar la aplicación

  • Cuando ejecutemos la aplicación veremos una pantalla similar a la siguiente:
Eclipse->Windows->Open Perspective->DDMS
  • Aparecerán los emuladores que tengamos corriendo y los dispositivos físicos que estén enchufados a la entrada USB del PC
  • En caso de tener un solo dispositivo disponible esta pantalla no aparecerá.

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:
sudo apt-get update
sudo apt-get install ia32-libs