SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”


Creando AVDs (Android Virtual Devices)
Los dispositivos virtuales Android (AVDs) son configuraciones de diversas opciones del emulador que te
permiten un mejor modelo de un dispositivo real.

Cada AVD se compone de:




Es necesario crear un AVD para ejecutar cualquier
aplicación en el emulador de Android.

Cada AVD es un dispositivo virtual completamente
independiente, con sus propias opciones de hardware,
imagen de sistema y almacenamiento de datos.

Se crean diferentes configuraciones de AVD para
modelar diferentes ambientes y condiciones en los
dispositivos.


                                                                                                    1
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

Para poder crear un AVD, nos dirigimos al menú principal y desplegamos el menú “Window”, elegimos la
opción denominada “Android SDK and AVD Manager”




En la pantalla que aparece, seleccionamos de las opciones que se localizan a la izquierda, la que lleva por
nombre “Virtual Devices” y seguidamente hacemos clic en el botón “NEW”, esto se realiza con el objetivo
de crear un nuevo AVD. Como se puede notar hay botones para llevar a cabo acciones como la eliminación
de un AVD, edición, visualización de características, entre otras.




                                                                                                         2
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

En la opción de “Create new AVD”, podemos configurar completamente nuestro dispositivo virtual.
Esencialmente basta con asignar un nombre, un target (versión de la API) y un tamaño; con estas
características podemos trabajar cómodamente en nuestras primeras aplicaciones.




Al hacer clic en “Create AVD”, nos aparece un mensaje de confirmación de la acción que acabamos de
realizar. Posteriormente podemos observar que nuestro dispositivo se encuentra en la ventana principal
del “Android SDK and AVD Manager”.




                                                                                                    3
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”


Creando la primera aplicación “Hola Mundo”
Una vez que hemos creado AVDs, es momento de adentrarnos de lleno en el desarrollo de nuestra primera
aplicación.

Iniciamos abriendo nuestro entorno de desarrollo “Eclipse”, para ello nos dirigimos al lugar donde aloja; en
nuestro caso es en el disco local C.




                                                                                                          4
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

Indicamos el espacio de trabajo (Workspace), que será el lugar donde se almacenarán nuestros proyectos, y
hacemos clic en el botón de “OK”.




Tras haber elegido el espacio de trabajo, aparece la pantalla principal.




Nos situamos en la parte superior y desplegamos el menú FILE → NEW → PROJECT, hacemos clic en esta
última opción.




                                                                                                       5
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

En la pantalla que se muestra, misma que lleva por título “NEW PROJECT”, elegimos la opción de “Android
Project” y hacemos clic en el botón “NEXT”. Es importante hacer notar que también está la opción de
“Android Test Project”… completar….




No selecciones la opción de “Java Project“; a pesar de que las aplicaciones de Android están escritas en
Java, y que estarás haciendo todos tus proyectos en este lenguaje, esta opción crea una aplicación estándar
de Java; mientras que un “Android Project” te permite crear aplicaciones específicas para Android.
Si no aparece la opción para Android en la pantalla de “NEW PROJECT”, esto indica que el plugin de Android
para Eclipse no está completo o se encuentra instalado de manera inadecuada; para ello debes de revisar
este que se encuentre bien instalado antes de continuar.




                                                                                                         6
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

Una vez que hemos elegido el tipo de proyecto que deseamos, nos aparece una pantalla como la que se
muestra en la imagen; esta pantalla nos permitirá definir las características de nuestro proyecto.




El campo “Project Name” nos permitirá dar nombre la carpeta donde se creará el proyecto.




En “Contents”, selecciona “Create new project in workspace”, además indica que la ubicación del proyecto
será en el “workspace” que especificaste cuando se abrió Eclipse.




                                                                                                      7
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                             Unidad 6 “Primera aplicación en Android”




En “Build Taget” especificas la versión de la API de Android con la que se construirá la aplicación.




En “Properties” debes de llenar los campos de la siguiente manera:

          “Application name”, el cual es un título en lenguaje natural para la aplicación, además de ser el
           nombre que aparecerá en el dispositivo Android.
          “Package name”, el cual deberá estar compuesto por lo menos dos identificadores separados entre
           sí por un punto; por ejemplo: “Android.Hola”, “com.Android.Hola”
          Debes seleccionar “Create Activity” (este atributo es opcional, aunque una actividad casi siempre se
           utiliza como base para una aplicación) y colocar un nombre para la clase de la actividad principal.
           En “Min SDK Version”, se debe escribir un entero que especifica el nivel mínimo de API requerido
           para ejecutar la aplicación (generalmente este se coloca de manera automática al seleccionar en
           “Build Target” la versión de la API con la cual trabajarás). En la siguiente tabla se especifica “Min
           SDK Version” para cada versión de la plataforma Android.

                                           Versión de la plataforma    Min SDK Version
                                                  Android 2.1                7
                                                 Android 2.0.1               6
                                                  Android 2.0                5
                                                  Android 1.6                4
                                                  Android 1.5                3
                                                  Android 1.1                2
                                                  Android 1.0                1

                                                                                                              8
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”




Para nuestros fines, colocamos los siguientes datos del proyecto “HolaMundo” seguidamente hacemos clic
en el botón “NEXT” y posteriormente en “FINISH”.




                                                                                                    9
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

Si el botón “FINISH” no está disponible, es posible que hayamos cometido un error en uno de los campos
en el área de “Properties”. Para asegurarse de que los campos de propiedades están debidamente
cumplimentados, Eclipse no te permite terminar el proceso si alguno de los datos que has introducido
puede causar problemas. Para ello debes de volver atrás y asegurarte de que todos los campos contienen
datos correctos.




Examinando las carpetas y archivos creados.
Ahora que ya hemos creado nuestro primer proyecto, podemos observar que aparecen una serie de
carpetas y archivos; mismos que nos permiten trabajar de manera cómoda en el desarrollo de nuestras
aplicaciones; todos estos archivos y carpetas se crean de manera automática.




                   Carpetas y archivos creados por el Wizard para nuestro proyecto “HolaMundo”




 Todas las carpetas y archivos creados por el wizard los podemos localizar en la capeta que se localiza en el
                          “Workspace” que especificamos cuando abrimos Eclipse.
                                                                                                           10
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”


                                                                                                                  ¿ES
       NOMBRE                         TIPO                          DESCRIPCIÓN
                                                                                                            INDISPENSABLE?
                                                 Es el archivo descriptor de la aplicación. Este archivo
AndroidManifest.xml
                                               define las actividades, proveedores de contenido,
                                                 servicios y recibidores de intentos que conforman una
                                                 aplicación.
                                                                                                                
            src                      Contiene todos los códigos fuente de la aplicación.                      
          assets                     Una colecciónsearbitraria devacío. y archivos.
                                       Inicialmente encuentra
                                                                    carpetas
                                                                                                                
            res                      Contiene los recursos demenu, values, xml, ycomo
                                       drawable, anim, layout,
                                                               la aplicación, tales
                                                                                    raw.                        
                                                                                                                
                                                 Incluye los archivos Java generados por el ADT, tales
            gen                                como el R.java y las interfaces creadas con base en
                                                 archivos AIDL (Android Interface Definition Language)


     res/drawable                    Almacena utilizados porolaarchivos descriptores de
                                       imágenes
                                                las imágenes
                                                                  aplicación.                                   
        res/anim                     En su interior animaciones que utiliza la aplicación.
                                       describen las
                                                      se encuentran los archivos XML que
                                                                                                                
                                                                                                                
                                                 Es una carpeta que contiene vistas de la aplicación
       res/layout                              (views). Debes crear vistas de la aplicación mediante el
                                                 uso de los descriptores XML en lugar de codificarlos.


        res/menu                     Aloja los archivos descriptores XML para los menús de
                                       la aplicación.                                                           
                                                                                                                
                                                 Contiene otros recursos utilizados por la aplicación.
       res/values                              Todos los recursos en la carpeta también se definen
                                                 con descriptores XML; por ejemplo: estilos y colores.


         res/xml                     Una carpeta utiliza la aplicación. XML adicionales,
                                       mismos que
                                                   que contiene archivos
                                                                                                                
         res/raw                     Almacena datos adicionales,por la aplicación. XML,
                                       mismos que son requeridos
                                                                   posiblemente no
                                                                                                                
           tests                     Incluye la suite de pruebas para el proyecto.                            
                                                 Archivo que posee la configuración del proyecto (por


                                                                                                              
                                                 ejemplo el Build Target), nunca debes de editarlo
  default.properties                             manualmente, para editar las propiedades del
                                                 proyecto, hay que oprimir el botón derecho de la
                                                 carpeta del proyecto y seleccionar “Properties”.




                                                                                                                     11
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”




                                             
                                                 Carpeta que Incluye el archivo android.jar en el que se
 < VersiónAndroid >
    (Android 2.1)                               basará la aplicación. Esto se determina por el Build
                                                 Target que hayas elegido en el Asistente para nuevo
                                                 proyecto.
                                                                                                                
                                                 Archivo que se localiza en la carpeta “gen”. El archivo
                                                 "R.java" es un índice a todos los recursos definidos en
                                                 el proyecto. Esta clase sirve de abreviación al


                                                                                                              
                                                 momento de referenciar cualquier recurso que hayas
          R.java                                 definido en tu proyecto. Esta característica resulta muy
                                                 poderosa en combinación con las facilidades de
                                                 autocompletación de Eclipse, porque te permite
                                                 rápidamente e interactivamente localizar las
                                                 referencias que estás buscando.
                                                 Archivo que se encuentra en la carpeta “src” y cuya
                                                 designación coincide con el nombre de la actividad que


                                                                                                              
                                                 definiste al crear un nuevo proyecto Android. A
 <tuActividad>.java
                                                 diferencia de la mayoría de los archivos que hemos
 (HolaMundo.java)                                examinado en esta tabla, este archivo es
                                                 completamente editable, de hecho, hará muy poco
                                                 para ti, si no lo modificas con tu código.

             lib                               Contiene archivos JAR correspondiente a cuestiones de
                                                 arquitectura de tres capas que la aplicación requiere.          
Cuando se compila el proyecto (a través línea de comandos o en una IDE), los resultados van en el
directorio bin / en la raíz del proyecto, teniendo las siguientes carpetas:


                                                                                                                  ¿ES
       NOMBRE                         TIPO                          DESCRIPCIÓN
                                                                                                            INDISPENSABLE?

            bin                      En sido compilada. almacena la aplicación una vez que
                                       ha
                                          esta carpeta se
                                                                                                                
       bin/classes                   Almacena las clases Java que han sido compiladas
                                       como parte del proyecto en curso.                                        
    bin/clases.dex                   Aloja el ejecutable clases que integran elresultado de la
                                       compilación de las
                                                           que se genera como
                                                                                  proyecto.                     
                                                                                                                
                                                 Contiene los recursos de la aplicación, empaquetados
   bin/yourapp.ap_                             como un archivo ZIP (donde yourapp es el nombre de
                                                 la aplicación)
     bin/yourapp-
     debug.apk or
     bin/yourapp-
     unsigned.apk
                                     En su interior se encuentra nombre de la aplicación)
                                       Android (donde yourapp es el
                                                                    la aplicación actual de
                                                                                                                
Un archivo con extensión .apk es un paquete para el sistema operativo Android. Este formato es una
variante del formato JAR de Java y se usa para distribuir e instalar componentes empaquetados para la


                                                                                                                     12
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

plataforma Android para móviles. Un archivo .apk normalmente contiene lo siguiente:
AndroidManifest.xml, classes.dex, res (carpeta), entre otros archivos dependiendo de la aplicación.
AndroidManifest.xml
"AndroidManifest.xml" es el archivo de control que le dice al sistema qué es lo que debe hacer con los
componentes de más alto nivel que se han creado (específicamente "Actividades", "Servicios", "Receptores
de Intentos" y "Proveedores de Contenidos").




                                                                                                     13
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”




Estructura del AndroidManifest.xml

El siguiente diagrama muestra la estructura general del archivo de manifiesto así como los elementos que
pueda contener. Cada elemento, junto con todos sus atributos, está documentado en su totalidad en la
página web http://developer.android.com/guide/topics/manifest/manifest-intro.html.


   <?xml version="1.0" encoding="utf-8"?>

   <manifest>

           <uses-permission />
           <permission />
           <permission-tree />
           <permission-group />
           <instrumentation />
           <uses-sdk />
           <uses-configuration />
           <uses-feature />
           <supports-screens />

           <application>

                  <activity>
                      <intent-filter>
                          <action />
                          <category />
                          <data />
                      </intent-filter>
                      <meta-data />
                  </activity>

                  <activity-alias>
                      <intent-filter> . . . </intent-filter>
                      <meta-data />
                  </activity-alias>

                  <service>
                      <intent-filter> . . . </intent-filter>
                      <meta-data/>
                  </service>

                  <receiver>
                      <intent-filter> . . . </intent-filter>
                      <meta-data />
                  </receiver>

                  <provider>
                      <grant-uri-permission />
                      <path-permission />
                      <meta-data />
                  </provider>

                  <uses-library />

           </application>


                                                                                                     14
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”


   </manifest>


Consideraciones importantes previas a la ejecución del proyecto.
Es importante hacer notar una vez que tenemos nuestro proyecto creado el hecho de que debemos tener
en cuenta ciertas consideraciones a los archivos generados por default.

main.xml

El directorio “layout” tiene un archivo XML “main.xml”, que es referenciado por la aplicación en la
construcción de la interfaz que ésta maneja. En la mayoría de las aplicaciones de este libro, es necesario
editar el archivo main.xml incluido en el directorio mencionado.

De entrada nos situamos en la carpeta “layout” y posteriormente abrimos el archivo “main.xml” utilizando
el editor de texto “Text Editor”. Es importante hacer notar que no debemos de abrir el archivo con el “XML
Editor” ya que esto nos complicaría la modificación del archivo.




                                                                                                       15
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”




Una vez que tenemos abierto el archivo, debemos de eliminar las líneas que se muestran en la siguiente
figura.

Versión que se tiene por default.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/HolaMundo"
    />
</LinearLayout>



Versión corregida y lista para cualquier proyecto.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
</LinearLayout>



R.java

El archivo R.java es un archivo generado automáticamente que se agrega al proyecto gracias al plugin de Android. Este
archivo contiene referencias a los esquemas “drawable” y ”layout” así como a los elementos dentro de los directorios,
como es el caso con las cadenas (strings) y los iconos. Este archivo no debe de ser modificado por ningún motivo, ya
que se vería afectado el desarrollo adecuado del proyecto.

/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
                                                                                                                  16
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

package testPackage.HelloWorldText;

          public final class R {
          public static final class attr {
          }

          public static final class drawable {
          public static final int icon=0x7f020000;
          }

          public static final class layout {
          public static final int main=0x7f030000;
          }

          public static final class string {
          public static final int app_name=0x7f040000;
          }

}

<tuActividad>.java

El archivo en el directorio “src” en el que invertirás más tiempo es el <tuActividad>.java (en nuestro caso es
HolaMundoActivity.java), que es creado por el plugin de Android y cuyo nombre coincide con el nombre de
la actividad que hemos especificado en “Android New Project”.
A diferencia de la mayoría de los archivos que hemos examinado en esta sección, este archivo es
completamente editable, y será el lugar que alojará el código principal de tu aplicación.

Ahora procederemos a editar dicho archivo, con el objetivo de poder crear nuestra aplicación “Hola
Mundo”.

Archivo que se crea por default.

package ejemplo.hola;

import android.app.Activity;
import android.os.Bundle;

public class HolaMundoActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}


Archivo modificado para desplegar en la pantalla un mensaje “Hola Mundo!!!”.

package ejemplo.hola;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HolaMundoActivity extends Activity {
    /** Called when the activity is first created. */
                                                                                                           17
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);

             TextView HolaMundoTextView = new TextView(this);
             HolaMundoTextView.setText("Hola Mundo!!!");
             setContentView(HolaMundoTextView);
      }
}



Es momento de dar una explicación amplia de las líneas de código que conforman el archivo anterior. Para
ello nos abocamos a analizarlo detenidamente en la siguiente página.



Una vez que hemos terminado nuestro código, procedemos a ejecutarlo haciendo clic en el botón “play”
que se muestra en la figura.




A continuación se presentan las imágenes correspondientes a la ejecución del proyecto. Es importante
mencionar que la primera vez que abrimos el AVD, éste tarda un par de minutos en cargarse
completamente. A continuación se presentan las imágenes de la ejecución del proyecto en cuestión.




                                                                                                       18
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”




                                                                                      19
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

Para poder dar un seguimiento a la correcta ejecución del proyecto, podemos observar la parte inferior de
la pantalla de Eclipse en el apartado de “Console” y allí encontraremos un listado de las situaciones que se
van presentando.




A continuación se presenta una modificación al archivo HolaMundoActivity.java, cambiando el mensaje que
desplegamos en la pantalla.

package ejemplo.hola;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HolaMundoActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

             TextView HolaMundoTextView = new TextView(this);
             HolaMundoTextView.setText("Android de la A a la Z !!!");
             setContentView(HolaMundoTextView);
      }
}




                                                                                                         20
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”




   Mensaje que nos indica que el código ha sido modificado y que debemos guardar los cambios antes de ejecutar la
                                                     aplicación.




                                   Mensaje desplegado en la pantalla del emulador de Android.




Hola Mundo mejorado
Después de instalar nuestro entorno de desarrollo para Android y comentar la estructura básica de un
proyecto y los diferentes componentes software que podemos utilizar ya es hora de empezar a escribir algo
de código. Y como siempre lo mejor es empezar por escribir una aplicación sencilla.

En el capitulo previo elaboramos el clásico hola mundo, ahora presentamos una versión más sofisticada del
mismo.

La aplicación constará de dos pantallas, por un lado la pantalla principal que solicitará un nombre al usuario
y una segunda pantalla en la que se mostrará un mensaje personalizado para el usuario.




                                                                                                                21
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”




En primer lugar vamos a crear un nuevo proyecto Android tal como vimos al final del apartado anterior.
Llamaremos al proyecto “HolaUsuario”, indicaremos como target por ejemplo “Android 1.6″, daremos un
nombre a la aplicación e indicaremos que se cree una actividad llamada “HolaUsuario”.




Como ya vimos esto nos crea la estructura de carpetas del proyecto y todos los archivos necesarios de un
Hola Mundo básico, es decir, una sola pantalla donde se muestra únicamente un mensaje fijo.

Lo primero que vamos a hacer es diseñar nuestra pantalla principal modificando la que Eclipse nos ha
creado por defecto.

¿Dónde y cómo se define cada pantalla de la aplicación?

En Android, el diseño y la lógica de una pantalla están separados en dos archivos distintos.


                                                                                                     22
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

          En el archivo /res/layout/main.xml tendremos el diseño visual de la pantalla definido como archivo
           XML.
          En el archivo /src/paquetejava/HolaUsuario.java, encontraremos el código java que determina la
           lógica de la pantalla.

Vamos a modificar en primer lugar el aspecto de la ventana principal de la aplicación añadiendo los
controles (views) que vemos en la primera captura de pantalla. Para ello, vamos a sustituir el contenido del
archivo main.xml por el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

      <TextView android:text="@string/nombre"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content" />

      <EditText android:id="@+id/TxtNombre"
          android:layout_height="wrap_content"
          android:layout_width="fill_parent" />

      <Button android:id="@+id/BtnHola"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="@string/hola" />

</LinearLayout>


En este XML se definen los elementos visuales que componen la interfaz de nuestra pantalla principal y se
especifican todas sus propiedades.

Lo primero que nos encontramos es un elemento LinearLayout. Los layout son elementos no visibles que
determinan cómo se van a distribuir en el espacio los controles que incluyamos en su interior. Los
programadores java, y más concretamente de Swing, conocerán este concepto perfectamente. En este
caso, un LinearLayout distribuirá los controles uno tras otro y en la orientación que indique su propiedad
android:orientation.

Dentro del layout hemos incluido 3 controles: una etiqueta (TextView), un cuadro de texto (EditText), y un
botón (Button). En todos ellos hemos establecido las siguientes propiedades:

          android:id. ID del control, con el que podremos identificarlo más tarde en nuestro código vemos
           que el identificador lo escribimos precedido de “@+id/”. Esto tendrá como efecto que al compilarse
           el proyecto se genere automáticamente una nueva constante en la clase R para dicho control.
          android:text. Texto del control. El texto de un control se puede especificar directamente o bien
           utilizar alguna de las cadenas de texto definidas en los recursos del proyecto (archivo strings.xml),
           en cuyo caso indicaremos su identificador precedido del prefijo “@string/”.


                                                                                                             23
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

          android:layout_height y android:layout_width. Dimensiones del control con respecto al layout
           que lo contiene. Esta propiedad tomará normalmente los valores “wrap_content” para indicar que
           las dimensiones del control se ajustarán al contenido del mismo, o bien “fill_parent” para indicar
           que el ancho o el alto del control se ajustará al ancho o alto del layout contenedor
           respectivamente.

Con esto ya tenemos definida la presentación visual de nuestra ventana principal de la aplicación. De igual
forma definiremos la interfaz de la segunda pantalla, creando un nuevo archivo llamado frmmensaje.xml, y
añadiendo esta vez tan solo una etiqueta (TextView) para mostrar el mensaje personalizado al usuario.
Veamos cómo quedaría nuestra segunda pantalla:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">

<TextView android:id="@+id/TxtMensaje"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:text="$mensaje"></TextView>

</LinearLayout>


Una vez definida la interfaz de las pantallas de la aplicación deberemos implementar la lógica de la misma.
Como ya hemos comentado, la lógica de la aplicación se definirá en archivos java independientes.

Para la pantalla principal ya tenemos creado un archivo por defecto llamado HolaUsuario.java. Empecemos
por comentar su código por defecto:

public class HolaUsuario extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}


Como ya vimos anteriormente, las diferentes pantallas de una aplicación Android se definen mediante
objetos de tipo Activity. Por tanto, lo primero que encontramos en nuestro archivo java es la definición de
una nueva clase HolaUsuario que extiende a Activity.

El único método que sobrescribiremos de esta clase será el método OnCreate, llamado cuando se crea por
primera vez la actividad. En este método lo único que encontramos en principio, además de la llamada a su
implementación en la clase padre, es la llamada al método setContentView(R.layout.main). Con esta
llamada estaremos indicando a Android que debe establecer como interfaz gráfica de esta actividad la
definida en el recurso R.layout.main, que no es más que la que hemos especificado en el archivo
/res/layout/main.xml. Una vez más vemos la utilidad de las diferentes constantes de recursos creadas
automáticamente en la clase R al compilar el proyecto.
                                                                                                          24
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

En principio vamos a crear una nueva actividad para la segunda pantalla de la aplicación análoga a ésta
primera, para lo que crearemos una nueva clase FrmMensaje que extienda de Activity y que implemente el
método onCreate indicando que utilice la interfaz definida en R.layout.frmmensaje.

public class FrmMensaje extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.frmmensaje);
    }
}


Como vemos, el código incluido por defecto en estas clases lo único que hace es generar la interfaz de la
actividad. A partir de aquí nosotros tendremos que incluir el resto de la lógica de la aplicación.

Vamos a empezar con la actividad principal HolaUsuario, obteniendo una referencia a los diferentes
controles de la interfaz que necesitemos manipular, en nuestro caso sólo el cuadro de texto y el botón.
Para ello utilizaremos el método findViewById() indicando el ID de cada control, definidos como siempre en
la clase R:

final EditText txtNombre = (EditText)findViewById(R.id.TxtNombre);
final Button btnHola = (Button)findViewById(R.id.BtnHola);


Una vez tenemos acceso a los diferentes controles, ya sólo nos queda implementar las acciones a tomar
cuando pulsemos el botón de la pantalla. Para ello implementaremos el evento onClick de dicho botón,
veamos cómo:

btnHola.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        Intent intent = new Intent(HolaUsuario.this, FrmMensaje.class);

             Bundle bundle = new Bundle();
             bundle.putString("NOMBRE", txtNombre.getText().toString());
             intent.putExtras(bundle);

             startActivity(intent);
      }
});


Como ya indicamos en páginas previas, la comunicación entre los distintos componentes y aplicaciones en
Android se realiza mediante intents, por lo que el primer paso será crear un objeto de este tipo.

Existen tipos diversos del constructor de la clase Intent, cada una de ellas dirigida a unas determinadas
acciones, pero en nuestro caso particular vamos a utilizar el intent para llamar a una actividad desde otra
de la misma aplicación, para lo que pasaremos al constructor una referencia a la propia actividad llamadora
(HolaUsuario.this), y la clase de la actividad llamada (FrmMensaje.class).




                                                                                                        25
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

Si quisiéramos tan sólo mostrar una nueva actividad ya tan sólo nos quedaría llamar a startActivity()
pasándole como parámetro el intent creado. Pero en nuestro ejemplo queremos también pasarle cierta
información a la actividad, concretamente el nombre que introduzca el usuario en el cuadro de texto. Para
hacer esto vamos a crear un objeto Bundle, que puede contener una lista de pares clave-valor con toda la
información a pasar entre las actividades. En nuestro caso sólo añadiremos un dato de tipo String mediante
el método putString(clave, valor). Tras esto añadiremos la información al intent mediante el método
putExtras(bundle).

Finalizada la actividad principal de la aplicación pasamos ya a la secundaria. Comenzaremos de forma
análoga a la anterior, ampliando el método onCreate obteniendo las referencias a los objetos que
manipularemos, esta vez sólo la etiqueta de texto. Tras esto viene lo más interesante, debemos recuperar
la información pasada desde la actividad principal y asignarla como texto de la etiqueta. Para ello
accederemos en primer lugar al intent que ha originado la actividad actual mediante el método getIntent()
y recuperaremos su información asociada (objeto Bundle) mediante el método getExtras().

Hecho esto tan sólo nos queda construir el texto de la etiqueta mediante su método setText(texto) y
recuperando el valor de nuestra clave almacenada en el objeto Bundle mediante getString(clave).

public class FrmMensaje extends Activity {

      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.frmmensaje);

             TextView txtMensaje = (TextView)findViewById(R.id.TxtMensaje);

             Bundle bundle = getIntent().getExtras();

             txtMensaje.setText("Hola " + bundle.getString("NOMBRE"));
      }
}


Con esto hemos concluido la lógica de las dos pantallas de nuestra aplicación y tan sólo nos queda un paso
importante para finalizar nuestro desarrollo. Como indicamos en uno de los artículos anteriores, cualquier
aplicación Android utiliza un archivo especial en formato XML (AndroidManifest.xml) para definir, entre
otras cosas, los diferentes elementos que la componen. Por tanto, todas las actividades de nuestra
aplicación deben quedar convenientemente recogidas en este archivo.

La actividad principal ya debe aparecer puesto que se creó de forma automática al crear el nuevo proyecto
Android, por lo que debemos añadir tan sólo la segunda. Para este ejemplo nos limitaremos a incluir la
actividad en el XML, más adelante veremos que opciones adicionales podemos especificar.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="net.sgoliver"
      android:versionCode="1"
      android:versionName="1.0">

      <application android:icon="@drawable/icon" android:label="@string/app_name">
          <activity android:name=".HolaUsuario"
                                                                                                       26
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2
Android de la A a la Z
                                           Unidad 6 “Primera aplicación en Android”

                       android:label="@string/app_name">
                 <intent-filter>
                     <action android:name="android.intent.action.MAIN" />
                     <category android:name="android.intent.category.LAUNCHER" />
                 </intent-filter>
             </activity>

           <activity android:name=".FrmMensaje"></activity>
        </application>

      <uses-sdk android:minSdkVersion="4" />

</manifest>


Una vez llegado aquí, si todo ha ido bien, deberíamos poder ejecutar el proyecto sin errores y probar
nuestra aplicación en el emulador.




                                                                                                  27
Elaborado por: J. Ulises González Medina
android.unam@gmail.com
Noviembre 2011
Versión 1.2

Contenu connexe

Tendances

Fundamentos del Desarrollo de Aplicaciones para Android
Fundamentos del Desarrollo de Aplicaciones para AndroidFundamentos del Desarrollo de Aplicaciones para Android
Fundamentos del Desarrollo de Aplicaciones para AndroidSantiago Márquez Solís
 
Tutorial Android 1
Tutorial Android 1Tutorial Android 1
Tutorial Android 1newimagenio
 
Introducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entenderIntroducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entenderjezabelink
 
R esume libro el gran libro de android
R esume libro el gran libro de androidR esume libro el gran libro de android
R esume libro el gran libro de androidwiliam lliulli herrera
 
arquitectura android y tecnologia mpls
arquitectura android y tecnologia mplsarquitectura android y tecnologia mpls
arquitectura android y tecnologia mplsjose-24
 
Android de la A a la Z PARTE 2 de 3 ulises gonzalez
Android de la A a la Z  PARTE 2 de 3 ulises gonzalezAndroid de la A a la Z  PARTE 2 de 3 ulises gonzalez
Android de la A a la Z PARTE 2 de 3 ulises gonzalezAndroid UNAM
 
Componentes necesarios de android docx
Componentes necesarios de android  docxComponentes necesarios de android  docx
Componentes necesarios de android docxgrachika
 
02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7t02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7tGabo Mizhel
 
Curso de Android 4.x Unidad 02 SDK y AVD Manager
Curso de Android 4.x Unidad 02 SDK y AVD ManagerCurso de Android 4.x Unidad 02 SDK y AVD Manager
Curso de Android 4.x Unidad 02 SDK y AVD ManagerDavid Vaquero
 
Fundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para AndroidFundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para Androidandresuarezz26
 
Desarrollo android - 2 - arquitectura del sistema
Desarrollo android   - 2 - arquitectura del sistemaDesarrollo android   - 2 - arquitectura del sistema
Desarrollo android - 2 - arquitectura del sistemaEmilio Aviles Avila
 

Tendances (20)

Conceptos y Generalidades de Android
Conceptos y Generalidades de AndroidConceptos y Generalidades de Android
Conceptos y Generalidades de Android
 
Curso desarrollo en android
Curso desarrollo en androidCurso desarrollo en android
Curso desarrollo en android
 
Fundamentos del Desarrollo de Aplicaciones para Android
Fundamentos del Desarrollo de Aplicaciones para AndroidFundamentos del Desarrollo de Aplicaciones para Android
Fundamentos del Desarrollo de Aplicaciones para Android
 
Tutorial Android 1
Tutorial Android 1Tutorial Android 1
Tutorial Android 1
 
Introducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entenderIntroducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entender
 
R esume libro el gran libro de android
R esume libro el gran libro de androidR esume libro el gran libro de android
R esume libro el gran libro de android
 
Entornos-de-Desarrollo-Eclipse-y-Android-SDK
Entornos-de-Desarrollo-Eclipse-y-Android-SDKEntornos-de-Desarrollo-Eclipse-y-Android-SDK
Entornos-de-Desarrollo-Eclipse-y-Android-SDK
 
arquitectura android y tecnologia mpls
arquitectura android y tecnologia mplsarquitectura android y tecnologia mpls
arquitectura android y tecnologia mpls
 
Android studio
Android studioAndroid studio
Android studio
 
Iniciación a Android
Iniciación a AndroidIniciación a Android
Iniciación a Android
 
Curso Android 2021
Curso Android  2021Curso Android  2021
Curso Android 2021
 
Android de la A a la Z PARTE 2 de 3 ulises gonzalez
Android de la A a la Z  PARTE 2 de 3 ulises gonzalezAndroid de la A a la Z  PARTE 2 de 3 ulises gonzalez
Android de la A a la Z PARTE 2 de 3 ulises gonzalez
 
Componentes necesarios de android docx
Componentes necesarios de android  docxComponentes necesarios de android  docx
Componentes necesarios de android docx
 
Taller de Android
Taller de AndroidTaller de Android
Taller de Android
 
02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7t02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7t
 
Curso de Android 4.x Unidad 02 SDK y AVD Manager
Curso de Android 4.x Unidad 02 SDK y AVD ManagerCurso de Android 4.x Unidad 02 SDK y AVD Manager
Curso de Android 4.x Unidad 02 SDK y AVD Manager
 
Entendiendo android
Entendiendo androidEntendiendo android
Entendiendo android
 
Fundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para AndroidFundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para Android
 
Desarrollo android - 2 - arquitectura del sistema
Desarrollo android   - 2 - arquitectura del sistemaDesarrollo android   - 2 - arquitectura del sistema
Desarrollo android - 2 - arquitectura del sistema
 
Documento de android
Documento de androidDocumento de android
Documento de android
 

Similaire à "Android de la A a la Z" -- Unidad 6

Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6Jorge Ulises
 
Breve introducción a Android Apps
Breve introducción a Android AppsBreve introducción a Android Apps
Breve introducción a Android AppsOscar Salguero
 
Herramientas para el desarrollo en plataformas móviles web
Herramientas para el desarrollo en plataformas móviles   webHerramientas para el desarrollo en plataformas móviles   web
Herramientas para el desarrollo en plataformas móviles webjoycesita
 
Guía básica de programación en android
Guía básica de programación en androidGuía básica de programación en android
Guía básica de programación en androidant09_sain
 
Tutorial Eclipse
Tutorial Eclipse Tutorial Eclipse
Tutorial Eclipse 15l04l10
 
Android 24 01 getting started with android
Android 24 01 getting started with androidAndroid 24 01 getting started with android
Android 24 01 getting started with androidArturo Linares Valverde
 
Manual de Apps Basicas para Android
Manual de Apps Basicas para AndroidManual de Apps Basicas para Android
Manual de Apps Basicas para Androidebermejia98
 
Android QuickStart
Android QuickStartAndroid QuickStart
Android QuickStartjose diaz
 
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilTópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilJosé Antonio Sandoval Acosta
 
1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse
1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse
1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipseglorii piickolii
 
Topicos Avanzados de Programacion - Unidad 5 programacion movil
Topicos Avanzados de Programacion -  Unidad 5 programacion movilTopicos Avanzados de Programacion -  Unidad 5 programacion movil
Topicos Avanzados de Programacion - Unidad 5 programacion movilJosé Antonio Sandoval Acosta
 
Configurar entorno Android
Configurar entorno AndroidConfigurar entorno Android
Configurar entorno Androidjubacalo
 

Similaire à "Android de la A a la Z" -- Unidad 6 (20)

Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6
 
Breve introducción a Android Apps
Breve introducción a Android AppsBreve introducción a Android Apps
Breve introducción a Android Apps
 
Herramientas para el desarrollo en plataformas móviles web
Herramientas para el desarrollo en plataformas móviles   webHerramientas para el desarrollo en plataformas móviles   web
Herramientas para el desarrollo en plataformas móviles web
 
Manual Android
Manual AndroidManual Android
Manual Android
 
Android
AndroidAndroid
Android
 
TUTORIAL ECLIPSE
TUTORIAL ECLIPSETUTORIAL ECLIPSE
TUTORIAL ECLIPSE
 
Guía básica de programación en android
Guía básica de programación en androidGuía básica de programación en android
Guía básica de programación en android
 
Tutorial Eclipse
Tutorial Eclipse Tutorial Eclipse
Tutorial Eclipse
 
Manualandroid
ManualandroidManualandroid
Manualandroid
 
Android 24 01 getting started with android
Android 24 01 getting started with androidAndroid 24 01 getting started with android
Android 24 01 getting started with android
 
Manual de Apps Basicas para Android
Manual de Apps Basicas para AndroidManual de Apps Basicas para Android
Manual de Apps Basicas para Android
 
Agenda de contactos en Android
Agenda de contactos en AndroidAgenda de contactos en Android
Agenda de contactos en Android
 
Android QuickStart
Android QuickStartAndroid QuickStart
Android QuickStart
 
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilTópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
 
Tema: Android Studio
Tema: Android StudioTema: Android Studio
Tema: Android Studio
 
1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse
1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse
1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse
 
Topicos Avanzados de Programacion - Unidad 5 programacion movil
Topicos Avanzados de Programacion -  Unidad 5 programacion movilTopicos Avanzados de Programacion -  Unidad 5 programacion movil
Topicos Avanzados de Programacion - Unidad 5 programacion movil
 
Configurar entorno Android
Configurar entorno AndroidConfigurar entorno Android
Configurar entorno Android
 
Generalidades-de-Android-Estudio
Generalidades-de-Android-EstudioGeneralidades-de-Android-Estudio
Generalidades-de-Android-Estudio
 
Android studio
Android studioAndroid studio
Android studio
 

Plus de Android UNAM

Móviles, fuerza de cambio
Móviles, fuerza de cambioMóviles, fuerza de cambio
Móviles, fuerza de cambioAndroid UNAM
 
Todo trabajo es temporal
Todo trabajo es temporalTodo trabajo es temporal
Todo trabajo es temporalAndroid UNAM
 
Android de la A a la Z Actividades ulises gonzalez
Android de la A a la Z   Actividades ulises gonzalezAndroid de la A a la Z   Actividades ulises gonzalez
Android de la A a la Z Actividades ulises gonzalezAndroid UNAM
 
Android de la A a la Z PARTE 3 de 3 ulises gonzalez
Android de la A a la Z  PARTE 3 de 3 ulises gonzalezAndroid de la A a la Z  PARTE 3 de 3 ulises gonzalez
Android de la A a la Z PARTE 3 de 3 ulises gonzalezAndroid UNAM
 
Android de la A a la z componentes de una aplicacion ulises gonzalez
Android de la A a la z   componentes de una aplicacion ulises gonzalezAndroid de la A a la z   componentes de una aplicacion ulises gonzalez
Android de la A a la z componentes de una aplicacion ulises gonzalezAndroid UNAM
 
Android de la A a la Z XML Ulises Gonzalez
Android de la A a la Z  XML Ulises GonzalezAndroid de la A a la Z  XML Ulises Gonzalez
Android de la A a la Z XML Ulises GonzalezAndroid UNAM
 
Android de la A a la Z PARTE 1 de 3 ulises gonzalez
Android de la A a la Z PARTE 1 de 3 ulises gonzalezAndroid de la A a la Z PARTE 1 de 3 ulises gonzalez
Android de la A a la Z PARTE 1 de 3 ulises gonzalezAndroid UNAM
 
"Android de la A a la Z" -- Unidad 11
"Android de la A a la Z" -- Unidad 11"Android de la A a la Z" -- Unidad 11
"Android de la A a la Z" -- Unidad 11Android UNAM
 
"Android de la A a la Z" -- Unidad 10
"Android de la A a la Z" -- Unidad 10"Android de la A a la Z" -- Unidad 10
"Android de la A a la Z" -- Unidad 10Android UNAM
 
Android de la A a la Z" -- Unidad 7
Android de la A a la Z" -- Unidad 7Android de la A a la Z" -- Unidad 7
Android de la A a la Z" -- Unidad 7Android UNAM
 
"Android de la A a la Z" -- Unidad 5
"Android de la A a la Z" -- Unidad 5"Android de la A a la Z" -- Unidad 5
"Android de la A a la Z" -- Unidad 5Android UNAM
 

Plus de Android UNAM (11)

Móviles, fuerza de cambio
Móviles, fuerza de cambioMóviles, fuerza de cambio
Móviles, fuerza de cambio
 
Todo trabajo es temporal
Todo trabajo es temporalTodo trabajo es temporal
Todo trabajo es temporal
 
Android de la A a la Z Actividades ulises gonzalez
Android de la A a la Z   Actividades ulises gonzalezAndroid de la A a la Z   Actividades ulises gonzalez
Android de la A a la Z Actividades ulises gonzalez
 
Android de la A a la Z PARTE 3 de 3 ulises gonzalez
Android de la A a la Z  PARTE 3 de 3 ulises gonzalezAndroid de la A a la Z  PARTE 3 de 3 ulises gonzalez
Android de la A a la Z PARTE 3 de 3 ulises gonzalez
 
Android de la A a la z componentes de una aplicacion ulises gonzalez
Android de la A a la z   componentes de una aplicacion ulises gonzalezAndroid de la A a la z   componentes de una aplicacion ulises gonzalez
Android de la A a la z componentes de una aplicacion ulises gonzalez
 
Android de la A a la Z XML Ulises Gonzalez
Android de la A a la Z  XML Ulises GonzalezAndroid de la A a la Z  XML Ulises Gonzalez
Android de la A a la Z XML Ulises Gonzalez
 
Android de la A a la Z PARTE 1 de 3 ulises gonzalez
Android de la A a la Z PARTE 1 de 3 ulises gonzalezAndroid de la A a la Z PARTE 1 de 3 ulises gonzalez
Android de la A a la Z PARTE 1 de 3 ulises gonzalez
 
"Android de la A a la Z" -- Unidad 11
"Android de la A a la Z" -- Unidad 11"Android de la A a la Z" -- Unidad 11
"Android de la A a la Z" -- Unidad 11
 
"Android de la A a la Z" -- Unidad 10
"Android de la A a la Z" -- Unidad 10"Android de la A a la Z" -- Unidad 10
"Android de la A a la Z" -- Unidad 10
 
Android de la A a la Z" -- Unidad 7
Android de la A a la Z" -- Unidad 7Android de la A a la Z" -- Unidad 7
Android de la A a la Z" -- Unidad 7
 
"Android de la A a la Z" -- Unidad 5
"Android de la A a la Z" -- Unidad 5"Android de la A a la Z" -- Unidad 5
"Android de la A a la Z" -- Unidad 5
 

Dernier

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
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
 
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
 
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
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
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
 
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
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
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
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 

Dernier (15)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
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
 
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...
 
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
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
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
 
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
 
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
 
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)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
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
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 

"Android de la A a la Z" -- Unidad 6

  • 1. Android de la A a la Z Unidad 6 “Primera aplicación en Android” Creando AVDs (Android Virtual Devices) Los dispositivos virtuales Android (AVDs) son configuraciones de diversas opciones del emulador que te permiten un mejor modelo de un dispositivo real. Cada AVD se compone de: Es necesario crear un AVD para ejecutar cualquier aplicación en el emulador de Android. Cada AVD es un dispositivo virtual completamente independiente, con sus propias opciones de hardware, imagen de sistema y almacenamiento de datos. Se crean diferentes configuraciones de AVD para modelar diferentes ambientes y condiciones en los dispositivos. 1 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 2. Android de la A a la Z Unidad 6 “Primera aplicación en Android” Para poder crear un AVD, nos dirigimos al menú principal y desplegamos el menú “Window”, elegimos la opción denominada “Android SDK and AVD Manager” En la pantalla que aparece, seleccionamos de las opciones que se localizan a la izquierda, la que lleva por nombre “Virtual Devices” y seguidamente hacemos clic en el botón “NEW”, esto se realiza con el objetivo de crear un nuevo AVD. Como se puede notar hay botones para llevar a cabo acciones como la eliminación de un AVD, edición, visualización de características, entre otras. 2 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 3. Android de la A a la Z Unidad 6 “Primera aplicación en Android” En la opción de “Create new AVD”, podemos configurar completamente nuestro dispositivo virtual. Esencialmente basta con asignar un nombre, un target (versión de la API) y un tamaño; con estas características podemos trabajar cómodamente en nuestras primeras aplicaciones. Al hacer clic en “Create AVD”, nos aparece un mensaje de confirmación de la acción que acabamos de realizar. Posteriormente podemos observar que nuestro dispositivo se encuentra en la ventana principal del “Android SDK and AVD Manager”. 3 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 4. Android de la A a la Z Unidad 6 “Primera aplicación en Android” Creando la primera aplicación “Hola Mundo” Una vez que hemos creado AVDs, es momento de adentrarnos de lleno en el desarrollo de nuestra primera aplicación. Iniciamos abriendo nuestro entorno de desarrollo “Eclipse”, para ello nos dirigimos al lugar donde aloja; en nuestro caso es en el disco local C. 4 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 5. Android de la A a la Z Unidad 6 “Primera aplicación en Android” Indicamos el espacio de trabajo (Workspace), que será el lugar donde se almacenarán nuestros proyectos, y hacemos clic en el botón de “OK”. Tras haber elegido el espacio de trabajo, aparece la pantalla principal. Nos situamos en la parte superior y desplegamos el menú FILE → NEW → PROJECT, hacemos clic en esta última opción. 5 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 6. Android de la A a la Z Unidad 6 “Primera aplicación en Android” En la pantalla que se muestra, misma que lleva por título “NEW PROJECT”, elegimos la opción de “Android Project” y hacemos clic en el botón “NEXT”. Es importante hacer notar que también está la opción de “Android Test Project”… completar…. No selecciones la opción de “Java Project“; a pesar de que las aplicaciones de Android están escritas en Java, y que estarás haciendo todos tus proyectos en este lenguaje, esta opción crea una aplicación estándar de Java; mientras que un “Android Project” te permite crear aplicaciones específicas para Android. Si no aparece la opción para Android en la pantalla de “NEW PROJECT”, esto indica que el plugin de Android para Eclipse no está completo o se encuentra instalado de manera inadecuada; para ello debes de revisar este que se encuentre bien instalado antes de continuar. 6 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 7. Android de la A a la Z Unidad 6 “Primera aplicación en Android” Una vez que hemos elegido el tipo de proyecto que deseamos, nos aparece una pantalla como la que se muestra en la imagen; esta pantalla nos permitirá definir las características de nuestro proyecto. El campo “Project Name” nos permitirá dar nombre la carpeta donde se creará el proyecto. En “Contents”, selecciona “Create new project in workspace”, además indica que la ubicación del proyecto será en el “workspace” que especificaste cuando se abrió Eclipse. 7 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 8. Android de la A a la Z Unidad 6 “Primera aplicación en Android” En “Build Taget” especificas la versión de la API de Android con la que se construirá la aplicación. En “Properties” debes de llenar los campos de la siguiente manera:  “Application name”, el cual es un título en lenguaje natural para la aplicación, además de ser el nombre que aparecerá en el dispositivo Android.  “Package name”, el cual deberá estar compuesto por lo menos dos identificadores separados entre sí por un punto; por ejemplo: “Android.Hola”, “com.Android.Hola”  Debes seleccionar “Create Activity” (este atributo es opcional, aunque una actividad casi siempre se utiliza como base para una aplicación) y colocar un nombre para la clase de la actividad principal. En “Min SDK Version”, se debe escribir un entero que especifica el nivel mínimo de API requerido para ejecutar la aplicación (generalmente este se coloca de manera automática al seleccionar en “Build Target” la versión de la API con la cual trabajarás). En la siguiente tabla se especifica “Min SDK Version” para cada versión de la plataforma Android. Versión de la plataforma Min SDK Version Android 2.1 7 Android 2.0.1 6 Android 2.0 5 Android 1.6 4 Android 1.5 3 Android 1.1 2 Android 1.0 1 8 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 9. Android de la A a la Z Unidad 6 “Primera aplicación en Android” Para nuestros fines, colocamos los siguientes datos del proyecto “HolaMundo” seguidamente hacemos clic en el botón “NEXT” y posteriormente en “FINISH”. 9 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 10. Android de la A a la Z Unidad 6 “Primera aplicación en Android” Si el botón “FINISH” no está disponible, es posible que hayamos cometido un error en uno de los campos en el área de “Properties”. Para asegurarse de que los campos de propiedades están debidamente cumplimentados, Eclipse no te permite terminar el proceso si alguno de los datos que has introducido puede causar problemas. Para ello debes de volver atrás y asegurarte de que todos los campos contienen datos correctos. Examinando las carpetas y archivos creados. Ahora que ya hemos creado nuestro primer proyecto, podemos observar que aparecen una serie de carpetas y archivos; mismos que nos permiten trabajar de manera cómoda en el desarrollo de nuestras aplicaciones; todos estos archivos y carpetas se crean de manera automática. Carpetas y archivos creados por el Wizard para nuestro proyecto “HolaMundo” Todas las carpetas y archivos creados por el wizard los podemos localizar en la capeta que se localiza en el “Workspace” que especificamos cuando abrimos Eclipse. 10 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 11. Android de la A a la Z Unidad 6 “Primera aplicación en Android” ¿ES NOMBRE TIPO DESCRIPCIÓN INDISPENSABLE? Es el archivo descriptor de la aplicación. Este archivo AndroidManifest.xml  define las actividades, proveedores de contenido, servicios y recibidores de intentos que conforman una aplicación.  src Contiene todos los códigos fuente de la aplicación.  assets Una colecciónsearbitraria devacío. y archivos. Inicialmente encuentra carpetas  res Contiene los recursos demenu, values, xml, ycomo drawable, anim, layout, la aplicación, tales raw.   Incluye los archivos Java generados por el ADT, tales gen  como el R.java y las interfaces creadas con base en archivos AIDL (Android Interface Definition Language) res/drawable Almacena utilizados porolaarchivos descriptores de imágenes las imágenes aplicación.  res/anim En su interior animaciones que utiliza la aplicación. describen las se encuentran los archivos XML que   Es una carpeta que contiene vistas de la aplicación res/layout  (views). Debes crear vistas de la aplicación mediante el uso de los descriptores XML en lugar de codificarlos. res/menu Aloja los archivos descriptores XML para los menús de la aplicación.   Contiene otros recursos utilizados por la aplicación. res/values  Todos los recursos en la carpeta también se definen con descriptores XML; por ejemplo: estilos y colores. res/xml Una carpeta utiliza la aplicación. XML adicionales, mismos que que contiene archivos  res/raw Almacena datos adicionales,por la aplicación. XML, mismos que son requeridos posiblemente no  tests Incluye la suite de pruebas para el proyecto.  Archivo que posee la configuración del proyecto (por   ejemplo el Build Target), nunca debes de editarlo default.properties manualmente, para editar las propiedades del proyecto, hay que oprimir el botón derecho de la carpeta del proyecto y seleccionar “Properties”. 11 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 12. Android de la A a la Z Unidad 6 “Primera aplicación en Android”  Carpeta que Incluye el archivo android.jar en el que se < VersiónAndroid > (Android 2.1)  basará la aplicación. Esto se determina por el Build Target que hayas elegido en el Asistente para nuevo proyecto.  Archivo que se localiza en la carpeta “gen”. El archivo "R.java" es un índice a todos los recursos definidos en el proyecto. Esta clase sirve de abreviación al   momento de referenciar cualquier recurso que hayas R.java definido en tu proyecto. Esta característica resulta muy poderosa en combinación con las facilidades de autocompletación de Eclipse, porque te permite rápidamente e interactivamente localizar las referencias que estás buscando. Archivo que se encuentra en la carpeta “src” y cuya designación coincide con el nombre de la actividad que   definiste al crear un nuevo proyecto Android. A <tuActividad>.java diferencia de la mayoría de los archivos que hemos (HolaMundo.java) examinado en esta tabla, este archivo es completamente editable, de hecho, hará muy poco para ti, si no lo modificas con tu código. lib  Contiene archivos JAR correspondiente a cuestiones de arquitectura de tres capas que la aplicación requiere.  Cuando se compila el proyecto (a través línea de comandos o en una IDE), los resultados van en el directorio bin / en la raíz del proyecto, teniendo las siguientes carpetas: ¿ES NOMBRE TIPO DESCRIPCIÓN INDISPENSABLE? bin En sido compilada. almacena la aplicación una vez que ha esta carpeta se  bin/classes Almacena las clases Java que han sido compiladas como parte del proyecto en curso.  bin/clases.dex Aloja el ejecutable clases que integran elresultado de la compilación de las que se genera como proyecto.   Contiene los recursos de la aplicación, empaquetados bin/yourapp.ap_  como un archivo ZIP (donde yourapp es el nombre de la aplicación) bin/yourapp- debug.apk or bin/yourapp- unsigned.apk En su interior se encuentra nombre de la aplicación) Android (donde yourapp es el la aplicación actual de  Un archivo con extensión .apk es un paquete para el sistema operativo Android. Este formato es una variante del formato JAR de Java y se usa para distribuir e instalar componentes empaquetados para la 12 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 13. Android de la A a la Z Unidad 6 “Primera aplicación en Android” plataforma Android para móviles. Un archivo .apk normalmente contiene lo siguiente: AndroidManifest.xml, classes.dex, res (carpeta), entre otros archivos dependiendo de la aplicación. AndroidManifest.xml "AndroidManifest.xml" es el archivo de control que le dice al sistema qué es lo que debe hacer con los componentes de más alto nivel que se han creado (específicamente "Actividades", "Servicios", "Receptores de Intentos" y "Proveedores de Contenidos"). 13 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 14. Android de la A a la Z Unidad 6 “Primera aplicación en Android” Estructura del AndroidManifest.xml El siguiente diagrama muestra la estructura general del archivo de manifiesto así como los elementos que pueda contener. Cada elemento, junto con todos sus atributos, está documentado en su totalidad en la página web http://developer.android.com/guide/topics/manifest/manifest-intro.html. <?xml version="1.0" encoding="utf-8"?> <manifest> <uses-permission /> <permission /> <permission-tree /> <permission-group /> <instrumentation /> <uses-sdk /> <uses-configuration /> <uses-feature /> <supports-screens /> <application> <activity> <intent-filter> <action /> <category /> <data /> </intent-filter> <meta-data /> </activity> <activity-alias> <intent-filter> . . . </intent-filter> <meta-data /> </activity-alias> <service> <intent-filter> . . . </intent-filter> <meta-data/> </service> <receiver> <intent-filter> . . . </intent-filter> <meta-data /> </receiver> <provider> <grant-uri-permission /> <path-permission /> <meta-data /> </provider> <uses-library /> </application> 14 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 15. Android de la A a la Z Unidad 6 “Primera aplicación en Android” </manifest> Consideraciones importantes previas a la ejecución del proyecto. Es importante hacer notar una vez que tenemos nuestro proyecto creado el hecho de que debemos tener en cuenta ciertas consideraciones a los archivos generados por default. main.xml El directorio “layout” tiene un archivo XML “main.xml”, que es referenciado por la aplicación en la construcción de la interfaz que ésta maneja. En la mayoría de las aplicaciones de este libro, es necesario editar el archivo main.xml incluido en el directorio mencionado. De entrada nos situamos en la carpeta “layout” y posteriormente abrimos el archivo “main.xml” utilizando el editor de texto “Text Editor”. Es importante hacer notar que no debemos de abrir el archivo con el “XML Editor” ya que esto nos complicaría la modificación del archivo. 15 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 16. Android de la A a la Z Unidad 6 “Primera aplicación en Android” Una vez que tenemos abierto el archivo, debemos de eliminar las líneas que se muestran en la siguiente figura. Versión que se tiene por default. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/HolaMundo" /> </LinearLayout> Versión corregida y lista para cualquier proyecto. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > </LinearLayout> R.java El archivo R.java es un archivo generado automáticamente que se agrega al proyecto gracias al plugin de Android. Este archivo contiene referencias a los esquemas “drawable” y ”layout” así como a los elementos dentro de los directorios, como es el caso con las cadenas (strings) y los iconos. Este archivo no debe de ser modificado por ningún motivo, ya que se vería afectado el desarrollo adecuado del proyecto. /* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found. It * should not be modified by hand. */ 16 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 17. Android de la A a la Z Unidad 6 “Primera aplicación en Android” package testPackage.HelloWorldText; public final class R { public static final class attr { } public static final class drawable { public static final int icon=0x7f020000; } public static final class layout { public static final int main=0x7f030000; } public static final class string { public static final int app_name=0x7f040000; } } <tuActividad>.java El archivo en el directorio “src” en el que invertirás más tiempo es el <tuActividad>.java (en nuestro caso es HolaMundoActivity.java), que es creado por el plugin de Android y cuyo nombre coincide con el nombre de la actividad que hemos especificado en “Android New Project”. A diferencia de la mayoría de los archivos que hemos examinado en esta sección, este archivo es completamente editable, y será el lugar que alojará el código principal de tu aplicación. Ahora procederemos a editar dicho archivo, con el objetivo de poder crear nuestra aplicación “Hola Mundo”. Archivo que se crea por default. package ejemplo.hola; import android.app.Activity; import android.os.Bundle; public class HolaMundoActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } Archivo modificado para desplegar en la pantalla un mensaje “Hola Mundo!!!”. package ejemplo.hola; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class HolaMundoActivity extends Activity { /** Called when the activity is first created. */ 17 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 18. Android de la A a la Z Unidad 6 “Primera aplicación en Android” @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView HolaMundoTextView = new TextView(this); HolaMundoTextView.setText("Hola Mundo!!!"); setContentView(HolaMundoTextView); } } Es momento de dar una explicación amplia de las líneas de código que conforman el archivo anterior. Para ello nos abocamos a analizarlo detenidamente en la siguiente página. Una vez que hemos terminado nuestro código, procedemos a ejecutarlo haciendo clic en el botón “play” que se muestra en la figura. A continuación se presentan las imágenes correspondientes a la ejecución del proyecto. Es importante mencionar que la primera vez que abrimos el AVD, éste tarda un par de minutos en cargarse completamente. A continuación se presentan las imágenes de la ejecución del proyecto en cuestión. 18 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 19. Android de la A a la Z Unidad 6 “Primera aplicación en Android” 19 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 20. Android de la A a la Z Unidad 6 “Primera aplicación en Android” Para poder dar un seguimiento a la correcta ejecución del proyecto, podemos observar la parte inferior de la pantalla de Eclipse en el apartado de “Console” y allí encontraremos un listado de las situaciones que se van presentando. A continuación se presenta una modificación al archivo HolaMundoActivity.java, cambiando el mensaje que desplegamos en la pantalla. package ejemplo.hola; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class HolaMundoActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView HolaMundoTextView = new TextView(this); HolaMundoTextView.setText("Android de la A a la Z !!!"); setContentView(HolaMundoTextView); } } 20 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 21. Android de la A a la Z Unidad 6 “Primera aplicación en Android” Mensaje que nos indica que el código ha sido modificado y que debemos guardar los cambios antes de ejecutar la aplicación. Mensaje desplegado en la pantalla del emulador de Android. Hola Mundo mejorado Después de instalar nuestro entorno de desarrollo para Android y comentar la estructura básica de un proyecto y los diferentes componentes software que podemos utilizar ya es hora de empezar a escribir algo de código. Y como siempre lo mejor es empezar por escribir una aplicación sencilla. En el capitulo previo elaboramos el clásico hola mundo, ahora presentamos una versión más sofisticada del mismo. La aplicación constará de dos pantallas, por un lado la pantalla principal que solicitará un nombre al usuario y una segunda pantalla en la que se mostrará un mensaje personalizado para el usuario. 21 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 22. Android de la A a la Z Unidad 6 “Primera aplicación en Android” En primer lugar vamos a crear un nuevo proyecto Android tal como vimos al final del apartado anterior. Llamaremos al proyecto “HolaUsuario”, indicaremos como target por ejemplo “Android 1.6″, daremos un nombre a la aplicación e indicaremos que se cree una actividad llamada “HolaUsuario”. Como ya vimos esto nos crea la estructura de carpetas del proyecto y todos los archivos necesarios de un Hola Mundo básico, es decir, una sola pantalla donde se muestra únicamente un mensaje fijo. Lo primero que vamos a hacer es diseñar nuestra pantalla principal modificando la que Eclipse nos ha creado por defecto. ¿Dónde y cómo se define cada pantalla de la aplicación? En Android, el diseño y la lógica de una pantalla están separados en dos archivos distintos. 22 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 23. Android de la A a la Z Unidad 6 “Primera aplicación en Android”  En el archivo /res/layout/main.xml tendremos el diseño visual de la pantalla definido como archivo XML.  En el archivo /src/paquetejava/HolaUsuario.java, encontraremos el código java que determina la lógica de la pantalla. Vamos a modificar en primer lugar el aspecto de la ventana principal de la aplicación añadiendo los controles (views) que vemos en la primera captura de pantalla. Para ello, vamos a sustituir el contenido del archivo main.xml por el siguiente: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:text="@string/nombre" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <EditText android:id="@+id/TxtNombre" android:layout_height="wrap_content" android:layout_width="fill_parent" /> <Button android:id="@+id/BtnHola" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hola" /> </LinearLayout> En este XML se definen los elementos visuales que componen la interfaz de nuestra pantalla principal y se especifican todas sus propiedades. Lo primero que nos encontramos es un elemento LinearLayout. Los layout son elementos no visibles que determinan cómo se van a distribuir en el espacio los controles que incluyamos en su interior. Los programadores java, y más concretamente de Swing, conocerán este concepto perfectamente. En este caso, un LinearLayout distribuirá los controles uno tras otro y en la orientación que indique su propiedad android:orientation. Dentro del layout hemos incluido 3 controles: una etiqueta (TextView), un cuadro de texto (EditText), y un botón (Button). En todos ellos hemos establecido las siguientes propiedades:  android:id. ID del control, con el que podremos identificarlo más tarde en nuestro código vemos que el identificador lo escribimos precedido de “@+id/”. Esto tendrá como efecto que al compilarse el proyecto se genere automáticamente una nueva constante en la clase R para dicho control.  android:text. Texto del control. El texto de un control se puede especificar directamente o bien utilizar alguna de las cadenas de texto definidas en los recursos del proyecto (archivo strings.xml), en cuyo caso indicaremos su identificador precedido del prefijo “@string/”. 23 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 24. Android de la A a la Z Unidad 6 “Primera aplicación en Android”  android:layout_height y android:layout_width. Dimensiones del control con respecto al layout que lo contiene. Esta propiedad tomará normalmente los valores “wrap_content” para indicar que las dimensiones del control se ajustarán al contenido del mismo, o bien “fill_parent” para indicar que el ancho o el alto del control se ajustará al ancho o alto del layout contenedor respectivamente. Con esto ya tenemos definida la presentación visual de nuestra ventana principal de la aplicación. De igual forma definiremos la interfaz de la segunda pantalla, creando un nuevo archivo llamado frmmensaje.xml, y añadiendo esta vez tan solo una etiqueta (TextView) para mostrar el mensaje personalizado al usuario. Veamos cómo quedaría nuestra segunda pantalla: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/TxtMensaje" android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="$mensaje"></TextView> </LinearLayout> Una vez definida la interfaz de las pantallas de la aplicación deberemos implementar la lógica de la misma. Como ya hemos comentado, la lógica de la aplicación se definirá en archivos java independientes. Para la pantalla principal ya tenemos creado un archivo por defecto llamado HolaUsuario.java. Empecemos por comentar su código por defecto: public class HolaUsuario extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } Como ya vimos anteriormente, las diferentes pantallas de una aplicación Android se definen mediante objetos de tipo Activity. Por tanto, lo primero que encontramos en nuestro archivo java es la definición de una nueva clase HolaUsuario que extiende a Activity. El único método que sobrescribiremos de esta clase será el método OnCreate, llamado cuando se crea por primera vez la actividad. En este método lo único que encontramos en principio, además de la llamada a su implementación en la clase padre, es la llamada al método setContentView(R.layout.main). Con esta llamada estaremos indicando a Android que debe establecer como interfaz gráfica de esta actividad la definida en el recurso R.layout.main, que no es más que la que hemos especificado en el archivo /res/layout/main.xml. Una vez más vemos la utilidad de las diferentes constantes de recursos creadas automáticamente en la clase R al compilar el proyecto. 24 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 25. Android de la A a la Z Unidad 6 “Primera aplicación en Android” En principio vamos a crear una nueva actividad para la segunda pantalla de la aplicación análoga a ésta primera, para lo que crearemos una nueva clase FrmMensaje que extienda de Activity y que implemente el método onCreate indicando que utilice la interfaz definida en R.layout.frmmensaje. public class FrmMensaje extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.frmmensaje); } } Como vemos, el código incluido por defecto en estas clases lo único que hace es generar la interfaz de la actividad. A partir de aquí nosotros tendremos que incluir el resto de la lógica de la aplicación. Vamos a empezar con la actividad principal HolaUsuario, obteniendo una referencia a los diferentes controles de la interfaz que necesitemos manipular, en nuestro caso sólo el cuadro de texto y el botón. Para ello utilizaremos el método findViewById() indicando el ID de cada control, definidos como siempre en la clase R: final EditText txtNombre = (EditText)findViewById(R.id.TxtNombre); final Button btnHola = (Button)findViewById(R.id.BtnHola); Una vez tenemos acceso a los diferentes controles, ya sólo nos queda implementar las acciones a tomar cuando pulsemos el botón de la pantalla. Para ello implementaremos el evento onClick de dicho botón, veamos cómo: btnHola.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(HolaUsuario.this, FrmMensaje.class); Bundle bundle = new Bundle(); bundle.putString("NOMBRE", txtNombre.getText().toString()); intent.putExtras(bundle); startActivity(intent); } }); Como ya indicamos en páginas previas, la comunicación entre los distintos componentes y aplicaciones en Android se realiza mediante intents, por lo que el primer paso será crear un objeto de este tipo. Existen tipos diversos del constructor de la clase Intent, cada una de ellas dirigida a unas determinadas acciones, pero en nuestro caso particular vamos a utilizar el intent para llamar a una actividad desde otra de la misma aplicación, para lo que pasaremos al constructor una referencia a la propia actividad llamadora (HolaUsuario.this), y la clase de la actividad llamada (FrmMensaje.class). 25 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 26. Android de la A a la Z Unidad 6 “Primera aplicación en Android” Si quisiéramos tan sólo mostrar una nueva actividad ya tan sólo nos quedaría llamar a startActivity() pasándole como parámetro el intent creado. Pero en nuestro ejemplo queremos también pasarle cierta información a la actividad, concretamente el nombre que introduzca el usuario en el cuadro de texto. Para hacer esto vamos a crear un objeto Bundle, que puede contener una lista de pares clave-valor con toda la información a pasar entre las actividades. En nuestro caso sólo añadiremos un dato de tipo String mediante el método putString(clave, valor). Tras esto añadiremos la información al intent mediante el método putExtras(bundle). Finalizada la actividad principal de la aplicación pasamos ya a la secundaria. Comenzaremos de forma análoga a la anterior, ampliando el método onCreate obteniendo las referencias a los objetos que manipularemos, esta vez sólo la etiqueta de texto. Tras esto viene lo más interesante, debemos recuperar la información pasada desde la actividad principal y asignarla como texto de la etiqueta. Para ello accederemos en primer lugar al intent que ha originado la actividad actual mediante el método getIntent() y recuperaremos su información asociada (objeto Bundle) mediante el método getExtras(). Hecho esto tan sólo nos queda construir el texto de la etiqueta mediante su método setText(texto) y recuperando el valor de nuestra clave almacenada en el objeto Bundle mediante getString(clave). public class FrmMensaje extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.frmmensaje); TextView txtMensaje = (TextView)findViewById(R.id.TxtMensaje); Bundle bundle = getIntent().getExtras(); txtMensaje.setText("Hola " + bundle.getString("NOMBRE")); } } Con esto hemos concluido la lógica de las dos pantallas de nuestra aplicación y tan sólo nos queda un paso importante para finalizar nuestro desarrollo. Como indicamos en uno de los artículos anteriores, cualquier aplicación Android utiliza un archivo especial en formato XML (AndroidManifest.xml) para definir, entre otras cosas, los diferentes elementos que la componen. Por tanto, todas las actividades de nuestra aplicación deben quedar convenientemente recogidas en este archivo. La actividad principal ya debe aparecer puesto que se creó de forma automática al crear el nuevo proyecto Android, por lo que debemos añadir tan sólo la segunda. Para este ejemplo nos limitaremos a incluir la actividad en el XML, más adelante veremos que opciones adicionales podemos especificar. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.sgoliver" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HolaUsuario" 26 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
  • 27. Android de la A a la Z Unidad 6 “Primera aplicación en Android” android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".FrmMensaje"></activity> </application> <uses-sdk android:minSdkVersion="4" /> </manifest> Una vez llegado aquí, si todo ha ido bien, deberíamos poder ejecutar el proyecto sin errores y probar nuestra aplicación en el emulador. 27 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2