lunes, 26 de noviembre de 2007

Manos a la obra - Instalación del SDK

Documento original: Installing the SDK

Instalando el SDK

[Título original: Installing the SDK]

A continuación se encuentran las instrucciones necesarias para instalar "Android SDK" y configurar tu entorno de desarrollo.

Utiliza el siguiente link para nevegar a la página desde la cual podrás bajar el software necesario : Descarga de Android SDK.

Requerimiento de sistema operativo y software

[Título original: System and Software Requirements]

Para desarrollar aplicaciones Android usando el código y herramientas del "Android SDK" es necesario que tu computador y entorno de desarrollo cumplan con los siguientes requerimientos.

Sistemas operativos soportados

[Título original: Supported Operating Systems]

  • Windows XP o Vista

  • Linux (probado en Linux Ubuntu Dapper Drake)

  • Mac OS X 10.4.8 o superior (sólo x86)

  • Entornos de desarrollo

    [Título original: Supported Development Environments]

    Eclipse IDE

    [Título original: Eclipse IDE]

  • Eclipse 3.2, 3.3 (Europa)

  • Eclipse JDT Plugin.

  • JDK 5 ó JDK 6 (JRE por sí solo no es suficiente)

  • No es compatible con Gnu Compiler para Java (gcj)

  • Otros entornos de desarrollo

    [Título original: Other development environments or IDEs]

  • JDK 5 o JDK 6 (JRE por sí solo no es suficiente)

  • No es compatible con Gnu Compiler para Java (gcj)

  • Apache Ant 1.6.5 o superior para Linux y Mac

  • NOTA: Si JDK ya está instalado en tu computador, debes verificar que la versión que tienes cumple con los requerimientos descritos. Generalmente, las distribuciones Linux incluyen JDK 1.4 o Gnu Compiler para Java; los cuales no tienen soporte en el entorno de desarrollo de Android.

    Instalando el SDK

    [Título original: Installing the SDK]

    Después de bajar el "SDK", extrae el contenido del archivo ".zip". Por omisión, los archivos del "SDK" serán extraídos en un directorio llamado: android_sdk_<platform>_<release>_<build>. (ejemplo: android_sdk_windows_m3-rc20a). Este directorio contendrá los siguientes subdirectorios: "tools/", "samples/" y "docs/"

    NOTA: Posteriormente, cuando configuremos el "Android plugin" o usemos las "SDK tools", nos referiremos a este directorio como el "SDK directory".

    Opcionalmente, puedes agregar a la variable de entorno "path" el directorio "tools/". Como está mencionado anteriormente, este directorio está ubicado dentro del "SDK directory" y lo llamaremos "SDK tools directory".

  • Linux : edita tu archivo "~/.bash_profile" o "~/.bashrc". Busca la línea que modifica la variable de entorno "PATH" y agrega la ubicación completa del "SDK tools directory". En caso que no exista esa línea, agrega lo siguiente:

    export PATH=${PATH}:<your_sdk_dir>/tools

  • Windows : haz clic en "My Computer" y selecciona "Properties". En la lengüeta "Advanced" presiona el botón "Environment Variables" y en el cuadro que diálogo que se abrirá haz doble clic en "Path" que está en el cuadro "System Variables". Finalmente, agrega la ubicación completa del "SDK tools directory".

  • NOTA: El hecho de agregar el "SDK tools directory" a tu "path" te permitirá ejecutar el "Android Debug Bridge (adb)" y otras herramientas de comandos de línea sin la necesidad de escribir la ubicación completa del "SDK tools directory". Si posteriormente actualizas el "SDK", debes también actualizar el valor de la variable "PATH" con la ubicación de la nueva actualización del "SDK".

    Instalación del Eclipse Plugin - ADT

    [Título original: Installing the Eclipse Plugin - ADT]

    Si actualmente utilizas "Eclipse IDE" como tu entorno de desarrollo Java, te recomiento que instales el "plugin" llamado "Android Development Tools (ADT)", el cual provee soporte y acceso integrado para los proyectos Android y las herramientas del "SDK". El "ADT plugin" incluye una variedad de extensiones que te permitirán crear, ejecutar y depurar aplicaciones Android de una manera fácil y rápida.

    NOTA: Si tu no vas a usar "Eclipse IDE", no es necesario que bajes e instales "ADT plugin".

    A continuación se describe paso a paso las instrucciones necesarias para bajar e instalar el "ADT plugin" y configurar Eclipse para realizar la actualización del plugin desde su sitio de publicación.

  • Inicia Eclipse, luego selecciona "Help > Software Updates > Find and Install...".

  • En el cuadro de diálogo que aparece, selecciona "Search for new features to install" y presiona el botón "Next".

  • Presiona el botón "New Remote Site...".

  • En el cuadro de diálogo, ingresa un nombre para el sitio remoto (por ejemplo: "Android Plugin") e ingresa la siguiente URL:

    https://dl-ssl.google.com/android/eclipse/
    y presiona el botón "OK".

  • Ahora deberías ver "Android Plugin" agregado a la lista de búsqueda y además debería estar seleccionado. Presiona el botón "Finish". Esto abrirá el cuadro de diálogo "Updates".

  • En el cuadro de diálogo "Updates", marca la casilla de selección para "Android Plugin" y presiona el botón "Next".

  • Lee el "ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT" y si estas de acuerdo, entonces selecciona "I accept terms of the license agreement". Presiona el botón "Next".

  • Presiona el botón "Finish". El "ADT Plugin" comenzará a descargarse.

  • El "ADT plugin" no está firmado pero igual puedes aceptar la instalación presionando el botón "Install All".

  • Reinicia Eclipse.

  • Después de reiniciar Eclipse, selecciona "Window > Preferences..." (esto abrirá el cuadro de diálogo "Preferences"). Luego haz clic en el elemento "Android". A continuación actualiza la casilla de texto "SDK Location" con el directorio "SDK directory". Finalmente, presiona el botón "Apply" y el botón "OK".

  • Actualización del ADT Plugin

    [Título original: Updating the ADT Plugin]

    Sigue las siguientes instrucciones para actualizar el "ADT plugin" con la última versión:

  • Selecciona "Help > Software Updates > Find and Install...."

  • Selecciona Search for updates of the currently installed features y presiona Finish.

  • Si hubiese disponible una nueva actualización del ADT, selecciónala e instálala.

  • Otra alternativa es:

  • Selecciona Help > Software Updates > Manage Configuration.

  • Expande el árbol y selecciona el elemento Android Development Tools [versión]

  • Selecciona Scan for Updates bajo Available Tasks.

  • Consejo para descargar ADT

    [Título original: Tips for downloading ADT]

    Si estás teniendo problemas para descargar ADT plugin después de haber seguido los antes antes mencionados, aquí tienes algunas sugerencias:

  • En el paso 4, intenta usar http en vez de https en la URL del sitio remoto.

  • Si tú estás detrás de un firewall (tal como un firewall corporativo), asegúrate que tú tienes apropiadamente configurado tu proxy en Eclipse. En Eclipse 3.3, tú puedes configurar tu información de proxy desde el menú principal "Window > Preferences > General > Network Connections". En Eclipse 3.2, usa "Window > Preferences > Install/Update".

  • Si aún después de lo anterior no logras descargar el ADT plugin a través de Eclipse, sigue los siguientes pasos para descargar e instalar el plugin desde tu computador:

  • Descarga el archivo ZIP del ADT

  • Descomprime el archivo ZIP en su propio directorio

  • Sigue los pasos 1 y 2 de las instrucciones estándard mencionadas anteriormente

  • Presiona "New Local Site..."

  • En el cuadro de diálogo, selecciona el directorio donde descomprimiste el archivo ZIP

  • Sigue los pasos 5 hasta el 11 de las instrucciones estándard mencionadas anteriormente para completar la instalación

  • NOTA: Para actualizar el plugin tendrás que seguir estos mismos pasos en vez de las instrucciones estándard de instalación

    Desarrollando aplicaciones Android con Eclipse

    [Título original: Developing Android Applications on Eclipse]

    El primer paso en el desarrollo de una aplicación Android con "Eclipse IDE" es crear un proyecto Android y luego configurar la ejecución de la aplicación. Después de esto, puedes escribir, ejecutar y depurar tu aplicación.

    La sección a continuación provee instrucciones asumiendo que tu haz instalado el ADT plugin en tu entorno Eclipse. Si tú no lo haz instalado, deberías hacerlo antes de continuar con las siguientes instrucciones. Lee "Actualización del ADT Plugin [falta link]" para más información.

    Creación de un proyecto Android

    [Título original: Creating an Android Project]

    El "ADT plugin" provee un "New Project Wizard" que puede ser utilizado para crear rapidamente un proyecto Eclipse nuevo o uno a partir de código existente. Para crear el proyecto sigue las siguientes instrucciones:

  • Selecciona "File > New > Project"

  • Selecciona Android > Android Project, y presiona Next, esto abrirá el cuadro de diálogo "New Android Project".

  • En la casilla de texto "Project name" ingresa el nombre del proyecto. En el marco llamado "Contents" selecciona Create new project in workspace para así crear un nuevo proyecto. En el marco llamado "Properties", ingresa el nombre del paquete base ("Package name"), el nombre de tu "Activity" ("Activity name") para crear su correspondiente archivo ".java" y un nombre con el cual será conocida tu aplicación ("Application name"). En el marco llamado "Contents" selecciona Create project from existing source para así crear un proyecto basado en código que ya existe. Usa esta opción si tú quieres construir y ejecutar cualquiera de las aplicaciones de ejemplo incluidas en el SDK. Las aplicaciones de ejemplo están ubicadas en el directorio "samples/" del "SDK directory". Navega al directorio que contiene los archivos fuentes y clic OK. Si el directorio contiene un archivo "Android manifest" válido, el "ADT plugin" llenará automáticamente las casillas de texto para "Package name", "Activity name" y "Application name".

  • Presiona Finish.

  • Después de realizado los pasos anteriores podrás ver los siguientes directorios y archivos en la estructura de tu proyecto:

    src/ un directorio que contiene el archivo ".java" para tu "Activity".
    res/ un directorio que contendrá los recursos de tu aplicación.
    AndroidManifest.xml Este es el archivo "Android manifest" de tu proyecto.

    Configurando la activación de una aplicación Android

    [Título original: Creating a Launch Configuration]

    Para poder ejecutar o depurar una aplicación desde Eclipse debes definir una "launch configuration" para ella. Una "launch configuration" indica qué proyecto activar, qué "Activity" iniciar y las opciones que utilizará el emulador, etcétera.

    Para definir una "launch configuration" para tu aplicación sigue las siguientes instrucciones:

  • Selecciona "Run > Open Run Dialog... o Run > Open Debug Dialog...", según corresponda.

  • En la lista de tipos de proyectos ubica "Android Application" y abre su menú de contexto (clic con botón derecho) y selecciona la opción New.

  • En la casilla de texto "Name", reemplaza "New_configuration" con el nombre de tu configuración.

  • En la lengüeta Android, usa el botón "browse"para seleccionar el proyecto y usa la lista "Activity" para seleccionar la "Activity" que será iniciada con la activación del proyecto.

  • En la lengüeta "Emulator", define el tamaño de pantalla y las propiedades de tu red y cualquier otro parámetro adicional para el emulador.

  • En la lengüeta "Common" puedes definir más opciones.

  • Presiona "Apply" para guardar los valores de tu "launch configuration". Luego presiona Run o Close, según corresponda.

  • Ejecución y depurado de una aplicación

    [Título original: Running and Debugging an Application]

    Una vez que has definido el "launch configuration" para tu aplicación, puedes ejecutarla o depurarla. Las siguientes instrucciones explican cómo realizar estas acciones.

  • Desde el menú principal de Eclipse selecciona "Run > Run" o "Run > Debug" , según corresponda.

  • Nota: la "launch configuration" activa es la más reciente "launch configuration" seleccionada en el "Run configuration manager", y por lo tanto no necesariamente corresponde a la aplicación que esté seleccionada en el panel "Eclipse Navigation".

    Para fijar o cambiar la "launch configuration" usa el "Run configuration manager", el cual puedes activar a través de "Run > Open Run Dialog..." o "Run > Open Debug Dialog...."

    La ejecución o depuración de una aplicación realiza los siguientes pasos:

  • Activa el emulador, si es no estuviera activo.

  • Compila el proyecto (si hubo algún cambio desde la última compilación) e instala la aplicación en el emulador.

  • Run : activa la aplicación.

  • Debug : activa la aplicación en modalidad "Wait for debugger", luego abre la "Debug perspective" y anexa el "Eclipse Java debugger" a la aplicación.

  • Desarrollando aplication Android con otros IDEs y herramientas

    [Título original: Developing Android Applications with Other IDEs and Tools]

    Esta sección no la traduciré.

    Depuración una aplicación

    [Título original: Debugging]

    Android provee un amplio conjunto de herramientas que te ayudarán a depurar tus programas:

  • DDMS - Es un programa gráfico que soporta "port forwarding" (esto permite definir "breakpoints" en el código fuente directamente en tu IDE), captura el contenido de la pantalla del emulador, despliega información de "threads" y del "stack" y muchas otras facilidades. Además, es posible ejecutar logcat para recuperar los mensajes de Log de tu aplicación.

  • logcat - Esta herramienta la puedes utilizar para descargar los mensaje de log del sistema. Estos mensajes incluyen información del "stack trace" en el caso que el emulador lance un error, como también los mensajes de Log.

    ...
    I/MemoryDealer( 763): MemoryDealer (this=0x54bda0): Creating 2621440 bytes heap at 0x438db000
    I/Logger( 1858): getView() requesting item number 0
    I/Logger( 1858): getView() requesting item number 1
    I/Logger( 1858): getView() requesting item number 2
    D/ActivityManager( 763): Stopping: HistoryRecord{409dbb20 com.google.android.home.AllApps}
    ...

  • Android Log - Es una clase que provee facilidades para imprimir mensajes de log a hacia un archivo en el emulador. Para leer estos mensaje (en tiempo real) sólo necesitas invocar algunos de los siguientes métodos dentro de tu código: Log.v() (verboso), Log.d() (depurar), Log.i() (información), Log.w() (advertencia) or Log.e (error) . Por ejemplo, Log.i("MiActividad", "MyClass.getView() - La posición : " + posicion). Posteriormente, ejecuta logcat dentro de DDMS.

  • Traceview - Es una aplicación gráfica para leer logs.

  • Eclipse plugin - El "Eclipse Android plugin" incorpora varias de las herramientas para depuración (ADB, DDMS, logcat output y otras funcionalidades).

  • Debug and Test Device Settings - Android expone varias opciones de configuración que permiten recolectar información sobre "CPU usage" y "frame rate".

  • Te recomiendo que también leas la sección "Troubleshooting" para resolver problemas tales como que tu aplicación no es desplegada en el emulador o por qué no se activa.

    Opciones del emulador para depurar y hacer pruebas

    [Título original: Debug and Test Settings on the Device]

    El emulador te permite definir varias opciones que te ayudarán a depurar y testear tus aplicaciones. Para ver las opciones de depuración y pruebas del emulador, selecciona desde la barra de navegación "Dev Tools > Development Settings". Esto abrirá la página "Development Settings".

    En esta página verás las siguientes opciones (entre otras):

  • Debug app : selecciona la aplicación que será depurada. No es necesario que uses está opción para anexar un "debugger", pero al cambiar este valor podrás ver los siguientes efectos: (a) evita que Android lance un error si es que tú haces una pausa o detienes la aplicación en un "breakpoint" por un periodo de tiempo largo cuando estás depurando. (b) te permite seleccionar la opción "Wait for Debugger" para hacer una pausa en la activación de la aplicación hasta que el debugger esté anexado.

  • Wait for debugger : bloquea la aplicación seleccionada hasta que el debugger sea anexado. Esto te permite fijar un breakpoint en onCreate(), el cual es de utilidad al momento de depurar el proceso de inicialización de una "Activity". Cuando seleccionas esta opción, cualquier instancia de la aplicación seleccionada que esté corriendo será destruida. Esta opción sólo puede ser modificada si has seleccionado previamente una aplicación para ser depurada. Para hacer esta misma operación se puede invocar el método waitForDebugger() directamente en tu código.

  • Immediately destroy activities : le comunica al sistema que destruya una "Activity" tan pronto como se detenga (como si Android tuviera que reclamar memoria). Esta opción es de mucha utilidad cuando se requiere probar onFreeze(Bundle) / onCreate(android.os.Bundle) , los cuales de otra forma son difíciles de testear. Esta opción te ayudará a revelar algunos problemas producto que el estado de la aplicación no está siendo guardado correctamente.

  • Show screen updates : muestra por unos instantes un pequeño rectángulo rosado sobre cada área de la pantalla que está siendo pintada. Esta opción es de mucha utilidad para descubrir innecesarios pintados de pantalla.

  • Show CPU usage : despliega "CPU meters" en el borde superior de la pantallaque muestran cuánto de CPU está siendo utilizado. La barra roja muestra el total de CPU usada y la barra verde muestra el tiempo de CPU utilizado en refrescar la pantalla. Nota: no es posible desactivar esta opción una vez que ha sido seleccionada sin reiniciar el emulador.

  • Show screen FPS : despliega el actual "frame rate". Esta opción es de utilidad cuando desarrollar juegos y deseas saber cual es el "frame rate" que posee tu juego. Nota: no es posible desactivar esta opción una vez que ha sido seleccionada sin reiniciar el emulador.

  • Show background : despliegua un patrón de fondo cuando ninguna "activity screens" es visible. Esto generalmente no ocurre, pero puede ocurrir al momento de depurar una aplicación.

  • Estas opciones son guardadas y cargadas por el emulador cada vez que es detenido y reiniciado.

    Consejos de utilidad al depurar una aplicación

    [Título original: Top Debugging Tips]

    ¿Cómo vaciar rápidamente el stack del emulador? : para obtener un vaciado del stack desde el emulador puedes conectarte a través de la "adb shell" y usar "ps" para encontrar el proceso que te interesa y posteriormente ejecutar "kill -3 ", con esto último el "stack trace" aparecerá en el archivo de log.

    ¿Cómo desplegar información de utilidad en la pantalla del emulador?: El emulador (y el dispositivo) puede desplegar información como "CPU usage", para ello activa o desactiva estas opciones en la página "Development Settings".

    ¿Cómo obtener información del estado del sistema desde el emulador (dumpstate)? : Es posible obtener la información del "dumpstate" desde el emulador a través del "Dalvik Debug Monitor Service tool".

    ¿Cómo obtener información del estado de la aplicación desde el emulador (dumpsys)? : Es posible obtener la información del "dumpsys" desde el emulador a través del "Dalvik Debug Monitor Service tool".

    ¿Cómo obtener información de "wireless connectivity"? : Es posible obtener la información de "wireless connectivity" desde el emulador a través del "Dalvik Debug Monitor Service tool". Desde el menú Device selecciona "Dump radio state".

    ¿Cómo registro información de rastreo? : Es posible registrar llamados a métodos y cualquier otro tipo de información de rastreo en una "activity" invocando a android.os.Debug.startMethodTracing().

    ¿Cómo registro "Radio Data"? : Por omisión, información de "radio" no es registrada en el sistema (es un montón de datos). Sin embargo, se puede activar su registro con los siguientes comandos:

    adb shell
    logcat -b radio

    ¿Cómo ejecuto adb? : Android es distribuido con una herramienta llamada "adb", la cual provee facilidades como: sincronización y movimiento de archivos del emulador, forwarding ports, y ejecución de una "UNIX shell" en el emulador.

    ¿Cómo capturo el contenido de la pantalla del emulator? : La herramienta "Dalvik Debug Monitor Server (DDMS)" puede ser utilizada para capturar el contenido de la pantalla del emulador.

    ¿Cuáles son las Helper Classes de Android para depurar? : Android provee las soguientes clases para depurar util.Log y Debug.

    Contrucción e instalación de una aplicación Android

    [Título original: Building and Installing an Android Application]

    Android requiere de algunas herramientas especiales para construir los archivos de recursos y otros componentes de la aplicación. Debido a este razón es que es necesario contar con un entorno de desarrollo especializado para tus aplicaciones.

    El proceso de compilación de Android comprende la compilación de los archivos XML y otros archivos de recursos a los formatos requeridos por la plataforma. Una vez que se compila una aplicación, el resultado es un archivo con extensión ".apk", el cual es un archivo comprimido conteniendo archivos ".dex", archivos de recursos, archivos de datos y otros archivos. Es posible crear manualmente la estructura de un proyecto Android o a partir de algunos archivos fuentes.

    Actualmente, Android no provee soporte para el desarrollo de aplicaciones en código nativo (C/C++).

    El proceso recomendado para desarrollar aplicaciones Android es usar Eclipse junto con el "Android plugin", los cuales proveen soporte para construir, ejecutar y depurar las aplicaciones Android.

    Eliminación de una aplicación Android

    [Título original: Removing an Android Application]

    Para remover una aplicación que tú haz instalado en el emulador es necesario ejecutar"adb" y borrar el archivo ".apk" asociado con la aplicación. Usa la "adb shell" para navegar hasta el directorio "data/app/" y utiliza el comando "rm" para borrar el archivo "your_app.apk".

    Consejos para Eclipse

    [Título original: Eclipse Tips]

    Ejecución de expresiones Java en Eclipse

    [Título original: Executing arbitrary Java expressions in Eclipse]

    Es posible ejecutar código arbitrario en el momento en que Eclise hace una pausa en un "breakpoint". Por ejemplo, tú puedes llamar a métodos static. Si ingresas android.os.Debug.startMethodTracing() esto hará que se active el dmTrace.

    Abre la "code execution window", selecciona Window>Show View>Display desde el menú principal para abrir la "Display window" (un editor de texto). Escribe tu expresión, seleccionar el texto y luego haz clic en el ícono 'J' (o presiona CTRL + SHIFT + D) para ejecutar tu código. El código será ejecutado en el contexto del "thread" seleccioando, el cual debe estar detenido en un "breakpoint" o "single-step point". Si tú suspendes manualmente un "thread", entonces tú tienes un "single-step point", pero esto no funciona si el "thread" está en Object.wait().

    Si tú tienes detenida la aplicación en un "breakpoint", tú puedes seleccionar y ejecutar cualquier pieza de código con sólo presionar CTRL + SHIFT + D.

    Tú puedes seleccionar un bloque de texto dentro de un contexto presionando ALT +SHIFT + UP ARROW o DOWN ARROW.

    Aquí hay unos ejemplos de la respuesta de Eclipse al momento de evaluar expresiones:

    Entrada: zip (java.lang.String)
    Resultado: /work/device/out/linux-x86-debug/android/app/android_sdk.zip

    Entrada: zip.endsWith(".zip")
    Resultado: (boolean) true

    Entrada: zip.endsWith(".jar")
    Resultado: (boolean) false

    También es posible ejecutar código aún cuando no se está depurando usando la ventana "scrapbook". Más información en la documentación de Eclipse ("scrapbook").

    Corriendo DDMS manualmente

    [Título original: Running DDMS Manually]

    A pesar que se recomienda depurar utilizando el "ADT plugin", también es posible hacerlo manualmente ejecutando "DDMS" y configurando Eclipse para depurar conectándose al puerto 8700.

    3 comentarios:

    Anónimo dijo...

    me gusta la pagina porque todo esta muy bien explicado i claro! Gracias
    Ramon

    Antonio dijo...

    Muy útil. Gracias.

    EstebanZeuS dijo...

    Gracias, muy amable al compartir conocimientos, algun dia cuando tenga mas tiempo hare lo mismo que tu. por ahora Gracias