2. Agenda
●
Presentación: Las aplicaciones de Android
●
Práctica: Laboratorio del ciclo de vida
●
Presentación: Views Pt. 1
●
Práctica: Laboratorio de Views Pt. 1
●
Presentación: Sistema de layout
●
Práctica: Layouts lineales y relativos
4. ¿Qué es una aplicación?
●
●
●
●
●
“Es un programa (software) cuyo propósito es
realizar una o varias tareas”
En Android cada aplicación es un usuario de
Linux diferente
Los procesos se ejecutan en su propia VM
Todas las aplicaciones requieren de un
manifiesto
Las aplicaciones se distribuyen como un .apk
5. Componentes de una Aplicación
●
Activities
●
Services
●
Content Providers
●
Broadcast Receivers
6. El Manifiesto
●
Todas las aplicaciones de Android deben tener
uno
●
AndroidManifest.xml
●
Se usa para declarar activities, services, etc.
●
Se usa para solicitar permisos
–
●
Ej. <uses-permission android:name="android.permission.INTERNET" />
Se usa para indicar las versiones del SDK
soportadas
7. Activities
●
●
●
●
Provee una GUI
Una aplicación usualmente se compone de
varias actividades
Deben declararse en el manifiesto antes de
usarse
Tienen un ciclo de vida
9. Secuencia durante la transición
entre varias actividades
●
La actividad B va a entrar en el foreground
–
Activity A
1. onPause()
–
Activity B
1. onCreate()
2. onStart()
3. onResume()
●
Si la actividad A no necesita dibujarse (totalmente ocluida)
–
Activity A
1. onStop()
11. Callbacks del ciclo de vida (1/3)
public class ExampleActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// The activity is being created.
}
@Override
protected void onStart() {
super.onStart();
// The activity is about to become visible.
}
12. Callbacks del ciclo de vida (2/3)
@Override
protected void onResume() {
super.onResume();
// The activity has become visible (it is now "resumed").
}
@Override
protected void onPause() {
super.onPause();
// Another activity is taking focus (this activity is about to be "paused").
}
@Override
protected void onStop() {
super.onStop();
// The activity is no longer visible (it is now "stopped")
}
13. Callbacks del ciclo de vida (3/3)
@Override
protected void onDestroy() {
super.onDestroy();
// The activity is about to be destroyed.
}
}
14. Llamar una actividad dentro de otra
●
Intent
–
–
●
●
Intent intent = new Intent(this, Activity2.class);
startActivity(intent);
Se pueden pasar valores entre Intents
haciendo uso de .putXXX y recibiendolos según
el mecanismo asociado a startActivityForResult
Las actividades se terminan utilizando finish()
15. Services
●
●
No proveen una GUI
Deben declararse en el manifiesto antes de
usarse
●
Tienen su propio ciclo de vida
●
Dos tipos
–
Started
–
Bound
17. Tip: Depuración
●
Varios mecanismos, por el momento se sugiere
utilizar
–
–
●
Toast (Durante la etapa de desarrollo)
Logcat
Los toast, junto con las notificaciones, se
utilizan para informar al usuario. UTILIZAR
APROPIADAMENTE
20. Interfaces de usuario
●
●
●
●
Todo el sistema de interface de usuario DEBE de
hacerse según los lineamientos de
Google/Android
Siempre se debe de diseñar teniendo en cuenta
diferentes tipos de displays
La clase que encapsula toda la funcionalidad es
View
Para dibujar se hace un llamado a setContentView
21. Layouts
●
●
●
Los views se anidan dentro de viewgoups
RelativeLayout y LinearLayout son subclases
de ViewGroup
Se describen
–
–
●
Archivos xml
Programatically
Se pueden anidar