Este documento presenta una introducción a la plataforma Android. Explica que Android es un sistema operativo móvil de código abierto basado en Linux. Detalla algunas de las características clave de Android como su arquitectura de aplicaciones, navegador integrado, soporte multimedia y más. También describe los fundamentos del desarrollo de aplicaciones Android como actividades, vistas, intenciones y el ciclo de vida de las actividades. Finalmente, ofrece consejos sobre cómo comenzar a desarrollar aplicaciones Android.
11. ¿QUÉ ES ANDROID?
• Android es la primera plataforma completa abierta, basada en
Linux.
• kernel Linux
• middleware (user interface, communications, storage, . . . )
• apps (dialer, contacts, browser, . . . )
• DesarrolladoOpen Handset Alliance y Open Source: http://
source.android.com/
12. ANDROID FEATURES
• Framework de aplicaciones: permite el reemplazo y la
reutilización de los componentes.
• Navegador integrado: basado en el motor WebKit.
• SQlite: base de datos que se integra directamente con las
aplicaciones.
• Multimedia: Soporte
formatos comunes de audio, video e
imágenes planas (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG,
GIF).
13. ANDROID FEATURES
• Máquina virtual Dalvik: Base de llamadas de instancias muy
similar a Java.
• Telefonía GSM: dependiente del terminal.
• Bluetooth, EDGE, 3g y Wifi: dependiente del terminal.
• Cámara, GPS, brújula y acelerómetro: Dependiente del
terminal
• Pantalla Táctil.
14. ¿CÓMO EMPEZAMOS A
DESARROLLAR?
• developer.android.com
• descargar SDK (win, mac linux) y descomprimir
• instalar IDE eclipse: http://www.eclipse.org/downloads
• ADT Plugin para Eclipse: https://dl-ssl.google.com/android/
eclipse/
• descargarplataformas, 2.1+ más usada: http://
developer.android.com/resources/dashboard/platform-
versions.html
15. HERRAMIENTAS DE
DESARROLLO
• Emulador: permite desarrollar y testear las aplicaciones sin
necesidad de dispositivo físico.
16. HERRAMIENTAS DE
DESARROLLO
• DDMS: Permite debugar
aplicaciones
• ADB: linea de comandos para
comunicarte con los
dispositivos conectados
• http://developer.android.com/
guide/developing/tools/
index.html
18. ACTIVITIES
• Una actividad presenta una interfaz de usuario para 1 o N
acciones que puede hacer.
• Unaapp puede tener 1 o N actividad. Cada una es
independiente, pero solo una puede estar activa.
• Las
actividades se apilan, la nuevas actividad se sitúan en la
cima de la pila(LIFO)
• El contenido visual lo provee una jerarquía de Views
19. CICLO DE VIDA
• onCreate():Se invoca cuando
la Actividad arranca por primera
vez. Se utiliza para tareas de
inicialización.
• onRestart(): Se invoca cuando
una actividad parada pasa a estar
activa
20. CICLO DE VIDA
• onStart(): Se invoca cuando la
Actividad va a ser mostrada al
usuario
• onResume(): Se invoca
cuando la actividad va a empezar
a interactuar con el usuario
• onPause():Se invoca cuando la
otra actividad ha sido lanzada. Se
utiliza para guardar el estado de
la Actividad
21. CICLO DE VIDA
• onStop(): Se invoca cuando la
actividad va a dejar de ser visible.
Si hay escasez de recursos en el
sistema, la actividad se destruye
directamente
• onDestroy(): Se invoca
cuando la Actividad va a ser
destruida
22. ESTADOS ACTIVIDAD
• Activo (Running): La
actividad está encima de la
pila, es visible, tiene el foco.
• Pausado (Paused): La
actividad es visible pero no
tiene el foco. Se alcanza este
estado cuando pasa a activa
otra actividad transparente
23. ESTADOS ACTIVIDAD
• Parado (Stopped): Cuando
la actividad no es visible. Se
recomienda guardar el
estado de la ui, preferencias,
etc
• Destruido (Destroyed):
Cuando la Actividad
termina, o es matada por el
runtime de Android. Sale de
la Pila de Actividades
24. VIEWS
• La interfaz de usuario se construye con View y View Group
• La
clase View es padre de clases llamadas “widgets”, como son
campos de textos, botones, etiquetas
• Laclase ViewGroup es padre de “layout”, utilizados para crear
arquitectura de interfaz.
• La forma de describir Views es XML dentro de res/layout
25. INTENTS
• Intentpermite la interacción entre componentes de
aplicaciones disponibles. Por ejemplo moverse de una Activity
a otra enviando cierta información.
Intent intent=new Intent(Intent.ACTION_DIAL, Uri.parse("tel:11111111"));
startActivity(intent);
Intent intent=new Intent(Intent.ACTION_VIEW, Uri.parse("http://and.roid.es"));
startActivity(intent);
Intent intent=new Intent(this, Random.class);
startActivity(intent);
26. ANDROID MANIFEST
• El manifest es un XML siempre llamado AndroidManifest.XML
• Se declara todo:
• Activities
• Intents
• Librerías
• Permisos necesarios
•y más componentes: Services, Content Providers...
27. HELLO ANDROID!
• Crear un nuevo proyecto. File > New > Project
• src: código Java
• res: recursos de la App
• drawable: gráficos
• layout: diseño Interfaz
• values: literales, colores, estilos,
arrays
28. HELLO ANDROID!
• Activity HelloWorldActivity.java
public class HelloAndroid extends Activity {!
/** Called when the activity is first created. */!
@Override!
public void onCreate(Bundle savedInstanceState) {!
super.onCreate(savedInstanceState);!
!
setContentView(R.layout.main);!
}!
}!
30. POR DONDE SEGUIR
• TutorialNotepad: http://developer.android.com/resources/
tutorials/notepad/index.html
• Helloviews: http://developer.android.com/guide/tutorials/views/
index.html
• Mas recursos: http://stackoverflow.com, barcelona gtug
32. GRACIAS
Actualidad info
@androides
Ven a nuestras eventos
@barcelonagtug
Notes de l'éditeur
\n
\n
2005 Google compra Android Inc.\nSept 2008 HTC Dream primer Android con versión 1.1, muchas carencias\nAbril 2009 teclado en pantalla, soporte stereo bluetooth, Widgets de escritorio, Copiar/Pegar en navegador, nueva app cámara que permite grabar vídeo.\nSept 2009 cambio UI del market, Implementación de gestos, se implementa text-to-speech, quick search busqueda en todo el móvil\nOct 2009 quick contact, nueva distribución de teclado, nuevo navegador con soporte html5\nMay 2010 soporte flash 10.1, se mejora el rendimiento con dalvik JIT, mejoras de navegador\nDic 2010 rediseño completo de la UI de android, colores, iconos; rediseño del teclado, soporte NFC, se introduce una mejor selección para copiar/pegar\nGingerbread el cual\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Los rectangulos son callbacks que podemos implementar para realizar operaciones en los cambios de estado\n
Los rectangulos son callbacks que podemos implementar para realizar operaciones en los cambios de estado\n
Los rectangulos son callbacks que podemos implementar para realizar operaciones en los cambios de estado\n