Diapositivas de mi curso introductorio de Android en 5 horas.
EN EL CONGRESO UNIVERSITARIO MOVIL 2012 SE USÓ ESTA PRESENTACIÓN PARA HABLAR DE ANDROID Y SE HIZO UNA APP PARLANCHINA COMO EJEMPLO DEL CONTENIDO, AQUI ESTÁ EL CODIGO FUENTE https://www.dropbox.com/s/1dbso3rb47be1hj/Hablar.zip?%20m
1. ¿Quiénes somos?
Somos el laboratorio de la Facultad de
Ingeniería de la UNAM en donde se
realizan proyectos de desarrollo de
aplicaciones multiplataforma para
dispositivos móviles que brinden
servicios usando las tecnologías más
recientes a los usuarios.
@unam_mobile
fb/ UNAM.Mobile
8. Historia
Octubre 2003
Android Inc: Andy Rubin and Rich Miner,
Nick Sears and Chris White
Agosto 2005
Android adquiere la compañia.
( aprox 50 millones de dólares)
1 Noviembre 2007
Primer SDK
9. Características
Adaptabilidad al HW
Almacenamiento (+SQLite)
Conectividad (GSM/EDGE, IDEN, CDMA, EV-DO, UMTS,
Bluetooth, Wi-Fi, LTE y WiMAX)
Mensajería
Soporte para hardware adicional (cámaras de fotos, de
vídeo, pantallas táctiles, GPS, acelerómetros, giroscopios,
magnetómetros, sensores de proximidad y de presión,
termómetro, aceleración 2D y 3D)
10. Características
Navegador web (WebKit,JavaScript V8
de Google Chrome)
Soporte de Java (App)
Soporte multimedia
Entorno de desarrollo
Google Play (Tienda de apps)
Multi-táctil
Bluetooth
Videollamada (Google Talk)
Multitarea
Tethering
11. NECESIDADES
La plataforma
Requisitos de instalación
Consejos para programar
12. La plataforma
¿Qué necesito para comenzar a desarrollar
aplicaciones y componentes para Android?
• Configurar el entorno de desarrollo
1 • Configurar AVD’s o dispositivos
• Desarrollar tu app
2
• Compilar y probar tu app
• Depurar tu app
3 • Probar tu app
• Preparar tu app para publicarla
4 • Publicar tu app
13. La plataforma
¿Qué necesito para comenzar a desarrollar
aplicaciones y componentes para Android?
Herramientas
Documentación Plataformas
plataforma
Herramientas Desarrollo para
Doc’s de clases dependientes las plataformas
de la plataforma descargadas
ADB
14. La plataforma
¿Qué necesito para comenzar a desarrollar
aplicaciones y componentes para Android?
Ejemplos Herramientas AddOns
Herramientas
Código de Administración
de fabricantes
muestra SDK
y terceros
Administración
AVD’s
Herramienta
15. Requisitos de instalación
Sistema Operativo
•Windows XP (32-bit), Vista (32- or 64-bit), o
Windows 7 (32- or 64-bit)
•Mac OS X 10.5.8 o later (x86 only)
•Linux con GNU C Library (glibc) 2.7 o superior
Otros requisitos
•Oracle Java JDK
•Android SDK
Hardware
•Mínimo 2GB RAM y
•Más de 5GB libres en DD
16. Consejos para el
programador
1. Planificar todas las vistas de la aplicación
para:
1. Considerar que hay muchas
resoluciones de pantalla
2. El grupo de dispositivos (capacidades) a
los que va dirigida
2. Planificar los casos de uso de la aplicación
para:
1. Lograr la compatibilidad con la
plataforma
2. Diseñar una buena arquitectura basada
en los componentes que ofrece Android
17. DESARROLLO
Arquitectura del OS
MVC
Estructura de un proyecto
18. Arquitectura de OS
Aplicaciones
Framework de aplicaciones
Runtime de
Bibliotecas
Android
Núcleo Linux
19. Arquitectura de OS
Personalización de Android por cada fabricante o
usuario agregando componentes/apps que le dan:
Identidad
Funcionalidad
Servicios especiales
20. Modelo-Vista-Controlador
Interfáz de usuario
Manejo de eventos enviados desde la IU
Actualización de la IU
Uso del modelo para toma de
desiciones
Descripción del comportamiento
Descripción de los datos
26. Permisos y encapsulamiento
1. Para acceder a recursos fisicos necesitan declarar
permisos de uso.
2. También necesitan declarar permisos para el uso de
servicios, como internet, mensajes c2dm,
comunicación con el sistema, acceder datos en el
sistema, etc…
3. Cada aplicación y componente tiene un nombre
unico que permite el uso de estos permisos y
acciones de interacción a través de mensajes
Estos permisos estan indicados en un archivo llamado
AndroidManifest.xml
27. Permisos y encapsulamiento
Ejemplos de permisos:
android.permission.READ_OWNER_DATA
android.permission.SET_WALLPAPER
android.permission.DEVICE_POWER
<uses-permission android:name =
“android.permission.VIBRATE”></uses-permission>
Declarando un componente y a que solicitud responde
<activity android:name = “.UnActivity”
android:label = “@string/app_name”>
<intent-filter>
<action android:name = “android.intent.action.MAIN”
/>
<category android:name =
“android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
28. Almacenamiento
1. En la RAM (tiempo de ejecución)
2. En la tarjeta SDCARD
3. En una base de datos SQLITE
4. Enviar a un servidor a través de una conexión de red
Velocidad de • RAM
acceso • WEB
Seguridad y • SQLITE y RAM
control de lectura • WEB
• SDCARD
Mayor Capacidad
• RAM
• Todas excepto RAM
Persistencia
29. Hardware
1. Algunos componentes de hardware se pueden usar a
través de otra aplicación o componente del sistema, lo
que se necesita es enviarle un mensaje para “iniciarla”,
más adelante veremos estos mensajes
2. El framework de aplicaciones provee clases que
encapsulan al hardware
3. Se pueden desarrollar componentes en C++ para
optimizar el uso de HW (ejemplo Procesadores gráficos)
30. Hardware
Usando otros componentes de sistema para usar el HW
Intent intent = new
Intent(MediaStore.ACTION_IMAGE_CAPTURE)
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(intent, ID_ACCION);
Usando la clase Camera (Se necesita declarar permisos)
mCamera = getCameraInstance();
Camera c = null;
try {
c = mCamera.open();
c.takePicture(null, null, ARCHIVO_DESTINO);
}
catch (Exception e){ … }
32. Experiencia de usuario
Barra de estado
Widgets
Pantalla de inicio “Home”
Iconos de acceso directo
Botones de navegación
(físicos o virtuales)
Lista de apps
33. Experiencia de usuario
Barra de Notificaciones
(Deslizar hacia abajo barra de
estado)
Notificaciones de todas las
aplicaciones o sucesos en el
sistema
(Programables y
configurables)
34. Errores
Todas las aplicaciones se ejecutan sobre una máquina
virtual llamada Dalvik, cuando ocurre un error, el sistema
operativo es capaz de detectarlo y finalizar la aplicación:
•Errores en tiempo de ejecución
•Aplicaciones que ya no responden
35. Integración
Interfaces de usuario
Comunicación entre apps
36. Interfaz de usuario
Actualiza/
Carga/ Escucha
Vista
OBJ
Activity
Evento
Método
Android
Manifest
Declarada en
37. Interfaz de usuario
Hay dos formas de asociar eventos de interfáz al controlador:
1. Por código asociando un objeto de tipo “listener”
2. Haciendo que el Activity sea un “listener”
3. Con las propiedades definidas en el Layout
private OnClickListener mListener = new
OnClickListener() {
public void onClick(View v) { … }
};
protected void onCreate(Bundle savedValues) {
...
button.setOnClickListener(mListener);
}
38. Interfaz de usuario
Haciendo que el Activity sea un “listener”
onClick()
onLongClick()
Metodos a onFocusChange()
implementar onKey()
onTouch()
onCreateContextMenu()
public class ExampleActivity extends Activity implements
OnClickListener {
protected void onCreate(Bundle savedValues) {
...
button.setOnClickListener(this);
}
public void onClick(View v) {
….
}
}
39. Interfaz de usuario
Con las propiedades definidas en el Layout:
1. Se debe indicar el nombre del metodo contenido en el
Activity que usará el layout
2. El metodo debe ser publico y recibir un objeto de tipo
view
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tap Me"
android:onClick=“buttonClicked" />
public class ExampleActivity extends Activity {
…
public void buttonClicked(View v) {
…
}
}
40. Interfaz de usuario
Tablas
Ordenar y agrupar
Layout Relativos elementos visuales, son
anidables
Lineales
General Elementos visuales
Menu que responden a
View
Contextual eventos de interacción
Texto
Botón Elementos visuales
Widget que componen las
Checkbox vistas
Barras de
progreso
41. Interfaz de usuario
<Button android:id=“BotonX"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button 3" />
R.id.BotonX
Button b = (Button)findViewById(R.id.BotonX)
46. Sabores de Android
Cada nueva versión ofrece nuevos componentes y
nuevas experiencias de usuario
También demandan más recursos de HW
Son acumulativas (Las apps de viejas versiones corren
sobre las versiones más recientes)
48. Recomendaciones
Buscar un buen libro de Android
Leer con calma la información de la página oficial
http://developer.android.com/guide/index.html
Tener buenas bases de Java
http://docs.oracle.com/javase/tutorial/java/index.html
Hacerse amigo de un diseñador gráfico
http://developer.android.com/design/index.html
Leer las recomendaciones de rendimiento, diseño y
compatibilidad