Curso de programación Android
quelachetuolApuntes7 de Octubre de 2015
2.324 Palabras (10 Páginas)158 Visitas
Introducción a la Programación en Android
Introducción
- Instalación de ambiente: Java, Android Studio, Genymotion.
- Objetivo del curso:
Que el participante adquiera los conocimientos necesarios para desarrollar aplicaciones para Android de calidad.
- Pre-requisitos:
Java, objetos, encapsulamiento
- Temas a revisar en el curso
Android, FragmentManager
Estado actual del Desarrollo en Android
- Plataforma de Android
En Julio de 2005 se funda la compañía Android, con la finalidad de desarrollar un sistema operativo para cámaras digitales. Posteriormente pudieron utilizar Android en diferentes dispositivos móviles y la compañía fue comprada por Google.
Basado en el kernel de Linux, Android fue liberado en OpenSource, factor que ayudó al desarrollo de diferentes aplicaciones destinadas a dicho sistema operativo. El resultado fue un gran incremento en el número de usuarios, alcanzando en 2014 el 81% del mercado. En 2013, existían 1 500 000 dispositivos activados diario.
Actualmente, reportado en Q1 2015, Android ocupa el 78% del mercado, mientras que su competencia iOS cuenta con el 18%. Windows pone ocupa el 3% y RIM de Blackberry el 1%.
En Google Play en 2013 había 48 millones de apps descargadas.
- Futuro
Ouya, consola de videojuegos con Android.
Android wear.
Televisiones.
Android: Sistema operativo para funcionar en diferentes dispositivos.
Project Brillo, basado en kernel Android. Internet de las cosas. Protocolo de comunicación weave.
Anatomía del sistema operativo
- Kernel de Linux.
Display Driver | Camera Driver | Bluetooth | Flash Memory Driver | Binder (IPC) Driver |
USB Driver | Keypad Driver | WiFi Driver | Audio Drivers | Power Management |
- Bibliotecas nativas
Surface Manager* | Media Framework | SQLite |
OpenFL|ES | FreeType | WebKit |
SGL | SSL | Libc |
*Creado para Android
- Ambiente de ejecución (Android runtime)
Core Libraries |
Dalvik Virtual Machine: interprete de archivos |
Java class, dex, apk
- Application Framework
Activity Manager | Window Manager | Content Providers | View System | Notification Manager |
Package Manager | Telephony Manager | Resource Manager | Location Manager | XMPP Service |
- Applications
Home | Contacts | Phone | Browser | … |
Android manifest, archivo que permite relación. Permite seguridad pues las aplicaciones no comparten información.
Tour Android Studio
- Módulos
New Project:
Application name
Company domain
Package name
Android Platform Version (Phone and Tables)
Actividades (blank, con fragmentos: diferentes tamaños de pantalla, login, etc.)
Layout (interfaz de usuario)
Fragment Layout
Title
Navigation Drawer
Patrón de diseño de software: Skeleton
Módulo: componente más importante. Forma de organizar proyectos.
>Visualización de diferentes tipos de archivos: Android, Project, Problems…
Carpetas
Mobile: manifest, java, res (drawable, layout, menú, mipmap, values)
Tv:
Wear:
Build.gradle: configuración.
Herramientas complementarias
Debug Bridge: Enlaza el emulador o dispositivo en el que se corre una aplicación, con Android Studio. Consola muestra mensajes, se pueden capturar pantallas.
Device Monitor: Monitorea el estado del dispositivo, hilos de ejecución, estado de la memoria, variables en ejecución, simulación de velocidad de red. Android Virtual Device Manager / Genymotion.
Previsualización de UI: Diferentes layout para dar arquitectura a la interfaz. Previsualización en Android Studio.
Gradle: Configuración para la aplicación. Fácil importación de configuración; definición de dependencias. Construcción de proyectos robustos.
Recursos gráficos en Android y Creación de Vistas
Mi primera aplicación en Android
Objetivo: Entender los conceptos fundamentales para desarrollar aplicaciones modernas en Android SDK como Navigation Drawer, RecyclerView y Fresco en un proyecto real.
- Ejemplo Hola Mundo
- Carpeta Res
- Main.xml
- @string/hello
- AndoidManifest.xml
- MainActivity.java
1. Recursos: Todo lo que no es código Java. Imágenes, archivo de texto, estilos, archivos de configuración.
-Drawable: NinePatch, clase que permite el manejo de imágenes en diferentes tamaños. Ver GradientDrawable.
http://radleymarx.com/blog/simple-guide-to-9-patch/
-Layout: ver activity_main.xml (punto 3)
-Menu: Configuración del menú de la aplicación
-Mipmap: @mipmap
-Values: dimensiones, strings, estilos. @style
http://jgilfelt.github.io/android-actionbarstylegenerator/
2. Main.xml
Layout, dar propiedades a componentes hijos.
Frame Layout, componentes o vistas encima de otros, lienzo.
Linear Layout, estructura lineal, vertical u horizontal
Table Layout, interfaz basada en tablas, bidimensionalmente
Grid Layout, los componentes se acomodan en red. Adaptador, inyecta componentes para desplegar de acuerdo al número total.
Relative Layout, los componentes se refieren en función a otros.
-Propiedades de TextView
android:textSize; android:layout_width: match_parent, wrap_content
android:padding (dp: pixels independientes de densidad)
android:layout_margin
3. @string/hello
De donde se extraen los textos que la aplicación requiere. Se definen los textos a partir de un nombre y un valor. Esto también permite tener otro xml para un idioma diferente.
En la carpeta values, se sitúan los archivos en inglés por defecto. Si se desea otro idioma se crea una carpeta aparte (values-fr para francés, etc.).
4. AndroidManifest.xml
Define la configuración general del proyecto.
Permite realizar configuraciones como definir las actividades y fragmentos que existen, los permisos que serán utilizados (con la etiqueta uses-permission).
MipMap
Utiliza un patrón parecido a sprites. Una sóla imagen en donde están los gráficos para distintos tamaños, dividida.
Navigation Drawer, Recycler View y CardView
Material Design
- NavigationDrawer NavigationView
NavigationDrawer, utiliza una forma de desplegar diferentes acciones complejas. Patrones: http://www.google.com/design/spec/patterns/navigation-drawer.html#
Build.gradle:
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:design:22.2.0'
compile 'de.hdodenhof:circleimageview:1.3.0'
strings.xml
<string name="home_item">Iniciostring>
<string name="products_item">Productosstring>
<string name="cart_item">Carritostring>
<string name="orders_item">Órdenesstring>
<string name="invoices_item">Facturasstring>
<string name="log_out_item">Cerrar Sesiónstring>
<string name="settings_item">Configuraciónstring>
<string name="email_navdrawer">correo@asdf.comstring>
<string name="name_navdrawer">Alberto Barradasstring>
...