Curso202223/PMDM/apuntes_android.md

3.3 KiB

Apuntes Android Studio (Generales)

Archivo Manifest (AndroidManifest.xml)

El propósito de éste archivo es aportar información al compilador, al sistema operativo y a la tienda de aplicaciones. Su ubicación es en la raíz del proyecto.

Obligatoriamente debe contener:

  • Componentes de la app (activities, services, etc)
    • Intent-filter, le especifica al sistema como debe interactuar con esa activity, en función de atributo que declaremos en el elemento action.
  • Permisos necesarios
  • Hardware y software requeridos para su funcionamiento (API)

Ejemplo Manifest

AndroidManifest.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">
    <!-- Componentes de la app -->
    <application>
        <activity>
            <intent-filter>
                <action/>
                <category/>
            </intent-filter>
        </activity>
        <service></service>
        <receiver></receiver>
        <provider></provider>
    </application>
    <!-- Permisos necesarios -->
    <uses-permission android:name="PERMISSION-TO-GET"/>
    <!-- Hardware requerido -->
    <uses-feature android:name="HW-TO-USE" android:required="true"/>
    <!-- Versiones de API en las que funciona la app -->
    <uses-sdk android:[min|target|max]SdkVersion="1"/>
</manifest>

Documentación oficial

Placeholders

Para usar placeholders en lugar de hacer hardcode en la lógica de java, se usan ficheros de recursos. En ellos se codifican los strings incluyendo los placeholders.

Al llamar al método getString() de la clase abstracta Context, se le pasa como argumento la referencia al recurso a usar, y el dato que va a sustituir el placeholder del recurso.

Ejemplo placeholder

string.xml

<resources>
    <string name="texto_completo">Ejemplo de %1$s</string>
</resources>

code.java

String sustituto_placeholder = "Programación";
System.out.println(getString(R.string.texto_completo, sustituto_placeholder));

Salida

Ejemplo de Programación

Documentacion oficial

Ciclos de vida

Con el fin de manejar la transición entre las diferentes etapas, la clase Activity dispone de 6 métodos que se ejecutan bajo ciertas condiciones.

  • onCreate()
    • Se ejecuta en el momento de la creación de la activity
  • onStart()
    • Se ejecuta cuando se presenta la activity al usuario
  • onResume()
    • Se ejecuta cuando se reanuda la activity y vuelve a primer plano
  • onPause()
    • Se ejecuta cuando se va a pasar la activity a estado de inactividad
  • onStop()
    • Se ejecuta cuando la activity deja de ser visible para el usuario (cuando se cambia de app)
  • onDestroy()
    • Se ejecuta justo antes de que se destruya la activity (puede quedar en segundo plano)

Acceso a los recursos

Para acceder a los recursos (Activities, colores, strings, etc), se utiliza la superclase R.

code.java

Button xmlButton = findViewById(R.id.xmlActivity);
this.getWindow().setTitle(getString(R.string.titulo));

Listeners

Un Listener es un objeto que se utiliza para detectar eventos.

Funciones Lambda