SlideShare una empresa de Scribd logo
1 de 124
  Desarrollo en Android
Índice
Introducción a Android: un poco de historia ,[object Object],[object Object],[object Object],[object Object],[object Object]
Introducción a Android: un poco de historia (II) Primeros prototipos de Android:
Índice
Introducción a Android: qué es Android? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introducción a Android: qué es Android? (II) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Índice
Arquitectura del sistema ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitectura del sistema (II)
Arquitectura del sistema:Linux Kernel ,[object Object],[object Object],[object Object]
Arquitectura del sistema:Linux Kernel (II) ,[object Object],Versión Android Versión Linux Fecha release Android 1.5 (Cupcake) 2.6.27 30 abril de 2009 Android 1.6 (Donut) 2.6.29 15 septiembre de 2009 Android 2.0 (Eclair) 2.6.29 26 octubre de 2009 Android 2.2 (FroYo) 2.6.32 Mayo de 2010 ?
Arquitectura del sistema:Android runtime ,[object Object],[object Object],[object Object]
Arquitectura del sistema: Framework de aplicaciones ,[object Object],[object Object],[object Object],[object Object]
Arquitectura del sistema: Capa de aplicaciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitectura del sistema: Dalvik Virtual Machine ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitectura del sistema: Librerías Android (I) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitectura del sistema: Librerías Android (II) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Índice
Arquitectura de las aplicaciones Android: introducción ,[object Object]
Arquitectura de las aplicaciones: Componentes de aplicación ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Arquitectura de las aplicaciones: Componente Activity
Arquitectura de las aplicaciones: Componente Activity (II) ,[object Object],[object Object],[object Object]
Arquitectura de las aplicaciones: Componente Activity (III) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitectura de las aplicaciones: Activity Manager ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitectura de las aplicaciones: Activity Manager (II) Mensaje ANR:
Arquitectura de las aplicaciones: Notification Manager ,[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitectura de las aplicaciones: Resource Manager ,[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitectura de las aplicaciones: Resource Manager Estructura típica:
Arquitectura de las aplicaciones: Ciclo de vida de los componentes (Activity) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitectura de las aplicaciones: Ciclo de vida de los componentes (Activity) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitectura de las aplicaciones: Ciclo de vida de los componentes (Activity)
[object Object],[object Object],[object Object],[object Object],Arquitectura de las aplicaciones: Ciclo de vida de los componentes (Service)
Arquitectura de las aplicaciones: Ciclo de vida de los componentes (Service) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ciclo de vida del Service (según creación)
Arquitectura de las aplicaciones: Ciclo de vida de los componentes (Broadcast Receiver) ,[object Object],[object Object],[object Object],[object Object]
Índice
Primera aplicación ,[object Object]
Primera aplicación: emulador Android ,[object Object],[object Object],[object Object],[object Object]
Primera aplicación: emulador Android (II) Imagen del emulador
Primera aplicación: emulador Android (III) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Primera aplicación: DDMS ,[object Object],[object Object],[object Object],[object Object],[object Object]
Primera aplicación: DDMS (II)
Primera aplicación: DDMS (III)
Primera aplicación: configuración del SDK ,[object Object],[object Object],[object Object],[object Object]
Primera aplicación: configurando el entorno ,[object Object],[object Object],[object Object],[object Object]
Primera aplicación AndroidManifest.xml ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Primera aplicación AndroidManifest.xml (II) <? xml   version = &quot;1.0&quot;   encoding = &quot;utf-8&quot; ?> < manifest   xmlns:android = &quot;http://schemas.android.com/apk/res/android&quot; package = &quot;prueba.Android&quot; android:versionCode = &quot;1&quot; android:versionName = &quot;1.0&quot; > < application   android:icon = &quot;@drawable/icon&quot;   android:label = &quot;@string/app_name&quot; > < activity   android:name = &quot;.HelloWord&quot; android:label = &quot;@string/app_name&quot; > < intent-filter > < action   android:name = &quot;android.intent.action.MAIN&quot;   /> < category   android:name = &quot;android.intent.category.LAUNCHER&quot;   /> </ intent-filter > </ activity > </ application > < uses-sdk   android:minSdkVersion = &quot;7&quot;   /> </ manifest >
Primera aplicación: Hello Android!  package com.android.helloandroid; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public   class  HelloAndroid  extends  Activity  { /** Called when the activity is first created. */ public void  onCreate(Bundle savedInstanceState)  { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText(&quot;Hello, Android&quot;); setContentView(tv); } }
Primera aplicación: más ejemplos ,[object Object]
Índice
Interfaces de usuario ,[object Object],[object Object],[object Object],[object Object],[object Object]
Interfaces de usuario (II) ,[object Object],[object Object]
Interfaces de usuario (III)
Interfaces de usuario: Views ,[object Object],[object Object],[object Object],[object Object],[object Object]
Interfaces de usuario: Creación de vista por XML ,[object Object],[object Object],[object Object],[object Object]
Interfaces de usuario: Creación de vista por XML (II) ,[object Object],< LinearLayout   xmlns:android = &quot;http://schemas.android.com/apk/res/android&quot; android:orientation = &quot;vertical&quot; android:layout_width = &quot;fill_parent&quot; android:layout_height = &quot;fill_parent&quot; > <!-- crea un layout con  la distribución de los elementos visuales --> < TextView   android:id = &quot;@+id/myTestView&quot; android:layout_width = &quot;fill_parent&quot; android:layout_height = &quot;fill_parent&quot; android:src = &quot;@drawable/jupiter&quot; /> <!-- crea un widet TextView --> </ LinearLayout >
Interfaces de usuario: Creación de vista por código  public void onCreate(Bundle icicle) { super.onCreate(icicle); TextView myTextView = new TextView(this); setContentView(myTextView); myTextView.setText(“Hello, Android”); }
Interfaces de usuario: ViewGroups ,[object Object],[object Object],[object Object]
Interfaces de usuario: Widgets ,[object Object],[object Object],[object Object]
Interfaces de usuario: Widgets toolbox ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Interfaces de usuario: Widgets toolbox (II) TextView EditText con un Button ListView Spinner
Interfaces de usuario: Widgets toolbox (III) DatePicker TimePicker AutoComplete
Interfaces de usuario: Layouts ,[object Object],[object Object],[object Object],[object Object],[object Object]
Interfaces de usuario: Layouts (II) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Interfaces de usuario: Layouts (III) LinearLayout RelativeLayout AbsoluteLayout
Interfaces de usuario: ejemplo ,[object Object]
Interfaces de usuario: Adapters ,[object Object],[object Object],[object Object],[object Object],[object Object]
Índice
Eventos: Intents ,[object Object],[object Object],[object Object],[object Object]
Eventos: Intents (II) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Eventos: Intents (III)  ,[object Object],[object Object],[object Object],[object Object]
Eventos: Intents (IV) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Eventos: Intents (V) ,[object Object],[object Object],[object Object],[object Object]
Intents: Acciones predeterminadas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Eventos: Intent filters ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Eventos: ejemplo de Intent Filter  <? xml   version = &quot;1.0&quot;   encoding = &quot;utf-8&quot; ?> < manifest   xmlns:android = &quot;http://schemas.android.com/apk/res/android&quot; package = &quot;prueba.Android&quot; android:versionCode = &quot;1&quot; android:versionName = &quot;1.0&quot; > < application   android:icon = &quot;@drawable/icon&quot;   android:label = &quot;@string/app_name&quot; > < activity   android:name = &quot;.ApiDemos&quot; android:label = &quot;@string/app_name&quot; > < intent-filter > < action   android:name = &quot;android.intent.action.MAIN&quot;   /> < category   android:name = &quot;android.intent.category.LAUNCHER&quot;   /> </ intent-filter > </ activity > </ application > < uses-sdk   android:minSdkVersion = &quot;7&quot;   /> </ manifest >
Eventos: Broadcast Intents ,[object Object],[object Object],[object Object]
Eventos: Broadcast Intents (II) ,[object Object],[object Object]
Eventos: Broadcast Intents (III) Intent  intent = new Intent(NEW_INTENT); intent.putExtra(“param1”, value1); intent.putExtra(“param2”, value2); intent.putExtra(“param3”, value3); sendBroadcast (intent);
Eventos: Broadcast Receivers ,[object Object],[object Object],[object Object],[object Object],import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class MyBroadcastReceiver extends  BroadcastReceiver  { public void  onReceive(Context context, Intent intent)  { //TODO: React to the Intent received. } }
Eventos: ejemplos ,[object Object]
Índice
Notificaciones al usuario ,[object Object],[object Object],[object Object],[object Object]
Notificaciones al usuario (II) ,[object Object],[object Object],[object Object]
Notificaciones al usuario (III) Toast notification Status Bar Notification Dialog Notification
Índice
Menus ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Menus: Options Menu ,[object Object],[object Object],[object Object],[object Object],[object Object]
Menus: Options Menu (II) /* Creates the menu items */ public   boolean   onCreateOptionsMenu(Menu  menu )  { menu.add(0,  MENU_NEW_GAME , 0,  &quot;New Game&quot; ); menu.add(0,  MENU_QUIT , 0,  &quot;Quit&quot; ); return   true ; } /* Handles item selections */ public   boolean   onOptionsItemSelected(MenuItem  item )  { switch  (item.getItemId()) { case   MENU_NEW_GAME : newGame (); return   true ; case   MENU_QUIT : quit (); return   true ; } return   false ; }
Menus: Options Menu (III)
Menus: Context Menu ,[object Object],[object Object],[object Object],[object Object]
Menus: Context Menu (II) public   void   onCreateContextMenu(ContextMenu  menu ,   View  v , ContextMenuInfo  menuInfo )  { super .onCreateContextMenu(menu, v, menuInfo); menu.add(0,  EDIT_ID , 0,  &quot;Edit&quot; ); menu.add(0,  DELETE_ID , 0,  &quot;Delete&quot; ); } public   boolean   onContextItemSelected(MenuItem  item )  { AdapterContextMenuInfo  info = ( AdapterContextMenuInfo )  item.getMenuInfo(); switch  (item.getItemId()) { case   EDIT_ID : editNote(info.id); return   true ; case   DELETE_ID : deleteNote(info.id); return   true ; default : return   super .onContextItemSelected(item); } }
Menus: Context Menu (III)
Menus: Submenus ,[object Object],[object Object],[object Object],[object Object]
Menus: Submenus (II) public   boolean   onCreateOptionsMenu(Menu  menu )  { boolean  result =  super .onCreateOptionsMenu(menu); SubMenu  fileMenu = menu.addSubMenu( &quot;File&quot; ); SubMenu  editMenu = menu.addSubMenu( &quot;Edit&quot; ); fileMenu.add( &quot;new&quot; ); fileMenu.add( &quot;open&quot; ); fileMenu.add( &quot;save&quot; ); editMenu.add( &quot;undo&quot; ); editMenu.add( &quot;redo&quot; ); return  result; }
Menus: Submenus (III)
Índice
Almacenamiento de datos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Almacenamiento de datos (II) ,[object Object],[object Object],[object Object]
Almacenamiento de datos: Preferences ,[object Object],[object Object],[object Object],[object Object],[object Object]
Almacenamiento de datos: Preferences (II) import  android.app.Activity; import  android.content.SharedPreferences; public   class   Calc   extends  Activity { public   static   final  String  PREFS_NAME  =  &quot;MyPrefsFile&quot; ; . . .   @ Override protected   void   onCreate(Bundle state) {  super .onCreate(state); . . . // Restore preferences SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); boolean  silent = settings.getBoolean( &quot;silentMode&quot; ,  false ); setSilent (silent); } @Override protected   void  onStop(){ super .onStop(); // Save user preferences. We need an Editor object to // make changes. All objects are from android.context.Context SharedPreferences settings = getSharedPreferences( PREFS_NAME , 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean( &quot;silentMode&quot; ,  mSilentMode ); // Don't forget to commit your edits!!! editor.commit(); } }
Almacenamiento de datos: ficheros locales ,[object Object],[object Object],[object Object],String FILE_NAME =  &quot;tempfile.tmp&quot; ; // Create a new output file stream that’s private to this application. FileOutputStream  fos = openFileOutput(FILE_NAME,  Context .MODE_PRIVATE); // Create a new file input stream. FileInputStream  fis = openFileInput(FILE_NAME);
Almacenamiento de datos: ficheros locales (II) ,[object Object],[object Object],[object Object],[object Object]
Almacenamiento de datos: SQLite ,[object Object],[object Object],[object Object],[object Object]
Almacenamiento de datos: SQLite (II) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Almacenamiento de datos: SQLite Cursors ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Almacenamiento de datos: SQLite creación de tablas private   static   final  String DATABASE_NAME = “myDatabase.db”; private   static   final  String DATABASE_TABLE = “mainTable”; private   static   final  String DATABASE_CREATE = “ create table “ + DATABASE_TABLE + “ ( _id integer primary key  autoincrement,” + “column_one text not  null );”; SQLiteDatabase myDatabase; private   void  createDatabase() { myDatabase = openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE,  null ); myDatabase.execSQL(DATABASE_CREATE); }
Almacenamiento de datos: SQLite querys // Return all rows for columns one and three, no duplicates String[] result_columns =  new  String[] {KEY_ID, KEY_COL1, KEY_COL3}; Cursor allRows = myDatabase.query( true , DATABASE_TABLE, result_columns,  null ,  null ,  null ,  null ,  null ,  null ); // Return all columns for rows where column 3 equals a set value // and the rows are ordered by column 5. String where = KEY_COL3 + “=” + requiredValue; String order = KEY_COL5; Cursor myResult = myDatabase.query(DATABASE_TABLE,  null , where, null ,  null ,  null , order);
Almacenamiento de datos: SQLite resultados int  GOLD_HOARDED_COLUMN = 2; Cursor myGold = myDatabase.query(“GoldHoards”,  null ,  null ,  null ,  null , null ,  null ); float  totalHoard = 0f; // Make sure there is at least one row. if  (myGold.moveToFirst()) { // Iterate over each cursor. do  { float  hoard = myGold.getFloat(GOLD_HOARDED_COLUMN); totalHoard += hoard; }  while (myGold.moveToNext()); } float  averageHoard = totalHoard / myGold.getCount();
Almacenamiento de datos: SQLite Añadir un nuevo registro // Create a new row of values to insert. ContentValues newValues =  new  ContentValues(); // Assign values for each row. newValues.put(COLUMN_NAME, newValue); [ ... Repeat  for  each column ... ] // Insert the row into your table myDatabase.insert(DATABASE_TABLE,  null , newValues);
Almacenamiento de datos: SQLite Modificar un registro // Define the updated row content. ContentValues updatedValues =  new  ContentValues(); // Assign values for each row. updatedValues.put(COLUMN_NAME, newValue); [ ... Repeat  for  each column ... ] String where = KEY_ID + “=” + rowId; // Update the row with the specified index with the new values. myDatabase.update(DATABASE_TABLE, updatedValues, where,  null );
Almacenamiento de datos: SQLite borrado de registro myDatabase.delete(DATABASE_TABLE, KEY_ID + “=” + rowId,  null );
Índice
Content Providers ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Content Providers: consultas Para recuperar todos los registros: Cursor allRows = getContentResolver().query(MyProvider.CONTENT_URI, null, null, null, null); Para consultar todos los registros tales que la columna KEY_COL3  tiene un determinado valor, y ordenada por la columna KEY_COL5: String where = KEY_COL3 + “=” + requiredValue; String order = KEY_COL5; Cursor someRows = getContentResolver().query(MyProvider.CONTENT_URI, null, where, null,order);
Content Providers: modificaciones Insert: newValues.put(COLUMN_NAME, newValue); Uri myRowUri = getContentResolver().insert(MyProvider.CONTENT_URI, newValues); Delete: getContentResolver().delete(myRowUri, null, null); Update: getContentResolver().update(MyProvider.CONTENT_URI, newValues, where, null);
Content Providers: Proveedores nativos Android ,[object Object],[object Object],[object Object],[object Object],[object Object]
Índice
Services ,[object Object],[object Object],[object Object],[object Object],[object Object]
Services: creación de servicios Ejemplo de creación de un servicio: import android.app.Service; import android.content.Intent; import android.os.IBinder; public class MyService extends  Service  { @Override public void  onCreate()  { // TODO: Actions to perform when service is created. } @Override public IBinder  onBind(Intent intent)  { // TODO: Replace with service binding implementation. return null; } And update the manifest file with : <service android:enabled=”true” android:name=”.MyService”></service>
Services: control de los servicios Para iniciar un servicio: startService(new Intent(MyService.MY_ACTION)); Para parar un servicio iniciado: ComponentName service = startService(new Intent(this, BaseballWatch.class)); // Stop a service using the service name. stopService(new Intent(this, service.getClass()));
Índice
Seguridad y permisos ,[object Object],[object Object],[object Object],< permission android:name=”com.paad.DETONATE_DEVICE” android:protectionLevel=”dangerous” android:label=”Self Destruct” android:description=”@string/detonate_description”> </ permission > Y se pueden asignar en el tag activity: < activity android:name=”.MyActivity” android:label=”@string/app_name” android:permission=”com.paad.DETONATE_DEVICE” > </ activity >

Más contenido relacionado

La actualidad más candente

Sistema Operativo Android; versiones, historia
Sistema Operativo Android; versiones, historiaSistema Operativo Android; versiones, historia
Sistema Operativo Android; versiones, historiaKaren Nuñez
 
Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo androidmrd2013
 
Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo androidingrythf
 
Fundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para AndroidFundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para Androidandresuarezz26
 
Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosGabriel Huecas
 
SISTEMA OPERATIVO ANDROID 27-03-15
SISTEMA OPERATIVO ANDROID 27-03-15SISTEMA OPERATIVO ANDROID 27-03-15
SISTEMA OPERATIVO ANDROID 27-03-15Lamar Smith
 
Concepto de Sistema Operativo Android
Concepto de Sistema Operativo AndroidConcepto de Sistema Operativo Android
Concepto de Sistema Operativo Androidingjmlobaton
 
"Android de la A a la Z" -- Unidad 6
"Android de la A a la Z" -- Unidad 6"Android de la A a la Z" -- Unidad 6
"Android de la A a la Z" -- Unidad 6Android UNAM
 
"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1Android UNAM
 
Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo androidRlaxYeah
 
"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3Android UNAM
 
"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4Android UNAM
 
"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2Android UNAM
 
Sistema operativo android (1)
Sistema operativo android (1)Sistema operativo android (1)
Sistema operativo android (1)FranCy TEllo
 

La actualidad más candente (20)

Sistema Operativo Android; versiones, historia
Sistema Operativo Android; versiones, historiaSistema Operativo Android; versiones, historia
Sistema Operativo Android; versiones, historia
 
Exposición - Android
Exposición - AndroidExposición - Android
Exposición - Android
 
Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo android
 
Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo android
 
Fundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para AndroidFundamentos desarrollo de Apps para Android
Fundamentos desarrollo de Apps para Android
 
Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos Básicos
 
SISTEMA OPERATIVO ANDROID 27-03-15
SISTEMA OPERATIVO ANDROID 27-03-15SISTEMA OPERATIVO ANDROID 27-03-15
SISTEMA OPERATIVO ANDROID 27-03-15
 
Concepto de Sistema Operativo Android
Concepto de Sistema Operativo AndroidConcepto de Sistema Operativo Android
Concepto de Sistema Operativo Android
 
Sistema Operativo Android
Sistema Operativo AndroidSistema Operativo Android
Sistema Operativo Android
 
Introduccion a Android
Introduccion a AndroidIntroduccion a Android
Introduccion a Android
 
"Android de la A a la Z" -- Unidad 6
"Android de la A a la Z" -- Unidad 6"Android de la A a la Z" -- Unidad 6
"Android de la A a la Z" -- Unidad 6
 
Power point
Power pointPower point
Power point
 
"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1"Android de la A a la Z" -- Unidad 1
"Android de la A a la Z" -- Unidad 1
 
Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo android
 
"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3"Android de la A a la Z" -- Unidad 3
"Android de la A a la Z" -- Unidad 3
 
"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4"Android de la A a la Z" -- Unidad 4
"Android de la A a la Z" -- Unidad 4
 
Android
AndroidAndroid
Android
 
"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2"Android de la A a la Z" -- Unidad 2
"Android de la A a la Z" -- Unidad 2
 
Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo android
 
Sistema operativo android (1)
Sistema operativo android (1)Sistema operativo android (1)
Sistema operativo android (1)
 

Similar a Curso desarrollo en android

Curso introducción a Android
Curso introducción a AndroidCurso introducción a Android
Curso introducción a AndroidSlashMobility.com
 
Intro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en OlotIntro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en Olothojalataverde
 
Píldora 1: Android intro
Píldora 1: Android introPíldora 1: Android intro
Píldora 1: Android introhojalataverde
 
Aplicaciones android
Aplicaciones androidAplicaciones android
Aplicaciones androidedwin
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Androidjezabelink
 
Sistema Operativo Android
Sistema Operativo AndroidSistema Operativo Android
Sistema Operativo AndroidAlfredo Aguayo
 
Taller de prog. en android
Taller de prog. en androidTaller de prog. en android
Taller de prog. en androidKarla Silva
 
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con androidUnidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con androidLorena García Arnau
 
Curso Android Tema 2
Curso Android Tema 2Curso Android Tema 2
Curso Android Tema 2Frank Jorge
 
Instrucciones y estructuras
Instrucciones y estructurasInstrucciones y estructuras
Instrucciones y estructurasFernand Bernowly
 
Fo 2-introduccion-android-arquitectura-de-sistema
Fo 2-introduccion-android-arquitectura-de-sistemaFo 2-introduccion-android-arquitectura-de-sistema
Fo 2-introduccion-android-arquitectura-de-sistemaMike Chavez
 
Arquitectura android
Arquitectura androidArquitectura android
Arquitectura androidalerop
 
12j sistemaandroid texto
12j sistemaandroid texto12j sistemaandroid texto
12j sistemaandroid textoHenry Ortiz
 
Implementación de una aplicación para la Administración remota de servidores ...
Implementación de una aplicación para la Administración remota de servidores ...Implementación de una aplicación para la Administración remota de servidores ...
Implementación de una aplicación para la Administración remota de servidores ...TELCON UNI
 

Similar a Curso desarrollo en android (20)

Curso Desarrollo Android
Curso Desarrollo AndroidCurso Desarrollo Android
Curso Desarrollo Android
 
Curso introducción a android
Curso introducción a android   Curso introducción a android
Curso introducción a android
 
Curso introducción a Android
Curso introducción a AndroidCurso introducción a Android
Curso introducción a Android
 
Intro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en OlotIntro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en Olot
 
Píldora 1: Android intro
Píldora 1: Android introPíldora 1: Android intro
Píldora 1: Android intro
 
Aplicaciones android
Aplicaciones androidAplicaciones android
Aplicaciones android
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Android
 
Taller de Android
Taller de AndroidTaller de Android
Taller de Android
 
Sistema Operativo Android
Sistema Operativo AndroidSistema Operativo Android
Sistema Operativo Android
 
Taller de prog. en android
Taller de prog. en androidTaller de prog. en android
Taller de prog. en android
 
Unidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con androidUnidad 2 Primeros pasos con android
Unidad 2 Primeros pasos con android
 
App inventor
App inventorApp inventor
App inventor
 
Curso Android Tema 2
Curso Android Tema 2Curso Android Tema 2
Curso Android Tema 2
 
Android
AndroidAndroid
Android
 
Instrucciones y estructuras
Instrucciones y estructurasInstrucciones y estructuras
Instrucciones y estructuras
 
Fo 2-introduccion-android-arquitectura-de-sistema
Fo 2-introduccion-android-arquitectura-de-sistemaFo 2-introduccion-android-arquitectura-de-sistema
Fo 2-introduccion-android-arquitectura-de-sistema
 
Material rap1
Material rap1Material rap1
Material rap1
 
Arquitectura android
Arquitectura androidArquitectura android
Arquitectura android
 
12j sistemaandroid texto
12j sistemaandroid texto12j sistemaandroid texto
12j sistemaandroid texto
 
Implementación de una aplicación para la Administración remota de servidores ...
Implementación de una aplicación para la Administración remota de servidores ...Implementación de una aplicación para la Administración remota de servidores ...
Implementación de una aplicación para la Administración remota de servidores ...
 

Más de Emilio Aviles Avila

Experiencias emprendedor de apps - AppCierta
Experiencias emprendedor de apps - AppCiertaExperiencias emprendedor de apps - AppCierta
Experiencias emprendedor de apps - AppCiertaEmilio Aviles Avila
 
Aplicaciones móviles, experiencias de emprendedor
Aplicaciones móviles, experiencias de emprendedorAplicaciones móviles, experiencias de emprendedor
Aplicaciones móviles, experiencias de emprendedorEmilio Aviles Avila
 
Charla estrategia desarrollo aplicaciones móviles Universidad Girona
Charla estrategia desarrollo aplicaciones móviles Universidad GironaCharla estrategia desarrollo aplicaciones móviles Universidad Girona
Charla estrategia desarrollo aplicaciones móviles Universidad GironaEmilio Aviles Avila
 
Desarrollo android - 6 - multimedia
Desarrollo android - 6 - multimediaDesarrollo android - 6 - multimedia
Desarrollo android - 6 - multimediaEmilio Aviles Avila
 
Desarrollo android - 5 - almacenamiento de datos
Desarrollo android  -  5 - almacenamiento de datosDesarrollo android  -  5 - almacenamiento de datos
Desarrollo android - 5 - almacenamiento de datosEmilio Aviles Avila
 
Desarrollo android - 4 - arquitectura de aplicación
Desarrollo android  - 4 - arquitectura de aplicaciónDesarrollo android  - 4 - arquitectura de aplicación
Desarrollo android - 4 - arquitectura de aplicaciónEmilio Aviles Avila
 
Desarrollo android - 3 - entorno de desarrollo
Desarrollo android  - 3 - entorno de desarrolloDesarrollo android  - 3 - entorno de desarrollo
Desarrollo android - 3 - entorno de desarrolloEmilio Aviles Avila
 
Desarrollo android - 2 - arquitectura del sistema
Desarrollo android   - 2 - arquitectura del sistemaDesarrollo android   - 2 - arquitectura del sistema
Desarrollo android - 2 - arquitectura del sistemaEmilio Aviles Avila
 
Desarrollo android -1 - introduccion
Desarrollo android  -1 - introduccionDesarrollo android  -1 - introduccion
Desarrollo android -1 - introduccionEmilio Aviles Avila
 
El mercado de las aplicaciones moviles
El mercado de las aplicaciones movilesEl mercado de las aplicaciones moviles
El mercado de las aplicaciones movilesEmilio Aviles Avila
 
Curso Taller Android Procesado Imagen
Curso Taller Android Procesado ImagenCurso Taller Android Procesado Imagen
Curso Taller Android Procesado ImagenEmilio Aviles Avila
 
Curso taller android radio streaming
Curso taller android  radio streamingCurso taller android  radio streaming
Curso taller android radio streamingEmilio Aviles Avila
 
Curso Uml 3.1 Modelos De Desarrollo De Software
Curso Uml   3.1 Modelos De Desarrollo De SoftwareCurso Uml   3.1 Modelos De Desarrollo De Software
Curso Uml 3.1 Modelos De Desarrollo De SoftwareEmilio Aviles Avila
 
Curso Uml 2.5 Diagramas De ImplementacióN
Curso Uml   2.5 Diagramas De ImplementacióNCurso Uml   2.5 Diagramas De ImplementacióN
Curso Uml 2.5 Diagramas De ImplementacióNEmilio Aviles Avila
 

Más de Emilio Aviles Avila (20)

Experiencias emprendedor de apps - AppCierta
Experiencias emprendedor de apps - AppCiertaExperiencias emprendedor de apps - AppCierta
Experiencias emprendedor de apps - AppCierta
 
Apps Ser o Estar
Apps Ser o EstarApps Ser o Estar
Apps Ser o Estar
 
Aplicaciones móviles, experiencias de emprendedor
Aplicaciones móviles, experiencias de emprendedorAplicaciones móviles, experiencias de emprendedor
Aplicaciones móviles, experiencias de emprendedor
 
Charla estrategia desarrollo aplicaciones móviles Universidad Girona
Charla estrategia desarrollo aplicaciones móviles Universidad GironaCharla estrategia desarrollo aplicaciones móviles Universidad Girona
Charla estrategia desarrollo aplicaciones móviles Universidad Girona
 
Desarrollo android - 6 - multimedia
Desarrollo android - 6 - multimediaDesarrollo android - 6 - multimedia
Desarrollo android - 6 - multimedia
 
Desarrollo android - 5 - almacenamiento de datos
Desarrollo android  -  5 - almacenamiento de datosDesarrollo android  -  5 - almacenamiento de datos
Desarrollo android - 5 - almacenamiento de datos
 
Desarrollo android - 4 - arquitectura de aplicación
Desarrollo android  - 4 - arquitectura de aplicaciónDesarrollo android  - 4 - arquitectura de aplicación
Desarrollo android - 4 - arquitectura de aplicación
 
Desarrollo android - 3 - entorno de desarrollo
Desarrollo android  - 3 - entorno de desarrolloDesarrollo android  - 3 - entorno de desarrollo
Desarrollo android - 3 - entorno de desarrollo
 
Desarrollo android - 2 - arquitectura del sistema
Desarrollo android   - 2 - arquitectura del sistemaDesarrollo android   - 2 - arquitectura del sistema
Desarrollo android - 2 - arquitectura del sistema
 
Desarrollo android -1 - introduccion
Desarrollo android  -1 - introduccionDesarrollo android  -1 - introduccion
Desarrollo android -1 - introduccion
 
El mercado de las aplicaciones moviles
El mercado de las aplicaciones movilesEl mercado de las aplicaciones moviles
El mercado de las aplicaciones moviles
 
Curso Taller Android Procesado Imagen
Curso Taller Android Procesado ImagenCurso Taller Android Procesado Imagen
Curso Taller Android Procesado Imagen
 
Taller Curso android WhereAmI
Taller Curso android WhereAmITaller Curso android WhereAmI
Taller Curso android WhereAmI
 
Curso taller android radio streaming
Curso taller android  radio streamingCurso taller android  radio streaming
Curso taller android radio streaming
 
Como ganar dinero con las apps
Como ganar dinero con las appsComo ganar dinero con las apps
Como ganar dinero con las apps
 
TeCHmi Service Portfolio
TeCHmi Service PortfolioTeCHmi Service Portfolio
TeCHmi Service Portfolio
 
Curso Uml 3.2 Proceso Unificado
Curso Uml   3.2 Proceso UnificadoCurso Uml   3.2 Proceso Unificado
Curso Uml 3.2 Proceso Unificado
 
Curso Uml 3.1 Modelos De Desarrollo De Software
Curso Uml   3.1 Modelos De Desarrollo De SoftwareCurso Uml   3.1 Modelos De Desarrollo De Software
Curso Uml 3.1 Modelos De Desarrollo De Software
 
Curso Uml 2.6 Otros Diagramas
Curso Uml   2.6 Otros DiagramasCurso Uml   2.6 Otros Diagramas
Curso Uml 2.6 Otros Diagramas
 
Curso Uml 2.5 Diagramas De ImplementacióN
Curso Uml   2.5 Diagramas De ImplementacióNCurso Uml   2.5 Diagramas De ImplementacióN
Curso Uml 2.5 Diagramas De ImplementacióN
 

Último

tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6SaraMineiropalacio
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfJoseAlejandroPerezBa
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskbydaniela5
 
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docxBLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docxhellendiaz12
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888ElianaValencia28
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaElizabethLpezSoto
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalEmanuelCastro64
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdflauralizcano0319
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024anasofiarodriguezcru
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 

Último (18)

tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
 
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docxBLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestría
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamental
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 

Curso desarrollo en android

  • 1. Desarrollo en Android
  • 3.
  • 4. Introducción a Android: un poco de historia (II) Primeros prototipos de Android:
  • 6.
  • 7.
  • 9.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. Arquitectura de las aplicaciones: Activity Manager (II) Mensaje ANR:
  • 27.
  • 28.
  • 29. Arquitectura de las aplicaciones: Resource Manager Estructura típica:
  • 30.
  • 31.
  • 32. Arquitectura de las aplicaciones: Ciclo de vida de los componentes (Activity)
  • 33.
  • 34.
  • 35. Ciclo de vida del Service (según creación)
  • 36.
  • 38.
  • 39.
  • 40. Primera aplicación: emulador Android (II) Imagen del emulador
  • 41.
  • 42.
  • 45.
  • 46.
  • 47.
  • 48. Primera aplicación AndroidManifest.xml (II) <? xml version = &quot;1.0&quot; encoding = &quot;utf-8&quot; ?> < manifest xmlns:android = &quot;http://schemas.android.com/apk/res/android&quot; package = &quot;prueba.Android&quot; android:versionCode = &quot;1&quot; android:versionName = &quot;1.0&quot; > < application android:icon = &quot;@drawable/icon&quot; android:label = &quot;@string/app_name&quot; > < activity android:name = &quot;.HelloWord&quot; android:label = &quot;@string/app_name&quot; > < intent-filter > < action android:name = &quot;android.intent.action.MAIN&quot; /> < category android:name = &quot;android.intent.category.LAUNCHER&quot; /> </ intent-filter > </ activity > </ application > < uses-sdk android:minSdkVersion = &quot;7&quot; /> </ manifest >
  • 49. Primera aplicación: Hello Android! package com.android.helloandroid; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText(&quot;Hello, Android&quot;); setContentView(tv); } }
  • 50.
  • 52.
  • 53.
  • 55.
  • 56.
  • 57.
  • 58. Interfaces de usuario: Creación de vista por código public void onCreate(Bundle icicle) { super.onCreate(icicle); TextView myTextView = new TextView(this); setContentView(myTextView); myTextView.setText(“Hello, Android”); }
  • 59.
  • 60.
  • 61.
  • 62. Interfaces de usuario: Widgets toolbox (II) TextView EditText con un Button ListView Spinner
  • 63. Interfaces de usuario: Widgets toolbox (III) DatePicker TimePicker AutoComplete
  • 64.
  • 65.
  • 66. Interfaces de usuario: Layouts (III) LinearLayout RelativeLayout AbsoluteLayout
  • 67.
  • 68.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77. Eventos: ejemplo de Intent Filter <? xml version = &quot;1.0&quot; encoding = &quot;utf-8&quot; ?> < manifest xmlns:android = &quot;http://schemas.android.com/apk/res/android&quot; package = &quot;prueba.Android&quot; android:versionCode = &quot;1&quot; android:versionName = &quot;1.0&quot; > < application android:icon = &quot;@drawable/icon&quot; android:label = &quot;@string/app_name&quot; > < activity android:name = &quot;.ApiDemos&quot; android:label = &quot;@string/app_name&quot; > < intent-filter > < action android:name = &quot;android.intent.action.MAIN&quot; /> < category android:name = &quot;android.intent.category.LAUNCHER&quot; /> </ intent-filter > </ activity > </ application > < uses-sdk android:minSdkVersion = &quot;7&quot; /> </ manifest >
  • 78.
  • 79.
  • 80. Eventos: Broadcast Intents (III) Intent intent = new Intent(NEW_INTENT); intent.putExtra(“param1”, value1); intent.putExtra(“param2”, value2); intent.putExtra(“param3”, value3); sendBroadcast (intent);
  • 81.
  • 82.
  • 84.
  • 85.
  • 86. Notificaciones al usuario (III) Toast notification Status Bar Notification Dialog Notification
  • 88.
  • 89.
  • 90. Menus: Options Menu (II) /* Creates the menu items */ public boolean onCreateOptionsMenu(Menu menu ) { menu.add(0, MENU_NEW_GAME , 0, &quot;New Game&quot; ); menu.add(0, MENU_QUIT , 0, &quot;Quit&quot; ); return true ; } /* Handles item selections */ public boolean onOptionsItemSelected(MenuItem item ) { switch (item.getItemId()) { case MENU_NEW_GAME : newGame (); return true ; case MENU_QUIT : quit (); return true ; } return false ; }
  • 92.
  • 93. Menus: Context Menu (II) public void onCreateContextMenu(ContextMenu menu , View v , ContextMenuInfo menuInfo ) { super .onCreateContextMenu(menu, v, menuInfo); menu.add(0, EDIT_ID , 0, &quot;Edit&quot; ); menu.add(0, DELETE_ID , 0, &quot;Delete&quot; ); } public boolean onContextItemSelected(MenuItem item ) { AdapterContextMenuInfo info = ( AdapterContextMenuInfo ) item.getMenuInfo(); switch (item.getItemId()) { case EDIT_ID : editNote(info.id); return true ; case DELETE_ID : deleteNote(info.id); return true ; default : return super .onContextItemSelected(item); } }
  • 95.
  • 96. Menus: Submenus (II) public boolean onCreateOptionsMenu(Menu menu ) { boolean result = super .onCreateOptionsMenu(menu); SubMenu fileMenu = menu.addSubMenu( &quot;File&quot; ); SubMenu editMenu = menu.addSubMenu( &quot;Edit&quot; ); fileMenu.add( &quot;new&quot; ); fileMenu.add( &quot;open&quot; ); fileMenu.add( &quot;save&quot; ); editMenu.add( &quot;undo&quot; ); editMenu.add( &quot;redo&quot; ); return result; }
  • 99.
  • 100.
  • 101.
  • 102. Almacenamiento de datos: Preferences (II) import android.app.Activity; import android.content.SharedPreferences; public class Calc extends Activity { public static final String PREFS_NAME = &quot;MyPrefsFile&quot; ; . . . @ Override protected void onCreate(Bundle state) { super .onCreate(state); . . . // Restore preferences SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); boolean silent = settings.getBoolean( &quot;silentMode&quot; , false ); setSilent (silent); } @Override protected void onStop(){ super .onStop(); // Save user preferences. We need an Editor object to // make changes. All objects are from android.context.Context SharedPreferences settings = getSharedPreferences( PREFS_NAME , 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean( &quot;silentMode&quot; , mSilentMode ); // Don't forget to commit your edits!!! editor.commit(); } }
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108. Almacenamiento de datos: SQLite creación de tablas private static final String DATABASE_NAME = “myDatabase.db”; private static final String DATABASE_TABLE = “mainTable”; private static final String DATABASE_CREATE = “ create table “ + DATABASE_TABLE + “ ( _id integer primary key autoincrement,” + “column_one text not null );”; SQLiteDatabase myDatabase; private void createDatabase() { myDatabase = openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null ); myDatabase.execSQL(DATABASE_CREATE); }
  • 109. Almacenamiento de datos: SQLite querys // Return all rows for columns one and three, no duplicates String[] result_columns = new String[] {KEY_ID, KEY_COL1, KEY_COL3}; Cursor allRows = myDatabase.query( true , DATABASE_TABLE, result_columns, null , null , null , null , null , null ); // Return all columns for rows where column 3 equals a set value // and the rows are ordered by column 5. String where = KEY_COL3 + “=” + requiredValue; String order = KEY_COL5; Cursor myResult = myDatabase.query(DATABASE_TABLE, null , where, null , null , null , order);
  • 110. Almacenamiento de datos: SQLite resultados int GOLD_HOARDED_COLUMN = 2; Cursor myGold = myDatabase.query(“GoldHoards”, null , null , null , null , null , null ); float totalHoard = 0f; // Make sure there is at least one row. if (myGold.moveToFirst()) { // Iterate over each cursor. do { float hoard = myGold.getFloat(GOLD_HOARDED_COLUMN); totalHoard += hoard; } while (myGold.moveToNext()); } float averageHoard = totalHoard / myGold.getCount();
  • 111. Almacenamiento de datos: SQLite Añadir un nuevo registro // Create a new row of values to insert. ContentValues newValues = new ContentValues(); // Assign values for each row. newValues.put(COLUMN_NAME, newValue); [ ... Repeat for each column ... ] // Insert the row into your table myDatabase.insert(DATABASE_TABLE, null , newValues);
  • 112. Almacenamiento de datos: SQLite Modificar un registro // Define the updated row content. ContentValues updatedValues = new ContentValues(); // Assign values for each row. updatedValues.put(COLUMN_NAME, newValue); [ ... Repeat for each column ... ] String where = KEY_ID + “=” + rowId; // Update the row with the specified index with the new values. myDatabase.update(DATABASE_TABLE, updatedValues, where, null );
  • 113. Almacenamiento de datos: SQLite borrado de registro myDatabase.delete(DATABASE_TABLE, KEY_ID + “=” + rowId, null );
  • 115.
  • 116. Content Providers: consultas Para recuperar todos los registros: Cursor allRows = getContentResolver().query(MyProvider.CONTENT_URI, null, null, null, null); Para consultar todos los registros tales que la columna KEY_COL3 tiene un determinado valor, y ordenada por la columna KEY_COL5: String where = KEY_COL3 + “=” + requiredValue; String order = KEY_COL5; Cursor someRows = getContentResolver().query(MyProvider.CONTENT_URI, null, where, null,order);
  • 117. Content Providers: modificaciones Insert: newValues.put(COLUMN_NAME, newValue); Uri myRowUri = getContentResolver().insert(MyProvider.CONTENT_URI, newValues); Delete: getContentResolver().delete(myRowUri, null, null); Update: getContentResolver().update(MyProvider.CONTENT_URI, newValues, where, null);
  • 118.
  • 120.
  • 121. Services: creación de servicios Ejemplo de creación de un servicio: import android.app.Service; import android.content.Intent; import android.os.IBinder; public class MyService extends Service { @Override public void onCreate() { // TODO: Actions to perform when service is created. } @Override public IBinder onBind(Intent intent) { // TODO: Replace with service binding implementation. return null; } And update the manifest file with : <service android:enabled=”true” android:name=”.MyService”></service>
  • 122. Services: control de los servicios Para iniciar un servicio: startService(new Intent(MyService.MY_ACTION)); Para parar un servicio iniciado: ComponentName service = startService(new Intent(this, BaseballWatch.class)); // Stop a service using the service name. stopService(new Intent(this, service.getClass()));
  • 124.