lunes, 4 de septiembre de 2017

Cómo crear la primera aplicación con android



A continuación, vamos a explicar cómo crear un proyecto sencillo usando Eclipse y las librerías Android.

Vamos a partir del proyecto de ejemplo que hemos creado en el punto anterior.

El primer proyecto Android consiste en una pantalla muy sencilla que muestra un mensaje de bienvenida.

En la barra lateral Package Explorer de Eclipse, desplegamos las entradas haciendo clic en las flechas de los diferentes paquetes.


Si abrimos el fichero BienvenidoActivity.java, veremos el código fuente de la aplicación Android:

package es.mentor.unidad1.eje1.bienvenido;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class BienvenidoActivity extends Activity {
/** Método que se llama cuando se crea una actividad. */
public void onCreate(Bundle savedInstanceState) {
// Llamamos al método de la clase superior (Activity)
super.onCreate(savedInstanceState);
// Establecemos los contenidos de la Intefaz de usuario
// de forma “programada”.
TextView tv = new TextView(this);
tv.setText("¡Bienvenido al curso de Android de Mentor!");
setContentView(tv);
// Descomentar la siguiente sentencia para usar los layout en
// el diseño de la Interfaz Usuario. Si lo haces, debes
// comentar las 3 sentencias anteriores.
// setContentView(R.layout.main);
}
}

Fíjate en que la clase principal BienvenidoActivity de la aplicación se basa en la clase Activity de Android.
Una actividad (Activity) es el componente de la aplicación que realiza acciones. Una aplicación puede tener muchas actividades, si bien el usuario sólo interactúa con ellas de una en una. Android llama al método onCreate() cuando una actividad se inicia. En este método se lleva a cabo toda la inicialización de variables y configuración de la interfaz de usuario. Una actividad no está obligada a tener una interfaz de usuario, aunque generalmente la suele tener.

La interfaz de usuario de Android se compone de vistas (Views). Una vista es un objeto que define el diseño de la interfaz de usuario. como un botón, una imagen, una etiqueta de texto, etcétera. Cada uno de estos objetos se hereda de la clase principal View. En este ejemplo hemos utilizado la subclase TextView, que crea una etiqueta de texto.
En el ejemplo se crea una etiqueta TextView en el constructor de la Actividad. Para crear esta etiqueta es necesario pasar como parámetro una instancia del Contexto (Context) de la aplicación Android. Un Contexto es un identificador del sistema que sirve para tener acceso a recursos, a preferencias, a bases de datos, etcétera, de la aplicación. La clase Actividad se hereda de la clase Contexto; por lo tanto, se puede pasar esta Actividad como el Contexto de la aplicación escribiendo this.
Con el método setText() establecemos el texto contenido en la etiqueta.

Para acabar, usamos el método setContentView() para indicar a la Actividad el contenido de la interfaz de usuario.

Si ejecutas la aplicación en Eclipse deberás ver la siguiente ventana en el emulador:


Nota:
Al ejecutar varias veces una aplicación desde Eclipse puede ocurrir que aparezcan los siguientes mensajes de error en la consola:


Estos mensajes de error:
[2011‐11‐20 09:18:15 ‐ unidad1.eje1.bienvenido] Application already deployed.
No need to reinstall.
[2011‐11‐20 09:18:15 ‐ unidad1.eje1.bienvenido] Starting activity
es.mentor.unidad1.eje1.bienvenido.BienvenidoActivity on device emulator‐5554
[2011‐11‐20 09:18:16 ‐ unidad1.eje1.bienvenido] ActivityManager: Starting:
Intent { act=android.intent.action.MAIN
cat=[android.intent.category.LAUNCHER]
cmp=es.mentor.unidad1.eje1.bienvenido/.BienvenidoActivity}
[2011‐11‐20 09:18:16 ‐ unidad1.eje1.bienvenido] ActivityManager: Warning:
Activity not started, its current task has been brought to the front
Indican únicamente que no se ha modificado el código fuente y que la aplicación se muestra
de nuevo en el primer plano de la pantalla del dispositivo virtual.


Cambio en la Interfaz de usuario con Layout

Los Layout son elementos no visibles que establecen cómo se distribuyen en la interfaz del usuario los componentes (widgets) que incluyamos en su interior. Podemos pensar en estos elementos como paneles donde vamos incorporando, de forma diseñada, los componentes con los que interacciona el usuario.
Nota: La clase Layout se hereda, como el resto de componente, de la clase Vista. A lo largo del curso nos referimos a los componentes de Android como Vistas (Views) o como Widgets, tanto si son visibles (botones, texto, menús….) como si son elementos de diseño (layout).
En el ejemplo anterior hemos utilizado un diseño de interfaz de usuario "programado", es decir, se construye esta interfaz con sentencias Java en el código fuente. Si ya has desarrollado interfaces de esta manera, sabrás que pequeños cambios en su diseño pueden dar lugar a grandes modificaciones en el código fuente.

Al ser Android un lenguaje nuevo, permite desarrollar interfaces usando archivos de diseño (Layout) XML. La forma más fácil de explicar este concepto es mostrar un ejemplo. El fichero res/layout/main.xml define el diseño de la interfaz del usuario:

<?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/bienvenido"/>
</LinearLayout>

La estructura general de un archivo de diseño de interfaz XML de Android es simple. Se trata de un árbol de elementos XML, donde cada nodo es el nombre de una clase Vista (en este ejemplo, usamos las clases LinearLayout y TextView). Puedes utilizar el nombre de cualquier clase de tipo Vista (View) de Android o, incluso, una clase Vista personalizada por el programador.
El Layout LinearLayout apila secuencialmente todos sus elementos hijos de forma horizontal o vertical. En el apartado siguiente veremos diferentes tipos de paneles de diseño y sus características.
Esta estructura XML hace que sea más fácil y rápido crear las interfaces de usuario. 
Este modelo se basa en el modelo de desarrollo web, donde se separa la presentación (interfaz de usuario) de la lógica de la aplicación (encargada de leer y escribir la información).
En el ejemplo de XML anterior sólo hay un elemento Vista: TextView, que tiene tres atributos y un elemento de diseño Layout: LinearLayout, que tiene cuatro atributos. A continuación, mostramos una descripción de los atributos:

AtributoDescripción
xmlns:androidEsta declaración indica que vamos a usar el espacio de nombres (la terminología) de Android para referirnos a los atributos que se definen a continuación.
android:idAsigna un identificador único para el elemento correspondiente. Este identificador sirve para poder acceder al componente desde el código fuente o desde las declaraciones de otros elementos en este archivo XML.
android:layout_widthDefine el largo que debe ocupar la Vista. En este caso, indicamos que el TextView debe ocupar toda la pantalla con "fill_parent".
android:layout_heightSimilar al atributo anterior, en este caso, se refiere al ancho de la Vista.
android:textEstablece el texto que la Vista TextView debe mostrar. En este ejemplo se utiliza una cadena que se establece en el archivo res/values/strings.xml.

El título de la aplicación “Unidad1 - Ejemplo 1: Bienvenido” y la frase "¡Bienvenido al curso de Android de Mentor!", que aparecen en el área del usuario, se definen en el fichero res/values/strings.xml.

El SDK de Android permite definir los ficheros de tipo XML de dos formas: a través de un editor visual o directamente en el archivo XML. Se puede cambiar entre las dos formas haciendo clic en la pestaña de la parte inferior de la ventana. Por ejemplo, en el Package Explorer, seleccionamos res/layout/main.xml y hacemos clic en “Graphical Layout”:


En esta ventana podemos diseñar visualmente la pantalla de la aplicación Android arrastrando con el ratón los componentes que aparecen en el apartador “Palette”. 
Si en el Package Explorer seleccionamos res/layout/strings.xml y hacemos clic en “Resources”:


Usando en esta ventana el botón “Add” podemos añadir visualmente los diferentes tipos de recursos de Android.
Para crear la primera aplicación hemos usado componentes (Widgets o Vistas) usuales de Android. En el siguiente apartado de teoría explicaremos en detalle el tipo de componentes disponibles por defecto y cómo usarlos para diseñar las pantallas que servirán de interfaz gráfica al usuario.
Fichero AndroidManifest.xml: contiene la definición en formato XML de las características principales de la aplicación, como su identificación (nombre, versión, icono, etcétera), sus componentes (Actividades, Mensajes, Servicios, etcétera) o los permisos necesarios para su ejecución. Más adelante veremos otros detalles de este fichero. 
En este fichero hay que declarar la Actividad para que Android tenga acceso a la misma. 
Si abres el archive manifest, verás que existe el siguiente elemento <activity>:

<?xml version="1.0" encoding="utf‐8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
<activity android:name=".BienvenidoActivity"
android:label="@string/app_name">
...
</manifest>

En este fichero se pueden definir varios atributos para establecer la etiqueta de la actividad, su icono o el tema de estilo de la interfaz de usuario. El único atributo obligatorio es android:name, que especifica el nombre de clase de la actividad. Es importante usar siempre el mismo nombre de Actividad ya que otra aplicación puede iniciarla.

Importante: Aunque el código fuente de este ejemplo se encuentra disponible en la carpeta de ejemplos de esta unidad, es fundamental que crees este proyecto Android desde el principio para entender la secuencia de pasos dados y los ficheros necesarios. 
Además, si no has usado nunca el entorno de desarrollo Eclipse - Android, adquirirás soltura utilizándolo.


Compartamos el conocimiento. Hasta la próxima oportunidad!











  

No hay comentarios:

Publicar un comentario

       

Etiquetas

Academy (23) Accediendo a datos con ADO .NET (31) Acceso a la red (30) Algoritmo (34) Algoritmos en JAVA (2) Ampliación de clases (2) APRENDA A PROGRAMAR COMO SI ESTUVIERA EN PRIMERO - Autores : IKER AGUINAGA (3) APRENDA A PROGRAMAR COMO SI ESTUVIERA EN PRIMERO - Autores : IKER AGUINAGA (10) Aprendiendo a desarrollar en Windows 8 (5) Aprendiendo UML en 24 Horas (Autor : Joseph Schmuller ) (30) Arquitectura (29) Arquitectura del Computador (3) Arquitectura del Computador - Historia de la informática (1) Asignación de direcciones IP (23) Aspectos fundamentales de bases de datos (5) Auditoría de la dirección (2) Auditoría de Sistemas (3) Auditoría Informática - Un enfoque práctico - Mario G . Piattini y Emilio del Peso (7) Avanzado (23) Base de Datos (67) Básico (23) Bios (29) Business Productivity Online Suite - BPOS (3) Capa de Red (22) Capa de Transporte (16) Capítulo 1 - Documentos HTML5 (6) Capítulo 10. API Web Storage (2) Capítulo 11. API IndexedDB (4) Capítulo 12. API File (1) Capítulo 2. Estilos CSS y modelos de caja (7) Capítulo 3. Propiedades CSS3 (4) Capítulo 4. Javascript (6) Capítulo 5. Video y audio (6) Capítulo 6. Formularios y API Forms (8) Capítulo 7. API Canvas (5) Capítulo 8. API Drag and Drop (2) Capítulo 9. API Geolocation (2) CCNA1 v5.0 (214) CCNA1 v6.0 (23) CCNA2 v5.0 (26) CCNA3 v5.0 (25) CCNA4 v5.0 (23) CD-ROM (3) Chapter 1 How does Xamarin.Forms fit in? (7) Chapter 2 Anatomy of an app (5) Cisco (316) Cloud Computing (3) CNNA v5.0 Routing & Switching (235) CNNA v6.0 Routing & Switching (2) Codigo (2) Computadora (32) Configuración (29) Configuración de un sistema operativo de red (21) Control (29) Creación de tipos de datos y tablas (3) Creación y Administración de bases de datos (3) Creando la Interface de la Aplicación Windows (50) Creating Mobile Apps with Xamarin.Forms (13) Cuenta (29) Curso (32) Curso Aprendiendo a Programar (25) Datos (3) Desarrollando en Windows 8 - AVANZADO (2) Desarrollando en Windows 8 - BÁSICO (3) Desarrollando en Windows 8 - INTERMEDIO (2) Desarrollo (2) Desarrollo .Net (21) Desarrollo avanzado de Windows Store Apps usando C# (1) Desarrollo basado en conceptos de Ingeniería de Software para Visual Studio (2) DESARROLLO DE APLICACIONES WINDOWS CON MICROSOFT .NET (37) DESARROLLO DE APLICACIONES WINDOWS CON MICROSOFT .NET (Autor: Luis Dueñas Huaroto) (29) Desarrollo en Microsoft Visual Studio (44) Desarrollo en Microsoft Visual Studio - AVANZADO (15) Desarrollo en Microsoft Visual Studio - BÁSICO (14) Desarrollo en Microsoft Visual Studio - INTERMEDIO (18) Desarrollo en Windows Phone 8 (13) Diagnostico (4) Diagrama (3) Diagramas de actividades (2) Diagramas de colaboraciones (2) Diagramas de secuencias (2) Digital (2) Diplomado (2) Disco (29) Disco Duro (4) Diseño de aplicaciones de Windows 8 en HTML 5 (7) Dispositivos Electrónicos (11) Doctorado (2) Ejemplos (3) Ejemplos de algoritmos (27) El camino hacia el CSS3 (3) El diseño web flexible (6) El elemento de diseño Canvas (3) El enfoque de los sistemas (3) El flujo de un programa (2) El gran libro de HTML5 - CSS3 y Javascript - Autor: Juan Diego Gauchat (55) El principio de organicidad (7) Electrónica (2) Elementos de un sistema (5) Empresas (2) Entrada y salida (4) Entropía y neguentropía (7) Estrategia (2) Estructura de un programa Java (12) Estructuras de almacenamiento (10) Estructuras de control (6) Estructuras de las tablas en SQL Server (2) Estructuras fundamentales de los datos (2) Ethernet (21) Evolución y Familias de los Microprocesadores (15) Exámen (23) Exploración de la red (23) Extensión de clases (4) Facebook (4) Familia Intel (15) Forefront (8) Función (3) Funciones de una red (12) Funciones de una red informática (1) Fundamentos de C# para absolutos principiantes (17) Fundamentos de programación en Java (50) Generaciones de la computadora (5) Gestión (3) Gestión de riesgos - Auditoría de Sistemas (1) GONZALO MARTÍNEZ (1) Grupos Facebook (1) Harvard (29) Historia de las computadoras (11) HTML5 y CSS3 - Autor: Christophe Aubry (99) HTML5 y CSS3 aplicadal texto (7) HTML5 y CSS3 para los formularios (15) Imágenes (2) Implementación de Windows 7 (11) Información (31) Informática (29) Ingeniería (4) Instalar (29) Inteligencia (2) Inteligencia de Negocios con SQL Server (3) Intermedio (23) Internet (29) Internet Explorer 9 (3) Introducción a ASP.NET 5 (8) Introducción a Java (7) Introducción a jQuery (8) Introducción a la Auditoría de Sistemas (2) Introducción a la teoría general de sistemas (Oscar Johansen Bertoglio) (39) Introducción a Networking (2) Introducción a Window Forms (5) Introducción al acceso a datos con ADO .NET (9) Investigación de Operaciones (12) Java (52) Jump Start de consultas en las bases de datos de Microsoft SQL Server 2012 (8) La definición de un Sistema (6) La evolución del HTML y del CSS (3) La nueva sintaxis HTML5 (12) LA QUINTA DISCIPLINA en la práctica (Autor : Peter Senge) (28) Las animaciones en CSS3 (5) Las transformaciones CSS3 (11) Las transiciones con CSS3 (8) Licenciamiento Microsoft (3) Local Area Network (LAN) - Red de Area Local (2) Lógico (2) Los elementos de la estructura en html5 (9) Los elementos multimedia: audio y vídeo (2) Los estilos de caja en CSS3 (13) Los nuevos selectores de CSS3 (6) Maestría (2) Mantenimiento de Mouse y Teclado (2) Manual de Microsoft SQL Server - Full Transact SQL (68) Manual de soporte técnico para escuelas sobre windows 7 (42) Marco Teorico de Investigación de Operaciones (6) Medios de Almacenamiento (11) Medios de Networking (2) Mejorando la Interface de las Aplicaciones Windows (26) Memoria Tipos y Clases (5) Método (2) Metodología (1) Microsoft (324) Microsoft Lync 2010 (7) Microsoft Silverlight 4.0 (2) Microsoft Virtual Academy (356) Modelo (2) Modelo OSI y TCP-IP (2) Modelos con poco grado de dificultad de Programación Lineal - Investigación de Operaciones (13) Modelos con razonable grado de dificultad de Programación Lineal - Investigación de Operaciones (10) Modelos de desafio de Programación Lineal - Investigación de Operaciones (5) Modelos difíciles de Programación Lineal - Investigación de Operaciones (5) Modelos Fáciles de Programación Lineal - Investigación de Operaciones (13) Modelos lineales con solver (3) Modulo (23) Movimiento (2) Mozilla (29) MS SQL Server (77) MS Virtualization para Profesionales VMware - Gestión (3) MS Virtualization para Profesionales VMware- Plataforma (4) MVA (263) Negocio (2) Nivel Avanzado Desarrollo .Net (6) Nivel Básico Desarrollo .Net (11) Nivel Intermedio Desarrollo .Net (8) Normas técnicas peruanas y su evolución - Auditoría de Sistemas (1) Nube Privada - Avanzado (6) Nube Privada - Básico (6) Nube Privada - Intermedio (6) Office 365 (3) Optimización de Escritorio (10) Optimización de Escritorio - Avanzado (4) Optimización de Escritorio - Básico (3) Optimización de Escritorio - Intermedio (3) ORACLE 10g - ADMINISTRACIÓN Y ANÁLISIS (3) Oracle 10g y el Grid Computing (3) Organización aleatoria y secuencial (1) Partes principales de la Mainboard (12) Perceptron (2) Perfil (2) Periféricos de Entrada / Salida (15) Pesi (2) PHP y MySQL - Manual de aprendizaje para crear un sitio web - Autor : Olivier ROLLET (79) Plan (2) Plataforma (29) PMBOK (24) PMBOK - Guía de los fundamentos para la dirección de proyectos (24) PMBOK - INFLUENCIA DE LA ORGANIZACIÓN Y CICLO DE VIDA DEL PROYECTO (6) PMBOK - Introducción (11) PMBOK - PROCESOS DE LA DIRECCIÓN DE PROYECTOS (5) Prevención - Herramientas e Instrumentos de Medida (9) Principios básicos de enrutamiento y switching (188) Proceso (2) Proceso de auditoría de sistemas informáticos (2) Programación en Android - Auor : Salvador Gómez Oliver (46) Programación paso a paso de C# - Autor : Nacho Cabanes (16) Protocolos y comunicaciones de red (17) Proyecto (2) Qué es un sistema (4) Red de Área Local Inalámbrica (WLAN) (4) Redes (30) Redes inalámbricas - WIRELESS - Conocimiento general (15) Redes neuronales (2) Redes y Comunicaciones (45) Reparación de Fuentes - UPS - Estabilizadores (10) Reparación de Impresoras (9) Reparación de Monitores (16) Router (29) Seguridad en la Nube (3) Seminario (23) Server (24) Sharepoint 2010 - Nivel Básico (6) Sharepoint 2010 - Niveles Avanzados (18) Sharepoint 2010 - Niveles Avanzados - Básico (8) Sharepoint 2010 - Niveles Avanzados - Intermedio (9) Sinergia y recursividad (4) Sistema (33) Sistema de Cableado Estructurado (9) Software (30) SOLUCIÓN GRÁFICA DE MODELOS DE PROGRAMACIÓN LINEALES - INVOPE (8) Soporte a Infraestructura (3) SQL (38) SQL Azure - Introducción (3) Subsistemas de control (4) Tablas (4) Tarjeta Principal del Sistema (10) Tarjetas de Interfaces (7) Tecnología (31) Tecnologías LAN (1) TEORÍA GENERAL DE SISTEMAS (1) Tic (2) Tipo (2) TML5 y CSS3 - Autor: Christophe Aubry (12) Trabajando con el Formulario (7) Un diseño HTML5/CSS3: dConstruct 2011 (3) Un diseño HTML5/CSS3: FlipThru (2) Un diseño HTML5/CSS3: The Cat Template (2) Usando Controles Windows Forms (12) Usando Herramientas de Datos de Visual Studio (6) Ventas (2) Virtualización Hyper - V Nivel Básico (5) Virtualización Hyper - V Nivel Intermedio (5) What’s New in Windows 8.1 Security (4) Window (29) Windows 7 Segunda Fase - AVANZADO (4) Windows 7 Segunda Fase - BÁSICO (6) Windows 7 Segunda Fase - INTERMEDIO (4) Windows 8 - Vista Previa (4) Windows 8.1 To Go (2) Windows Azure (3) Windows Phone 7 (2) Windows Server 2008 R2 (3) Windows Server 2012 - Gestión y Automatización (3) Windows Server 2012 R2 Essentials (7) Windows Server 2012: Almacenamiento (5) Windows Server 2012: Identidad y Acceso (4) Windows Server 2012: Revisión Técnica (7) Xamarin (1)

Páginas vistas en total según Google