Você está na página 1de 6

Explicaciones

A continuacin, se realizar un recorrido por todos los archivos del proyecto para explicar su contenido.

1. Android Manifest
Para comenzar, abra el archivo Android Manifest (vase el captulo Principios de programacin Manifiesto). Este archivo es bastante bsico en este caso.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.eni.android.helloandroid"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:allowBackup=true
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.eni.android.helloandroid.HelloAndroidActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
En este archivo:
El package (identificador) de su aplicacin (en este caso com.eni.android. helloandroid) se
define en el atributo package de la etiqueta manifiesto.
La versin de la aplicacin se detalla con los atributos versionCode (nmero de versin)
yversionName (nombre de versin: visible en el Market) de la etiqueta manifiesto.
La versin mnima del SDK para poder utilizar la aplicacin se informa en el
atributominSdkVersion de la etiqueta uses-sdk, as como la versin del SDK utilizada para
desarrollar la aplicacin (atributo targetSDKVersion).
El icono y el nombre de su aplicacin se introducen con los atributos icon y label de la
etiqueta application as, como el tema utilizado por la aplicacin (vase el captulo
Personalizacin y gestin de eventos - Personalizacin).
La descripcin de la actividad principal (etiqueta activity) incluye:
El nombre de la clase que implementa Activity.
El ttulo de la actividad.
Los filtros de la actividad:
MAIN: indica que se trata de la actividad principal de la aplicacin.
LAUNCHER: indica que esta actividad est presente en el arranque de la
aplicacin.

2. Resources (recursos)
Drawable
La carpeta drawable contiene el icono de la aplicacin en cuatro resoluciones (ldpi = baja resolucin,
mdpi = resolucin media, hdpi = alta resolucin, xhdpi = resolucin muy alta).

Layout
La aplicacin slo contiene un valor, que sirve para mostrar la etiqueta "HelloAndroid".

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".HelloAndroidActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
Esta vista slo contiene un RelativeLayout, que sirve de contenedor para el campo de texto (vase el
captulo Creacin de interfaces sencillas - Layouts) cuyo contenido se declara en el archivo strings.xml
(vase el captulo Creacin de interfaces sencillas - Recursos). El RelativeLayout tiene los atributos
siguientes:
Un margen interno (padding) para el texto.
Este campo de texto tambin tiene los atributos siguientes:
La anchura y la altura del elemento (vase el captulo Creacin de interfaces sencillas Principios).

Values
Puede observar las cinco carpetas values:
values: carpeta utilizada para almacenar diferentes valores tiles en una aplicacin (utilizada
en la mayora de los casos).
values-sw600dp: todos los archivos contenidos en esta carpeta reemplazan los archivos
values por defecto cuando el dispositivo tiene una pantalla grande (tablet de 7 pulgadas, por
ejemplo).
values-sw720dp-land: todos los archivos contenidos en esta carpeta reemplazan los
archivos values por defecto cuando el dispositivo tiene una pantalla muy grande (tablet de 10
pulgadas en horizontal, por ejemplo).
values-v11: todos los archivos contenidos en esta carpeta reemplazan los archivos values
por defecto cuando el dispositivo tiene la versin 3.x de Android (Honeycomb).
values-v14: todos los archivos contenidos en esta carpeta reemplazan los archivos values
por defecto cuando el dispositivo tiene una versin 4.x de Android (Ice Cream Sandwich o
JellyBean).
La carpeta values contiene los archivos siguientes (vase el captulo Creacin de interfaces sencillas Recursos):

strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">HelloAndroid</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
</resources>
Este archivo contiene cuatro cadenas de caracteres:
El nombre de la aplicacin.
El mensaje "Hello world!", que se mostrar.
La cadena de caracteres utilizada en la barra de accin/men.
El ttulo de la actividad principal.
dimens.xml
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
</resources>
Contiene las distintas dimensiones utilizadas en la aplicacin (los distintos mrgenes internos
utilizados).
Se sobrescriben con el archivo dimens.xml que est ubicado en las carpetas valuessw600dp y values-sw720dp-land para especificar nuevas dimensiones para pantallas ms
grandes.
Contenido del archivo dimens.xml presente en la carpeta values-sw600dp:
<resources>
<!-Customize dimensions originally defined in res/values/
dimens.xml (such as
screen margins) for sw600dp devices (e.g. 7" tablets) here.
-->
</resources>
Contenido del archivo dimens.xml presente en la carpeta values-sw720dp-land:
<resources>
<!-Customize dimensions originally defined in res/values/
dimens.xml (such as
screen margins) for sw720dp devices (e.g. 10" tablets)
in landscape here.
-->
<dimen name="activity_horizontal_margin">128dp</dimen>
</resources>
styles.xml
<resources>
<!--

Base application theme, dependent on API level. This theme is


replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Light">
<!-Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular
API-level can go here. -->
</style>
</resources>
Contiene el tema utilizado por la aplicacin (vase el captulo Personalizacin y gestin de
eventos - Personalizacin).
Este tema ser distinto en aquellos dispositivos que dispongan de las API 11 (Honeycomb) y
14 (Ice Cream Sandwich o posterior). Todo ello para utilizar el tema Holo de Android,
disponible solamente para las versiones 3.x y 4.x.
Contenido del archivo styles.xml presente en la carpeta values-v11:
<resources>
<!-Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 11 theme customizations can go here. -->
</style>
</resources>
Contenido del archivo styles.xml presente en la carpeta values-v14:
<resources>
<!-Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme"
parent="android:Theme.Holo.Light.DarkActionBar">
<!-- API 14 theme customizations can go here. -->
</style>
</resources>

3. Archivo generado
Esta carpeta contiene el archivo R.java. Se genera automticamente con la precompilacin de los
archivos ubicados en la carpeta de recursos.

/* 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.
*/
package com.eni.android.helloandroid;
public final class R {
public static final class attr {
}
public static final class dimen {
/** Default screen margins, per the Android Design guidelines.
Customize dimensions originally defined in res/values/dimens.xml (such as
screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.
*/
public static final int activity_horizontal_margin=0x7f040000;
public static final int activity_vertical_margin=0x7f040001;
}
public static final class drawable {
public static final int ic_launcher=0x7f020000;
}
public static final class id {
public static final int action_settings=0x7f080000;
}
public static final class layout {
public static final int activity_hello_android=0x7f030000;
public static final int activity_main=0x7f030001;
}
public static final class menu {
public static final int hello_android=0x7f070000;
public static final int main=0x7f070001;
}
public static final class string {
public static final int action_settings=0x7f050001;
public static final int app_name=0x7f050000;
public static final int hello_world=0x7f050002;
}
public static final class style {
/**
Base application theme, dependent on API level. This theme is
replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.

Theme customizations available in newer API levels can go in


res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.

Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
API 11 theme customizations can go here.
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
API 14 theme customizations can go here.
*/
public static final int AppBaseTheme=0x7f060000;
/** Application theme.
All customizations that are NOT specific to a particular API-level can go
here.

*/
public static final int AppTheme=0x7f060001;
}
}
No modifique este archivo ya que sus modificaciones se perdern en la prxima compilacin.

Puede observar que el archivo contiene referencias a todos los elementos presentes en la
carpetares (drawable, layout y strings).
Desde la nueva versin de ADT, la carpeta gen tambin contiene el archivo BuildConfig.java.

/** Automatically generated file. DO NOT MODIFY */ package com.eni.android.helloandroid;


public final class BuildConfig {
public final static boolean DEBUG = true;
}
Este archivo le permite gestionar si se encuentra en modo desarrollo o produccin en su aplicacin
mediante la variable DEBUG.
El estado de esta variable se modifica automticamente cuando genera su apk para que los logs no
se muestren durante la ejecucin de la aplicacin en el dispositivo (vase el captulo Depuracin y
gestin de errores - Logs).

4. Archivo fuente
Disponemos de un archivo "HelloAndroidActivity" que contiene la implementacin de nuestra vista
(vase el captulo Creacin de interfaces sencillas - Principios).

package com.eni.android.helloandroid;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
public class HelloAndroidActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello_android);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.hello_android, menu);
return true;
}

}
Nuestra clase debe heredar de Activity y sobrecargar el mtodo onCreate en el que se define el
contenido de la vista gracias al mtodo setContentView. La vista se obtiene gracias a la clase R.java,
ya que se declara estticamente en esta clase.
Tambin contiene la creacin de un men utilizado en la aplicacin (vase el captulo Creacin de
interfaces sencillas - Mens).

Você também pode gostar