Tecnología de Programación Diego C. Martínez Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur
Dispositivos móviles
Dispositivos móviles 2005 2002
Dispositivos móviles Sistemas Operativos
Android Sistema operativo para dispositivos móviles desarrollado por Open Handset Alliance Google, HTC, Sony, Dell, Intel, Motorola, Qualcomm, Texas Instruments, Samsung Electronics, LG Electronics, T Mobile, Sprint Corporation, Nvidia, Wind River Systems
Android Cupcake 1.5, Donut 1.6, Eclair 2.0 2.1, Froyo 2.2 2.2.3, Gingerbread 2.3 2.3.7 Honeycomb1 3.0 3.2.6, Ice Cream Sandwich 4.0 4.0.4, Jelly Bean 4.1 4.3.1, KitKat 4.4 4.4.4, Lollipop 5.0 5.1.1, Marshmallow 6.0 6.0.1, Nougat 7.0 7.1
Android
Android Las aplicaciones de Android se escriben en Java :) La aplicación se compila en un archivo APK: un paquete de Android, que es un archivo de almacenamiento con el sufijo.apk. Un archivo de APK incluye todos los contenidos de una aplicación de Android Dalvik VM Hasta la versión Kitkat 4.4 Ejecuta código DEX (DalvikExecutable).java Máquina virtual Android Runtime A partir de la versión Lollipop 5.0 Ejecutacódigo DEX (DalvikExecutable) Mejor eficiencia. Código nativo..class.dex
Componentes de una aplicación Android Actividades Una pantalla de la aplicación listar correos, mostrar un mensaje, escribir un mensaje Son independientes una de otras Pueden iniciarse cualquiera Es una subclase de la clase Activity Servicios Componente que se ejecuta en segundo plano para realizar tareas prolongadas reproducir música, enviar y recibir datos Es una subclase de la clase Service Proveedores de contenido Administra los datos de la aplicación (archivos, bases de datos, web, etc) Es una subclase de la clase ContentProvider Receptor de mensajes Administra los datos de la aplicación (archivos, bases de datos, web, etc) Es una subclase de la clase BroadcastReceiver cualquier aplicación puede iniciar un componente de otra aplicación
Intents Un Intent es un objeto de acción que se utiliza para solicitar una acción de otro componente de la aplicación. Es básicamente un objeto con la descripción de la operación a realizar Start Gallery ft foto
Intents Para comenzar una actividad dd Una Activity representa una única pantalla en una aplicación. Para iniciar una nueva instancia de una Activity se puede pasar una Intent a startactivity() La Intent describe la actividad que se debe iniciar y contiene los datos necesarios para ello Para iniciar un servicio: Un Service es un componente que realiza operaciones en segundo plano sin una interfaz de usuario. Se puede iniciar un servicio para realizar una operación única pasando una Intent a startservice(). La Intent describe el servicio que se debe iniciar y contiene los datos necesarios para ello. Para entregar un mensaje: Un mensaje es un aviso que cualquier aplicación puede recibir. El sistema entrega varios mensajes de eventos del sistema, como cuando el sistema arranca o el dispositivo comienza a cargarse. Se puedes enviar un mensaje a otras apps pasando una Intent a sendbroadcast(), sendorderedbroadcast() o sendstickybroadcast().
Intents La actividad A crea un Intent con una descripción de acción y la pasa a startactivity(). El sistema Android busca en todas las apps un filtro de intents que coincida id con la intent. t El sistema inicia la actividad coincidente (actividad B) invocando su método oncreate() y pasándolo a la Intent.
Intents Intent t i = new Intent(this, t(thi ActivityTwo.class); it startactivity(i); Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:")); email.putextra(intent.extra_email, recipients); email.putextra(intent.extra_subject, subject.gettext().tostring()); email.putextra(intent.extra_text, TEXT, body.gettext().tostring()); startactivity(intent.createchooser(email, "Choose an email client..."));
Componentes de una aplicación Android AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest... > <application android:icon="@drawable/app_icon.png"... > <activity android:name="com.example.project.exampleactivity" android:label="@string/example_label"... > </activity>... </application> </manifest> Identifica los permisos de usuario que requiere la aplicación, como acceso a Internet o acceso de lectura para los contactos del usuario. Declara el nivel de API mínimo requerido por la aplicación en función de las API que usa la aplicación. Declara características de hardware y software que la aplicación usa o exige, como una cámara, servicios de bluetooth o una pantalla multitáctil. Bibliotecas de la API a las que la aplicación necesita estar vinculada (además de las Android framework API), como la biblioteca Google Maps.
Activity Una Activity define una pantalla con la que los usuarios pueden interactuar Una aplicación consiste usualmente de múltiples actividades Normalmente existe una actividad principal. Se administran en una pila de actividades. public class Activity extends ApplicationContext { protected void oncreate(bundle savedinstancestate); protected void onstart(); protected t void onrestart(); t() protected void onresume(); protected void onpause(); protected void onstop(); protected void ondestroy(); }
Activity 2011 Mihail L. Sichitiu import android.app.activity; import android.os.bundle; import android.widget.textview; public class HelloAndroid extends Activity { } @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); TextView tv = new TextView(this); tv.settext("hello, Android by hand"); setcontentview(tv); t t }
Activity oncreate() Recibe una llamada cuando se crea la actividad por primera vez. configuraciones estáticas normales: crear vistas, enlazar datos con listas, etc. onrestart() Recibe una llamada después de que se detiene la actividad onstart() Recibe una llamada justo antes de que la actividad se vuelva visible para el usuario. onresume() Recibe una llamada justo antes de que la actividad comience a interactuar con el usuario. En este momento la actividad id d se encuentra en la parte superior de la pila de actividades, y recibe las entradas del usuario. onpause() Recibe una llamada cuando el sistema está a punto de reanudar otra actividad. Este método generalmente se usa para confirmar los cambios sin guardar como datos persistentes, para detener animaciones y otras tareas onstop() Recibe una llamada cuando la actividad ya no es visible para el usuario. Esto puede ocurrir porque se la destruyó o porque se reanudó otra actividad (ya sea una actividad existente o una nueva) y la está cubriendo. ondestroy() Reciba una llamada antes de que se destruya la actividad. Esta es la última llamada que recibirá la actividad.
Ciclo de vida de una actividad