lunes, 20 de diciembre de 2010

COMO SE HACE

Ya estoy aqui de nuevo ,bueno para hacer aplicaciones para nuestro telefono,hay varias opciones las mas empleadas son eclipse y el nuevo appinventor.
Para los que sabeis de programacion seguramente usareis eclipse para poder hacer vuestra aplicacion,pero para los que no sabemos google a sacado una aplicacion llamada appinventor,es como un sistema de puzzles donde tenemos que ir encajando piezas para crear nuestra aplicacion.

Hoy veremos como empezar a usar eclipse y hacer un programa basico llamado hola mundo.

Lo primero, descarga e instala eclipse, que puedes descargar desde su pagina web
 Se me olvidaba lo primero necesitais instalar el entorno java enlace para que funcione eclipse.

Despues instalar plugin en eclipse: Ir al menu Help/Software Updates aparecerá una ventana ir a la pestaña Avaliable Updates, Add site y añadir la siguiente dirección: https://dl-ssl.google.com/android/eclipse/
Una vez añadida la url selecciona Developer Tools y instalar.
 Añadir la ruta del SDK en eclipse: Ir al menu Window/Preferences y en la ventana que aparecerá, apartado Android añadir la ruta.
Con esto ya deberiamos poder hacer nuestra primera aplicacion.

Creando un nuevo proyecto

La mejor forma de conocer un sistema es probándolo asi que vamos a crear el proyecto y por el camino vamos explicando cómo funciona Android.

Una vez instalado el plugin, creamos el nuevo proyecto de Android (File > New > Project > Android Project). Damos a siguiente:

  • Project name: HolaMundo
  • Package name: com.example.holamundo
  • Create Activity: HolaMundo
  • Application name: Hola Mundo
Aunque he puesto los mismos nombres en los 4 sitios no tiene por qué coincidir, como sabréis. El nombre de la aplicación es lo que veréis en el móvil, las actividades son los controladores de Android, el nombre del paquete es algo interno y el proyecto es lo que veréis en Eclipse. Finalizamos y podremos ver el siguiente árbol de archivos


Voy a explicar la estructura:
  • /src – Aquí se encuentran las actividades (controladores recuerdo), clases y un archivo que se llama R.java. Este archivo no se debe tocar nunca, Android lo actualiza automáticamente pero si lo veis os encontraréis con variables y posiciones.
  • /Android Library – Eclipse referencia al sdk de Android. No mováis nunca el sdk de sitio o si lo hacéis recordad cambiar la dirección
  • /assets – Aquí se puede incluir archivos varios (música, pdfs, zips, rars)
  • /res/drawable – Todas las imágenes van en este directorio
  • /res/layout – Todas las vistas van aquí
  • /res/values – En el archivo strings.xml podemos poner variables que luego sustituiremos en las vistas
  • AndroidManifest.xml – Este archivo es muy importante porque recoge todas las actividades y algunas configuraciones del proyecto.

Antes de seguir vamos a ejecutar el proyecto, y para eso damos a Run As y elegimos Android Application. Si instalasteis todo bien saldrá el emulador, cargando iniciando Android (tarda un poquito). Lo desbloqueamos dando a Menú, y ya puedes ver la aplicación más básica que se hace en todos los lenguajes, nuestro Hola Mundo.

Si quieres puedes investigar los programas que trae el emulador, está bastante bien conseguido; aunque para mi gusto faltan varios detalles como girar el teléfono en posición horizontal. A continuación veremos cómo ha funcionado el programa.

Entendiendo el Hola Mundo

Gracias al plugin de Android, no hemos programado nada y ya tenemos el programa básico. Pero como hemos visto antes en la estructura, se han creado unos cuantos archivos. Vamos a ir paso a paso por cada uno de ellos.

01// AndroidManifest.xml
02<?xml version="1.0" encoding="utf-8"?>
03<manifest xmlns:android="http://schemas.android.com/apk/res/android"
04      package="com.example.holamundo"
05      android:versionCode="1"
06      android:versionName="1.0.0">
07    <application android:icon="@drawable/icon" android:label="@string/app_name">
08        <activity android:name=".HolaMundo"
09                  android:label="@string/app_name">
10            <intent-filter>
11                <action android:name="android.intent.action.MAIN" />
12                <category android:name="android.intent.category.LAUNCHER" />
13            </intent-filter>
14        </activity>
15    </application>
16</manifest>
Supongo que estaréis familiarizados con xml, si no, no os preocupéis, es muy fácil de entender. Podemos ver como crea un manifesto con el paquete y la versión de Android. Contiene la aplicación que hemos creado. android:icon="@drawable/icon" coge la imagen llamada icon.png del directorio /res/drawables y la asigna como icono. Esto es lo que véis en el menú de aplicaciones. Lo mismo sucede con android:label="@string/app_name", sustituye la variable app_name por su valor en el archivo:

1// res/values/strings.xml
2<?xml version="1.0" encoding="utf-8"?>
3<resources>
4    <string name="hello">Hello World, HolaMundo</string>
5    <string name="app_name">Hola Mundo</string>
6</resources>
Volviendo a AndroidManifest.xml, vemos que dentro de application se encuentra la actividad principal android:name=".HolaMundo", que corresponde con un punto más el nombre de la clase java en src/com.example.holamundo. El resto son detalles más profundos. Asi que Android ejecuta esa clase, vamos a verla:

01// src/com.example.holamundo/HolaMundo.java
02package com.example.holamundo;
03  
04import android.app.Activity;
05import android.os.Bundle;
06  
07public class HolaMundo extends Activity {
08    /** Called when the activity is first created. */
09    @Override
10    public void onCreate(Bundle savedInstanceState) {
11      // Inicializa la actividad
12        super.onCreate(savedInstanceState);
13      // Asignamos la vista
14        setContentView(R.layout.main);
15    }
16}
Crea una actividad llamada HolaMundo con un único método que sobreescribe al de la clase que extiende. Vemos como setContentView pasa como parámetro R.layout.main que representa a /res/layout/main.xml. Pero como dije antes, todo las referencias a archivos y variables pasan por la clase R.java que Android se encarga de ajustar automáticamente. Veamos la vista

01// res/layout/main.xml
02<?xml version="1.0" encoding="utf-8"?>
03<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
04    android:orientation="vertical"
05    android:layout_width="fill_parent"
06    android:layout_height="fill_parent"
07    >
08<TextView
09    android:layout_width="fill_parent"
10    android:layout_height="wrap_content"
11    android:text="@string/hello"
12    />
13</LinearLayout>
01// res/layout/main.xml
02<?xml version="1.0" encoding="utf-8"?>
03<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
04    android:orientation="vertical"
05    android:layout_width="fill_parent"
06    android:layout_height="fill_parent"
07    >
08<TextView
09    android:layout_width="fill_parent"
10    android:layout_height="wrap_content"
11    android:text="@string/hello"
12    />
13</LinearLayout>
Como podéis ver vuelve a ser un xml y es que Google ha elegido usar xml para representar las vistas. LinearLayout es un tipo de layout que muestra los elementos uno debajo de otro. Tiene orientación vertical y ocupa toda la pantalla tanto a lo alto como a lo ancho.
Dentro podemos ver un campo de texto (TextView) cuyo texto se encuentra en el archivo strings.xml visto antes.

Finalizando

Hemos visto paso por paso lo que hace Android para ejecutar un sencillo Hola Mundo. Lo importante es:
  • AndroidManifest.xml contiene todas las actividades indicando cuál se ejecuta primero.
  • Todas las actividades y clases se encuentran en src. La actividad HolaMundo usa el layout main.xml
  • Todos los layouts están en res/layout. Se programan en xml siguiendo las etiquetas del SDK de Android.
  • En cualquier sitio podemos referenciar a variables del fichero strings.xml. Esto es muy útil para aplicaciones en varios idiomas.
Sacado de maestrosdelweb


No hay comentarios:

Publicar un comentario