Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Indice de contenido
eap 1
I. Fundamentos de desarrollo de aplicaciones en
Android Studio
Actividades
Servicios
Receptores de difusión
Proveedor de contenido
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
}
Sintaxis:
public class MyReceiver extends BroadcastReceiver{
public void onReceive(context,intent){
}
Sintaxis:
public class MyContentProvider extends ContentProvider{
public void onCreate()
{}
}
eap 3
3. Diseño estructural de Android Studio
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.
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
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:
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.
Java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
1. enCrear()
2. en pausa ()
1. Método onCreate()
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 .
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,
XML
<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.
<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.
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.
1. 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:
ContentProvider.
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)
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.
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)
Carpeta de Manifiest
<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" />
</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".
eap 14
Java
package com.programaciondispmoviles.miprimerajava_app;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
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:
eap 15
XML, contenido del archivo ”activity_main.xml”
<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>
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>
eap 16
Estructura de los archivos de la aplicación de Android
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.
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.
eap 18
A continuación se muestra un archivo de diseño de muestra:
<resources>
<string name="app_name">MiPrimeraApp</string>
</resources>
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>
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.
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:
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;
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.
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:
eap 24
2. Captura de pantalla del “AndroidManifest.xml”
eap 25