Está en la página 1de 25

PROGRAMACIÓN DE APLICACIONES MOVILES

CON ANDROID STUDIO

Indice de contenido

I. Fundamentos de desarrollo de aplicaciones en Android Studio


II. Introducción a la Activity de Android
III. Componentes de una aplicación Android
IV. Estructura de las carpetas de un proyecto Android
V. Tarea y Prácticas de programación Android, proyectos a realizar.

eap 1
I. Fundamentos de desarrollo de aplicaciones en
Android Studio

Android es un sistema operativo construido básicamente para teléfonos móviles. Se


basa en el kernel de Linux y otro software de código abierto y está desarrollado
por Google . Se utiliza para dispositivos móviles con pantalla táctil, como teléfonos
inteligentes y tabletas. Pero hoy en día, estos se utilizan en automóviles, televisores,
relojes, cámaras, etc. con Android Auto. Ha sido uno de los sistemas operativos más
vendidos para teléfonos inteligentes. El sistema operativo Android fue desarrollado
por Android Inc. que Google compró en 2005. Varias aplicaciones (apps) como juegos,
reproductor de música, cámara, etc. están diseñadas para estos teléfonos inteligentes
para ejecutarse en Android. La tienda Google Play cuenta con más de 3.3 millones de
aplicaciones. La aplicación está desarrollada en una aplicación conocida como Android
Studio.Estas aplicaciones ejecutables se instalan a través de un paquete llamado APK
(Android Package Kit)

1. Lenguajes de programación de Android

En Android, básicamente, la programación se realiza en dos lenguajes JAVA o


C++ y XML (Extension Markup Language) . Hoy en día también se prefiere KOTLIN. El
archivo XML se ocupa del diseño, la presentación, los diseños, el plano, etc. (como
front-end), mientras que JAVA o KOTLIN se ocupa del funcionamiento de los botones,
las variables, el almacenamiento, etc. (como back-end).
2. Componentes de Android

Los componentes de la aplicación son los componentes básicos de Android. Cada


componente tiene su propia función y ciclos de vida, es decir, desde el lanzamiento de
una aplicación hasta el final. Algunos de estos componentes también dependen de
otros. Cada componente tiene un propósito definido. Los cuatro componentes
principales de la aplicación son:

 Actividades
 Servicios
 Receptores de difusión
 Proveedor de contenido

Actividades: se ocupa de la interfaz de usuario y las interacciones del usuario con la


pantalla. En otras palabras, es una interfaz de usuario que contiene actividades. Estos
pueden ser uno o más dependiendo de la aplicación. Comienza cuando se inicia la
aplicación. Siempre está presente al menos una actividad que se conoce como
MainActivity. La actividad se implementa a través de lo siguiente.

Sintaxis:
public class MainActivity extends Activity{
// processes

eap 2
}

Servicios: los servicios son las acciones en segundo plano realizadas por la aplicación,
estas pueden ser operaciones de larga duración, como un usuario que reproduce
música mientras navega por Internet. Un servicio puede necesitar otros subservicios
para realizar tareas específicas. El objetivo principal de los Servicios es proporcionar un
funcionamiento ininterrumpido de la aplicación sin interrumpir la interacción con el
usuario.

Sintaxis:
public class MyServices extends Services{
// code for the services
}

Receptores de Difusión: Una Difusión se utiliza para responder a mensajes de otras


aplicaciones o del Sistema. Por ejemplo, cuando la batería del teléfono está baja, el
sistema operativo Android envía un mensaje de transmisión para iniciar la función o la
aplicación Ahorro de batería; después de recibir el mensaje, la aplicación toma la acción
adecuada. Broadcast Receiver es la subclase de la clase BroadcastReceiver y cada
objeto está representado por objetos Intent.

Sintaxis:
public class MyReceiver extends BroadcastReceiver{
public void onReceive(context,intent){
}

Para conocer más receptores de transmisión, consulte este artículo:

Proveedor de contenido: el proveedor de contenido se utiliza para transferir los datos


de una aplicación a las demás a pedido de la otra aplicación. Estos son manejados por
la clase clase ContentResolver. Esta clase implementa un conjunto de API (interfaz de
programación de aplicaciones) que permite que las otras aplicaciones realicen las
transacciones. Cualquier proveedor de contenido debe implementar la clase principal de
la clase ContentProvider.

Sintaxis:
public class MyContentProvider extends ContentProvider{
public void onCreate()
{}
}

eap 3
3. Diseño estructural de Android Studio

La figura anterior representa las diversas estructuras de una aplicación.

Carpeta de Manifest: Android Manifest es un archivo XML que es la raíz del conjunto
de fuentes del proyecto. Describe la información esencial sobre la aplicación y las
herramientas de compilación de Android, el sistema operativo Android y Google
Play. Contiene el permiso que una aplicación puede necesitar para realizar una tarea
específica. También contiene las funciones de hardware y software de la aplicación, lo
que determina la compatibilidad de una aplicación en Play Store. También incluye
actividades especiales como servicios, receptor de transmisión, proveedores de
contenido, nombre del paquete, etc.

Carpeta Java: la carpeta JAVA consta de los archivos Java necesarios para realizar la
tarea en segundo plano de la aplicación. Consiste en la funcionalidad de los botones,
cálculo, almacenamiento, variables, brindis (pequeño mensaje emergente), función de
programación, etc. El número de estos archivos depende del tipo de actividades creadas.

Carpeta de Res o resource (recursos): la carpeta res o Resource consta de los


diversos recursos que se utilizan en la aplicación. Esto consta de subcarpetas como
drawable (dibujable), layout (diseño), mipmap (mip mapa) sin procesar y value
(valores). El drawable consiste en las imágenes. El layout consta de los archivos XML
que definen el diseño de la interfaz de usuario. Estos se almacenan en res.layout y se
accede a ellos como clase R.layout. El raw consta de archivos de recursos como
archivos de audio o archivos de música, etc. Se accede a estos a través de
R.raw.filename. Los valores se utilizan para almacenar las cadenas codificadas
(consideradas seguras para almacenar valores de cadena), valores, enteros y
colores. Se compone de varios otros directorios como:

eap 4
 R.array :arrays.xml para matrices de recursos
 R.integer : integers.xml para enteros de recursos
 R.bool: bools.xml para recurso booleano
 R.color :colors.xml para valores de color
 R.string: strings.xml para valores de cadena
 R.dimen: dimens.xml para valores de dimensión
 R.style: estilos.xml para estilos

Gradle Archivos: Gradle es un conjunto de herramientas avanzado, que se utiliza para


administrar el proceso de compilación, que permite definir las configuraciones de
compilación personalizadas y flexibles. Cada configuración de compilación puede definir
su propio conjunto de código y recursos mientras reutiliza las partes comunes a todas
las versiones de su aplicación. El complemento de Android para Gradle funciona con el
kit de herramientas de compilación para proporcionar procesos y configuraciones
configurables que son específicas para compilar y probar aplicaciones de
Android. Gradle y el complemento de Android se ejecutan independientemente de
Android Studio. Esto significa que puede crear sus aplicaciones de Android desde
Android Studio. La flexibilidad del sistema de compilación de Android le permite realizar
configuraciones de compilación personalizadas sin modificar los archivos de origen
principales de su aplicación.

Diseño básico Puede definirse en una estructura de árbol como:

Project/
app/
manifest/
AndroidManifest.xml
java/
MyActivity.java
res/
drawable/
icon.png
background.png
drawable-hdpi/
icon.png
background.png
layout/
activity_main.xml
info.xml
values/
strings.xml

eap 5
4. Ciclo de vida de la actividad en la aplicación de Android
El ciclo de vida de la actividad en la aplicación de Android se puede mostrar a través de
este diagrama:

Los estados del ciclo de vida de una app en Android

4.1. Los estados del ciclo de vida de una app en Android:

1. OnCreate: se llama cuando se crea la actividad por primera vez.


2. OnStart: se llama cuando la actividad se vuelve visible para el usuario.
3. OnResume: Esto se llama cuando la actividad comienza a interactuar con el usuario.
4. OnPause: se llama cuando la actividad no es visible para el usuario.
5. OnStop: Esto se llama cuando la actividad ya no es visible.
6. OnRestart: se llama cuando se detiene la actividad y se reinicia de nuevo.
7. OnDestroy: Esto se llama cuando la actividad se va a cerrar o destruir.

II. Introducción al Activity de Android


La clase Activity o actividad es una de las partes más importantes de los componentes
de Android. Cuando estamos hablando de activity o actividad nos estamos refiriendo a la
pantallas de la app o simplemente la interfaz gráfica de usuario.
Cualquier aplicación, por pequeña que sea (en términos de código y escalabilidad), tiene
al menos una clase activity. A diferencia de la mayoría de los lenguajes de
programación, en los que el método main() es el punto de entrada para que ese
programa o que la aplicación comience su ejecución, el sistema operativo Android inicia

eap 6
el código en una instancia de actividad o activity invocando métodos de devolución de
llamada específicos que corresponden a etapas específicas de su ciclo de vida.
Entonces se puede decir que una activity o actividad es el punto de entrada para
interactuar con el usuario. Cada activity contiene el diseño, que tiene una interfaz de
usuario para interactuar con el usuario. Como sabemos que cada actividad contiene un
diseño asociado, se puede decir que la clase activity o actividad es la puerta de enlace a
través de la cual un usuario puede interactuar mediante programación con la interfaz de
usuario.

El diseño de una activity (actividad) en particular se establece con la ayuda


de setContentView(). setContentView() es una función que toma View como
parámetro. El parámetro de vista básicamente contiene el archivo de diseño para esa
activity o actividad. Aquí se le proporciona el código en Java como lenguaje de
programación de Android.

El siguiente código indica que activity_main es el archivo de diseño de


MainActivity o clase principal

Java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

Si bien las activity o actividades a menudo se presentan al usuario como la ventana de


pantalla completa, el modo de ventanas múltiples o el modo Imagen también se puede
presentar con la clase activity. Por igual, los siguientes dos métodos se implementarán
en casi todas las subclases de Actividad o Actitivy:

1. enCrear()
2. en pausa ()

1. Método onCreate()

The syntax for Java:


protected void onCreate(Bundle savedInstanceState)

Este método se denomina parte del ciclo de vida de la actividad cuando el usuario ya no
interactúa activamente con la activity o actividad, pero aún está visible en la
pantalla. Supongamos que el usuario está ejecutando dos aplicaciones simultáneamente

eap 7
en su teléfono móvil, es decir, cuando la activity B se inicia frente a la activity A, la
activity A irá al estado onPause() y la activity B irá al estado onStart() del ciclo de vida
de la activity o actividad. Un punto importante a recordar es que para que un sistema
acceda a cualquier activity o actividad en android dicho activity o actividad deberá estar
declarada en el archivo de “Manifiest” de la app. El archivo de “Manifiest” es un
archivo XML incluido en la aplicación y se conoce de forma predeterminada
como AndroidManifest.xml .

Declaración de actividad en el archivo de manifiesto

Abra la carpeta de la aplicación, luego abra el manifiesto de la subcarpeta y luego abra


el archivo AndroidManifest.xml .

Supongamos que el lector quiere tener una actividad más, además de MainActivity que
se incluye por defecto en el proyecto. Antes de añadir una actividad más y no hacer
ningún cambio,

Veamos cómo se ve el siguiente archivo AndroidManifest.xml

XML

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


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.gfg.exampleactivity">

<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.ExampleActivity"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

eap 8
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

Si se fija bien en el contenido del archivo XML anterior encontrará la etiqueta que dice
android:name=".MainActivity" que es la que añade dicha activity dentro de este
archivo.

Ahora si agregamos otro activity o actividad y se le llama “SecondActivity” y se debe


declarar así mismo también dentro del archivo Manifiest, Se debe escribir el código de
declaración dentro de la etiqueta de la aplicación, de lo contrario , la declaración
dará el error y el sistema no detectará “SecondActivity”. El código de declaración se
proporciona a continuación.

<activity
android:name=".SecondActivity"
android:exported="true" >
</activity>

Por lo que se puede concluir, una aplicación puede tener uno o más activity o pantallas
sin ninguna restricción. Cada activity que utiliza la aplicación de Android debe declararse
en el archivo AndroidManifest.xml . y la activity principal de la aplicación debe
declararse en el Manifiest con un <intent-filter> que incluye la acción PRINCIPAL y el
INICIO. Cualquier activity, ya sea MainActivity o cualquier otra activity, debe declararse
dentro de la <aplicación> del AndroidManifest. Si el usuario olvida declarar algunos de
los activity, Android no podrá detectar esa actividad en la aplicación. Si la acción
PRINCIPAL o la categoría LAUNCHER no se declaran para la actividad principal, el
icono de la aplicación no aparecerá en la lista de aplicaciones de la pantalla de inicio.

Adición de permisos a la aplicación

Para cualquier servicio que el desarrollador desee utilizar en la aplicación de Android,


como el servicio de Internet, el servicio de Bluetooth, Google Maps, el servicio de
notificación de la aplicación, etc., el desarrollador debe obtener el permiso del sistema
Android. Todos aquellos Permisos o Solicitudes deberán declararse dentro del
expediente del archivo Manifiest.

Por ejemplo: abra el archivo AndroidManifest.xml, y digamos que el usuario necesita


agregar un permiso de Internet, al que debe acceder la aplicación. Agregue el
siguiente permiso de Internet dentro de la etiqueta del archivo Manifiest.

<uses-permission android:name="android.permission.INTERNET" />

Digamos que necesita agregar el permiso de Bluetooth dentro de la aplicación, para


este se debe declararse así:
eap 9
<uses-permission android:name="android.permission.BLUETOOTH" />

Nota importante: Es vital que comprenda que casi siempre en “MainActivity” se procede
a hacerse la extensión “AppCompatActivity”. Esto lo puede ver en el fragmento de
código Java que se muestra en la parte superior anterior, internamente la estructura es
como se muestra en la imagen que se muestra a continuación. Se puede ver
que AppCompatActivity también amplía la clase de actividad.

III. Componentes de una aplicación Android


Hay algunos bloques de construcción necesarios en los que consiste una aplicación de
Android. Estos componentes debidamente acoplados están vinculados por el archivo de
Manifiest de la aplicación que contiene la descripción de cada componente y cómo
interactúan. El archivo de Manifiest también contiene los metadatos de la aplicación, su
configuración de hardware y los requisitos de la plataforma, las bibliotecas externas y
los permisos necesarios. Estos son los siguientes componentes principales de una
aplicación de Android:

1. Activity

Se dice que las activities o actividades son la capa de presentación de nuestras


aplicaciones. La interfaz de usuario de nuestra aplicación se basa en una o más
extensiones de la clase Activity. Al usar Fragmentos y Vistas, las actividades establecen
el diseño y muestran el resultado y también responden a las acciones del usuario. Una
activity se implementa como una subclase de la clase Activity.

public class MainActivity extends Activity {


}

2. Service

Los service son como trabajadores invisibles de nuestra aplicación. Estos componentes
se ejecutan en el backend, actualizan sus fuentes de datos y actividades, activan
notificaciones y también transmiten intenciones. También realizar algunas tareas cuando

eap 10
las aplicaciones no están activas. Un servicio se puede utilizar como una subclase de la
clase Service:

public class ServiceName extends Service {


}

3. Content Providers (Proveedores de contenido)

Se utiliza para administrar y conservar los datos de la aplicación y, por lo general,


también interactúa con la base de datos SQL. También son responsables de compartir
los datos más allá de los límites de la aplicación. Los proveedores de contenido de una
aplicación en particular se pueden configurar para permitir el acceso desde otras
aplicaciones, y también se pueden configurar los proveedores de contenido expuestos
por otras aplicaciones. Un proveedor de contenido debe ser una subclase de la clase

ContentProvider.

public class contentProviderName extends ContentProvider {


public void onCreate(){}
}

4. Broadcast Receivers (Transmisores Receptores)

La transmisión en Android son los eventos de todo el sistema que pueden ocurrir
cuando el dispositivo se inicia, cuando se recibe un mensaje en el dispositivo o cuando
se reciben llamadas entrantes, o cuando un dispositivo pasa al modo avión, etc. Los
receptores de transmisión se utilizan para responder a estos eventos en todo el sistema.
Los receptores de difusión nos permiten registrarnos para los eventos del sistema y de
la aplicación, y cuando ocurre ese evento, se notifica a los receptores de registro.

5. Intents (Intenciones)

Es un poderoso marco de paso de mensajes entre aplicaciones. Se utilizan ampliamente


en todo Android. Las Intents se pueden usar para iniciar y detener actividades y
servicios, para transmitir mensajes en todo el sistema o para un activity o actividad, un
servicio o un receptor de transmisión explícitos, o para solicitar que se realice una
acción en un dato en particular.

6. Widgets

Estos son los pequeños componentes de aplicaciones visuales que puedes encontrar en
la pantalla de inicio de los dispositivos. Son una variación especial de los receptores de

eap 11
transmisión que nos permiten crear componentes de aplicaciones dinámicos e
interactivos para que los usuarios los integren en su pantalla de inicio.

7. Notifications (Notificaciones)

Las notificaciones son las alertas de la aplicación que se utilizan para llamar la atención
del usuario sobre algún evento de la aplicación en particular sin robar el foco o
interrumpir la actividad actual del usuario. Por lo general, se utilizan para captar la
atención del usuario cuando la aplicación no está visible o activa, particularmente desde
un Servicio o Receptor de transmisión. Ejemplos: ventanas emergentes de correo
electrónico, ventanas emergentes de Messenger, etc.

IV. Estructura de las carpetas de un proyecto Android


Android Studio es el IDE (Entorno de desarrollo integrado) oficial desarrollado por la
comunidad de JetBrains que Google proporciona gratuitamente para el desarrollo de
aplicaciones de Android.

Después de completar la configuración de la arquitectura de Android, podemos crear


aplicaciones de Android. Para ello, necesitamos crear un nuevo proyecto para cada
aplicación que deseemos crear y por eso debemos comprender la estructura de las
carpetas en Android Studio, la cual se parece la que esta en la siguiente imagen:

El proyecto de Android contiene diferentes tipos de módulos de aplicaciones,


archivos de código fuente y archivos de recursos. Exploraremos todas las carpetas y

eap 12
archivos en la aplicación de Android.

1. Carpeta de Manifiest
2. Carpeta Java
3. Carpeta Res (Recursos)
 Carpeta drawable (dibujable)
 Carpeta de layout (diseño)
 Carpeta de mipmap (mapas MIP)
 Carpeta de value (valores)

4. Scripts Gradle (herramienta de compilación)

Carpeta de Manifiest

La carpeta de manifiestos contiene el archivo AndroidManifest.xml para crear la


aplicación de Android. Este archivo contiene información sobre nuestra aplicación, como
la versión de Android, los metadatos, el paquete de estados para el archivo Java o Kotlin
y otros componentes de la aplicación. Actúa como intermediario entre el sistema
operativo Android y nuestra aplicación.

A continuación se muestra la estructura de la carpeta de Manifiest de Android.

Contenido del archivo “AndroidManifest.xml”

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


<manifest xmlns:android="http:// schemas.android.com/apk/res/android"
package="com.programaciondispmoviles.miprimerajava_app">

<application
android:allowBackup="true"

eap 13
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />


</intent-filter>
</activity>
</application>

</manifest>

Carpeta Java

La carpeta Java contiene todos los archivos de código fuente de Java o Kotlin (.java)
que creamos durante el desarrollo de la aplicación, incluidos otros archivos de
prueba. Si creamos cualquier proyecto nuevo usando Java o Kotlin, de forma
predeterminada, el archivo de clase MainActivity.kt se creará automáticamente con el
nombre del paquete, por ejemplo: "com.programaciondispmoviles.miprimerajava_app".

Contenido del archivo “MainActivity.java” y “MainActivity.kt”, este último para


Kotlin.

eap 14
Java

package com.programaciondispmoviles.miprimerajava_app;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

Carpeta Res o de recursos

La carpeta Res es una carpeta importante porque contiene todas las fuentes sin código,
como imágenes, diseños XML y cadenas de interfaz de usuario para nuestra aplicación
de Android. La la siguiente imagen:

Subcarpeta res / drawable o de recursos de dibujables

Contiene los diferentes tipos de imágenes utilizadas para el desarrollo de la


aplicación. Necesitamos agregar todas las imágenes en una carpeta dibujable para el
desarrollo de la aplicación.

Subcarpeta res /layout o de recursos de diseño


La carpeta de diseño contiene todos los archivos de diseño XML que usamos para
definir la interfaz de usuario de nuestra aplicación y cualquier otro elemento de
diseño. Contiene el archivo ”activity_main.xml”.

eap 15
XML, contenido del archivo ”activity_main.xml”

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


<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http:// schemas.android.com/apk/res/android"
xmlns:app="http:// schemas.android.com/apk/res-auto"
xmlns:tools="http:// schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Subcarpeta res / value o de recursos valores


Esta carpeta contiene archivos “launcher.xml" para definir iconos que se utilizan para
mostrar en la pantalla de inicio. Contiene diferentes tipos de densidad de iconos según
el tamaño del dispositivo, como hdpi, mdpi, xhdpi.

La carpeta de valores contiene una serie de archivos XML como cadenas, dimensiones,
colores y definiciones de estilo. Uno de los archivos más importantes es el
archivo strings.xml que contiene los recursos.

<resources>
<string
name="app_name">NameOfTheApplication</string>
<string name="checked">Checked</string>
<string name="unchecked">Unchecked</string>
</resources>

Carpeta Gradle Scripts

Gradle significa sistema de compilación automatizado y contiene una serie de archivos


que se utilizan para definir una configuración de compilación que se puede aplicar a
todos los módulos de nuestra aplicación. En build.gradle (Proyecto) hay scripts de
compilación y en build.gradle (Módulo) se utilizan complementos e implementaciones
para crear configuraciones que se pueden aplicar a todos nuestros módulos de
aplicación. Ver la siguiente imagen Grandle Scripts

eap 16
Estructura de los archivos de la aplicación de Android

Es muy importante conocer los conceptos básicos de la estructura de archivos de


Android Studio. En este artículo, se explican algunos archivos/carpetas importantes y su
significado para facilitar la comprensión del entorno de trabajo de Android Studio.
En la imagen de abajo, varios archivos importantes están marcados:

A continuación se explican brevemente todos los archivos marcados en esta imagen:

eap 17
1. AndroidManifest.xml : cada proyecto en Android incluye un archivo de manifiesto,
que es AndroidManifest.xml , almacenado en el directorio raíz de su jerarquía de
proyectos. El archivo de manifiesto es una parte importante de nuestra aplicación
porque define la estructura y los metadatos de nuestra aplicación, sus componentes y
sus requisitos. Este archivo incluye nodos para cada una de las actividades, servicios,
proveedores de contenido y receptor de transmisión que forman la aplicación y,
mediante el uso de filtros de intención y permisos, determina cómo se coordinan entre sí
y con otras aplicaciones.

Un archivo AndroidManifest.xml típico se ve así:

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


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.programaciondispmoviles.miprimerajava_app">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

2. Java: la carpeta Java contiene los archivos de código fuente de Java. Estos archivos
se utilizan como controlador para la interfaz de usuario controlada por el (archivo layout
o de diseño). Obtiene los datos del archivo de diseño y, después de procesarlos, la
salida de datos se mostrará en el diseño de la interfaz de usuario. Funciona en el
backend de una aplicación de Android.

3. drawable: una carpeta dibujable contiene un archivo de tipo de recurso (algo que se
puede dibujar). Los Drawables pueden tomar una variedad de archivos como Bitmap
(PNG, JPEG), Nine Patch, Vector (XML), Shape, Layers, States, Levels y Scale.

4. layout: un diseño define la estructura visual de una interfaz de usuario, como la


interfaz de usuario de una aplicación de Android. Esta carpeta almacena archivos de
diseño o layout que están escritos en lenguaje XML. Puede agregar widgets o objetos
de diseño adicionales como elementos secundarios para crear gradualmente una
jerarquía de vistas que defina su archivo de diseño.

eap 18
A continuación se muestra un archivo de diseño de muestra:

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


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a Button" />
</LinearLayout>

5. mipmap : la carpeta Mipmap contiene el archivo de recursos de imagen que se puede


usar en la aplicación Android Studio. Puede generar los siguientes tipos de íconos,
como íconos del iniciador, íconos de barra y pestaña de acción e íconos de notificación.

6. colors.xml : el archivo colors.xml contiene los recursos de color de la aplicación de


Android. Los diferentes valores de color se identifican con un nombre único que se puede
usar en el programa de aplicación de Android.

A continuación se muestra un archivo “colors.xml” de muestra:


<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
</resources>

7. strings.xml : el archivo strings.xml contiene recursos de cadena de la aplicación de


Android. El valor de cadena diferente se identifica con un nombre único que se puede
usar en el programa de aplicación de Android. Este archivo también almacena una
matriz de cadenas mediante el lenguaje XML.

A continuación se muestra un archivo colors.xml de muestra:

<resources>
<string name="app_name">MiPrimeraApp</string>
</resources>

8. styles.xml : El archivo styles.xml contiene recursos del estilo del tema en la


aplicación de Android. Este archivo está escrito en lenguaje XML.

eap 19
A continuación se muestra un archivo de muestra de estilos.xml:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>

9. build.gradle(Module: app) : Esto define las configuraciones de compilación


específicas del módulo. Aquí puede agregar las dependencias que necesita en su
aplicación de Android.

apply plugin: 'com.android.application'


android {
compileSdkVersion 26
defaultConfig {
applicationId "com.programaciondispmoviles.miprimerajava_app"
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-
rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:0.5'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2'
}

eap 20
V. Tareas y Prácticas de programación Android,
proyectos a realizar:
1. Resumen del contenido de este material que deberá contener: Presentación,
introducción, desarrollo, conclusión. Además agregar las capturas de pantallas
de las prácticas de los dos programas creados en android studio.

2. Realizar los siguientes dos programas en android studio y tomar captura de


pantallas según se indican en las imágenes mas abajo presentadas:
a) Los proyectos a realizar deberán contener:
i. Name: nombre de la practica
ii. Package_name:
com.programaciondispmoviles.eduardoarvelo20180121
(este último es el nombre del estudiante y su matricula). ver las siguientes
imágenes de ejemplos:

b) Nota: en las imágenes capturadas de las carpetas: Manifest, Java y Grandle


Script deben de estar desplegadas o extendidas para ver su contenido.
c) Ver en las imágenes de ejemplo las indicaciones que estan marcadas de
color rojo.

Ver los siguientes dos (2) de la prácticas de programación de aplicaciones móviles


en Android Studio para entregar:

1. Crear una app que muestre la ejecución del ciclo de vida de una app en Android.
Efectuar el siguiente programa en Android Studio:

1 package com.programaciondispmoviles.miprimerajava_app;
2
3 import android.support.v7.app.AppCompatActivity;
4 import android.os.Bundle;
5
6 public class MainActivity extends AppCompatActivity {
7
8 @Override
9 protected void onCreate(Bundle savedInstanceState) {
10 super.onCreate(savedInstanceState);
11 setContentView(R.layout.activity_main);
12 }
13
14 @Override
15 protected void onStart() {
16 super.onStart();
17 Toast.makeText(this, "OnStart", Toast.LENGTH_SHORT).show();
18 // La actividad está a punto de hacerse visible.
19 }
20 @Override
21 protected void onResume() {
22 super.onResume();
23 Toast.makeText(this, "OnResume", Toast.LENGTH_SHORT).show();
24 // La actividad se ha vuelto visible (ahora se "reanuda").
25 }
26 @Override

eap 21
27 protected void onPause() {
28 super.onPause();
29 Toast.makeText(this, "OnPause", Toast.LENGTH_SHORT).show();
30 // Enfocarse en otra actividad (esta actividad está a punto de ser "detenida").
31 }
32 @Override
33 protected void onStop() {
34 super.onStop();
35 Toast.makeText(this, "OnStop", Toast.LENGTH_SHORT).show();
36 // La actividad ya no es visible (ahora está "detenida")
37 }
38 @Override
39 protected void onDestroy() {
40 super.onDestroy();
41 Toast.makeText(this, "OnDestroy", Toast.LENGTH_SHORT).show();
42 // La actividad está a punto de ser destruida.
43 }
44 }

2. Crear una app que muestre una pantalla de bienvenida. Efectuar el siguiente
programa en Android Studio:

Una pantalla de inicio es principalmente la primera pantalla o activity de la aplicación


cuando se abre. Es una pantalla constante que aparece durante un tiempo específico,
generalmente se muestra por primera vez cuando se inicia la aplicación. La pantalla de
bienvenida se utiliza para mostrar información introductoria básica, como el logotipo de
la empresa, el contenido, etc., justo antes de que la aplicación se cargue por completo.

Crear una pantalla de bienvenida usando un controlador en Android


Aquí creamos dos actividades MainActivity que muestran la pantalla de bienvenida y
SecondActivity para cambiar de MainActivity a SecondActivity. El programa principal
está escrito en MainActivity, puede cambiar las actividades según sus necesidades.
 Para eliminar ActionBar, debe realizar los siguientes cambios en su archivo
styles.xml.

nombre de estilo="AppTheme" padre="Tema.AppCompat.Light.NoActionBar"

 Utilice colores que sean adecuados para su aplicación.


 No es necesario realizar ningún cambio en su archivo de manifiesto.

Usando la función 'postDelayed()':

public final boolean postDelayed(Runnable Object token, long delayMillisec)


Esta función retrasa el proceso por un tiempo específico. Esto se usa con un controlador
que le permite enviar y procesar objetos Message y Runnable asociados con
MessageQueue de un subproceso. Cada instancia del controlador es un único
subproceso.

A continuación se muestra el código para crear la pantalla de bienvenida:

eap 22
MainActivity.java ejemplo del código que deben emplear en esta tarea:
package com.programaciondispmoviles.eduardoarvelo20180121;

import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;

public class MainActivity extends AppCompatActivity {

private static int TIEMPO_ESPERA_APERTURA_PANTALLA=2000;


//Después de completar 2000 ms, comenzará el siguiente activity.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
//Este método se usa para ampliar la pantalla o activity
//para que pueda cubrir la pantalla completa.

setContentView(R.layout.activity_main);
//Esta unirá la MainActivity.class con el archivo activity_main.

new Handler().postDelayed(new Runnable() {


@Override
public void run() {
Intent i=new Intent(MainActivity.this,
SecondActivity.class);
//"Intent” es usado para cambiar desde un activity a otro
//el segundo activity es “SecondActivity.class”

startActivity(i);
//esta instrucción invoca a el “SecondActivity”.

finish();
//El actual activity llega a su fin.
}
}, TIEMPO_ESPERA_APERTURA_PANTALLA);
}
}

eap 23
Imágenes de ejemplos de como serán las pantallas entregadas:

1. Captura de pantalla de la creación del proyecto “New Project”

2. Captura de pantalla del “MainActivity.java”

eap 24
2. Captura de pantalla del “AndroidManifest.xml”

eap 25

También podría gustarte