Download androidi i(1)
Document related concepts
no text concepts found
Transcript
ANDROID > NIVEL 1 CONTENIDO: ANDROID Nivel 1 CONTENIDO: ANDROID Nivel 1 ............................................................................................ 2 ANDROD .................................................................................................................................... 3 APIS EN ANDROID .................................................................................................................. 3 ARQUITECTURA EN ANDROID .................................................................................................. 6 ENTORNO DE DESARROLLO ...................................................................................................... 8 1. Descargar el SDK de Android. ......................................................................... 8 2. Crear un emulador ............................................................................................. 13 3. Crear proyecto en Android ............................................................................. 15 ESTRUCTURA DE UN PROYECTO ANDROID ............................................................................ 18 Carpeta /src/ ......................................................................................................... 19 Carpeta /res ........................................................................................................... 19 Carpeta /gen/ ......................................................................................................... 20 FICHERO ANDROIDMANIFEST.XML ........................................................................................ 21 Atributos ................................................................................ Error! Bookmark not defined. ANDROID TIPS ...................................................................................................................... 21 Aplicación en Android No.1 .......................................................................................... 22 Código java (MainActivity.java) ............................................................................ 22 Código archivo layout (activity_main.xml) ........................................................ 23 Diseño archivo layout (activity_main.xml) ........................................................ 23 Código archivo strings.xml ...................................................................................... 24 Código archivo AndroidManifiest.xml .................................................................... 24 Aplicación en Android No.2 .......................................................................................... 25 Código java (MainActivity.java) ............................................................................ 25 Código java (Segundo Activity.java) .................................................................... 26 Código archivo layout (activity_main.xml) ........................................................ 27 Código archivo layout (activity_segundo.xml) .................................................. 27 Código archivo string.xml ........................................................................................ 28 Código archivo AndroidManifiest.xml .................................................................... 28 Realizado por: Diana Alfaro Página 2 ANDROID Android es un sistema operativo basado en el kernel de Linux diseñado principalmente para dispositivos móviles con pantalla táctil, como teléfonos inteligentes o tabletas, y también para relojes inteligentes, televisores y automóviles, inicialmente desarrollado por Android, Inc. Google respaldó económicamente y más tarde compró esta empresa en Julio 2005.En Noviembre 2007, nace la Open Handset Alliance Consorcio de empresas unidas con el objetivo de desarrollar estándares abiertos para móviles. El primer producto Android para móviles es construida sobre el kernel de Linux 2.6 APIS EN ANDROID Los nombres de las versiones de Android se escogen de nombres de postres y siguiendo la secuencia del abecedario! Android “CUPCAKE” - versión 1.5 Lanzamiento: Abril del 2009 Funciones: Teclado QWERTY virtual, widgets, captura de video,copiar&pegar, subir videos a Youtube en forma directa. Notas: Marca el inicio de este sistema operativo. API 3 Android “DONUT” - versión 1.6 Lanzamiento: Septiembre 2009 Funciones: Navegación en Google Maps paso-a-paso, mejora en el interfaz de la cámara de foto y video, búsquedas por voz. Nota: Esta versión era muy barata y no encarecía el costo de los dispositivos. Inicia de manera importante el crecimiento de la comunidad de desarrolladores. API 4 Android “ECLAIR” - versión 2.0 Lanzamiento: Diciembre 2009 Funciones: Zoom digital de la cámara de fotos y video, mejoras en Google Maps, nuevo navegador de internet con soporte de video e incluso de Flash, salvapantallas animadas. Realizado por: Diana Alfaro Página 3 Nota: Comienza a demostrar la robustez y estabilidad como sistema operativo para dispositivos móviles. API 5 Android “FROYO” - versión 2.2 Lanzamiento: Mayo 2010 Funciones: mejora de memoria, mucho mas veloz que las versiones anteriores, WiFi incluido, soporte de correo electrónico Microsoft Exchange y video llamada. Soporta Flash Nota: Ya tomando su sitio de honor entre la mayoría de los dispositivos móviles a nivel mundial. Excelente aceptación por parte de los usuarios. API 8 Android “GINGERBREAD” - versión 2.3 Lanzamiento: Diciembre 2010 Funciones: Mejora del soporte de video online, mejora de la gestión de la energía (y consumo de la batería), mejora del teclado virtual, soporte para pagos mediante NFC. Nota: Abre mas posibilidades para usuarios totalmente conectados. API 9, 10 Android “HONEY COMB” -versión 3.0/3.4 Lanzamiento: Mayo 2011 Funciones: Sistema operativo optimizado para tablets, posee plenas funcionalidades multitareas (multitasking) para cambiar de aplicaciones en uso dejando las demás en espera visibles en una columna, soporte Flash y DivX, aparte de los navegadores privados tradicionales integra Dolphin, home page personalizable y widgets. Nota: Esta versión está optimizada para Tablets, manteniendo en smartphone la versión 2.3 API 11 Android “ICECREAM SANDWICH” - versión 4.0 Lanzamiento: Finales 2011 Funciones: Diseñado para todas las plataformas (smartphones, tablets y netbooks de todas las medidas), pantalla principal con imágenes 3D, barras de estado y widgets redimensionables, reconocimiento facial, mejora de reconocimiento de voz; soporte USB para teclados y controles para PS3. Nota: Novedades y mejoras en la navegación e interfaz, con el objetivo de dinamizar y facilitar la experiencia del usuario. API 14 Realizado por: Diana Alfaro Página 4 Android “JELLY BEAN” - versión 4.3 Lanzamiento: Julio 2013 Funciones: Motor multi-idioma de Síntesis de habla para permitir a cualquier aplicación de Android "hablar" una cadena de texto, fotos panorámicas con "Photo Sphere", etc. Nota: Por primera vez en Android se incluyen los idiomas hebreo, árabe, afrikáans, amhárico, hindi, suajili y zulú. Posee un sistema de localización Wi-Fi en segundo plano. API 16 Android “KITKAT” - versión 4.4 Lanzamiento: Finales 2013 Funciones: Optimización de múltiples tareas, vista web en Chrome, fotos en HDR+, etc. Nota: Integración de SMS en Hangouts, emoji. API 19 Android “LOLLIPOP” - versión 5.0 Lanzamiento: Diciembre 2014 Funciones: Rediseño de la interfaz de usuario basado en “Material design”, cambios en las notificaciones, pantalla de bloqueo, optimización de la batería. API 21 Android Marshmallow – versión 6.0 Lanzamiento: Mayo 2015 Funciones: Soporte nativo para el reconocimiento de huellas digitales. Un nuevo sistema de administración de energía conocida como "doze" reduce las actividades en fondo del dispositivo cuando el sistema operativo detecta que el dispositivo no está siendo tocado físicamente. API 23 Realizado por: Diana Alfaro Página 5 ARQUITECTURA EN ANDROID Android está formado por 4 capas, cada una de ellas basadas en software libre. 1.- El núcleo Linux El núcleo de Android está formado por el sistema operativo Linux versión 2.6. Esta capa proporciona servicios como la seguridad, el manejo de la memoria, el multiproceso, la pila de protocolos y el soporte de drivers para dispositivos. Esta capa del modelo actúa como capa de abstracción entre el hardware y el resto de la pila. Por lo tanto, es la única que es dependiente del hardware. 2.1- Runtime de Android Está basado en el concepto de máquina virtual utilizado en Java. Dado las limitaciones de los dispositivos donde ha de correr Android (poca memoria y procesador limitado) no fue posible utilizar una máquina virtual Java estándar. Google tomó la Realizado por: Diana Alfaro Página 6 decisión de crear una nueva, la máquina respondiera mejor a estas limitaciones. virtual Dalvik, que También se incluye en el Runtine de Android el “core libraries” con la mayoría de las librerías disponibles en el lenguaje Java. 2.2.- Librerías nativas Incluye un conjunto de librerías en C/C++ usadas en varios componentes de Android. Están compiladas en código nativo del procesador. Muchas de las librerías utilizan proyectos de código abierto. 3.- Entorno de aplicación Proporciona una plataforma de desarrollo libre para aplicaciones con gran riqueza e innovaciones (sensores, localización, servicios, barra de notificaciones,). Esta capa ha sido diseñada para simplificar la reutilización de componentes. Las aplicaciones pueden publicar sus capacidades y otras pueden hacer uso de ellas (sujetas a las restricciones de seguridad). Este mismo mecanismo permite a los usuarios reemplazar componentes. Una de las mayores fortalezas del entorno de aplicación de Android es que se aprovecha el lenguaje de programación Java. 4.- Aplicaciones Este nivel está formado por el conjunto de aplicaciones instaladas en una máquina Android. Todas las aplicaciones han de correr en la máquina virtual Dalvik para garantizar la seguridad del sistema. Normalmente las aplicaciones Android están escritas en Java. Para desarrollar aplicaciones en Java podemos utilizar el Android SDK. Existe otra opción consistente en desarrollar las aplicaciones utilizando C/C++. Para esta opción podemos utilizar el Android NDK (Native Development Kit). Realizado por: Diana Alfaro Página 7 ENTORNO DE DESARROLLO 1. Descargar el SDK de Android. El SDK de la plataforma Android se puede descargar desde http://developer.android.com/sdk/index.html junto con el IDE de Android Studio Realizado por: Diana Alfaro Página 8 Realizado por: Diana Alfaro Página 9 Este descarga, incluye tambien el ultimo API. Si se desea descargar otra API u otras herramientas tendremos que descargar su target correspondiente. Realizado por: Diana Alfaro Página 10 Realizado por: Diana Alfaro Página 11 Realizado por: Diana Alfaro Página 12 2. Crear un emulador Para configurar el emulador sólo se debe ingresar a la opción AVD Manager Indicar el tamaño del emulador Realizado por: Diana Alfaro Página 13 Seleccionamos la imagen del sistema Ingresamos nombre del emulador Realizado por: Diana Alfaro Página 14 3. Crear proyecto en Android Al momento de crear un proyecto nuevo de android, aparecerá una primera pantalla donde colocaremos el nombre de la aplicación, el nombre del proyecto, el paquete java Luego seleccionamos la versión mínima del SDK que aceptará nuestra aplicación (Minimum Required SDK) para cada tipo de dispositivo Realizado por: Diana Alfaro Página 15 La siguiente pantalla es para elegir el tipo de Actividad principal de la aplicación. Dejar todo por defecto, la pantalla principal será del tipo BlankActivity. Realizado por: Diana Alfaro Página 16 El último paso es para indicar los datos de esta actividad principal, nombre de la clase java asociada y el nombre del layout .xml Luego pulsamos Finish y Android proyecto Android con esta estructura: Realizado por: Diana Alfaro Studio creará un nuevo Página 17 ESTRUCTURA DE UN PROYECTO ANDROID Cuando creamos un nuevo proyecto Android en Android Studio se genera automáticamente la estructura de carpetas necesaria para poder generar posteriormente la aplicación. Esta estructura será común a cualquier aplicación, independientemente de su tamaño y complejidad. En la siguiente imagen vemos los elementos creados inicialmente para un nuevo proyecto Android: Realizado por: Diana Alfaro Página 18 Describamos los elementos principales. Carpeta /src/ Contiene todo el código fuente de la aplicación, código de la interfaz gráfica, clases auxiliares, etc. Inicialmente, Eclipse creará por nosotros el código básico de la pantalla (Activity) principal de la aplicación, siempre bajo la estructura del paquete java definido. Carpeta /res Contiene todos los ficheros de recursos necesarios para el proyecto: imágenes, vídeos, cadenas de texto, etc. Los diferentes tipos de recursos de deberán distribuir entre las siguientes carpetas: /res/drawable/ Contiene las imágenes [y otros elementos gráficos] usados en por la aplicación. Para definir diferentes recursos dependiendo de la resolución y densidad Realizado por: Diana Alfaro Página 19 de la pantalla del dispositivo se suele dividir en varias subcarpetas: /drawable-ldpi (densidad baja) /drawable-mdpi (densidad media) /drawable-hdpi (densidad alta) /drawable-xhdpi (densidad muy alta) /res/layout/ Contiene los ficheros de definición XML de las diferentes pantallas de la interfaz gráfica. Para definir distintos layouts dependiendo de la orientación del dispositivo se puede dividir en dos subcarpetas: o /layout (vertical) o /layout-land (horizontal) /res/color/ Contiene ficheros XML de definición de colores según estado. /res/menu/ Contiene la definición XML de los menús de la aplicación. /res/xml/ Contiene otros ficheros XML de datos utilizados por la aplicación. /res/raw/ Contiene recursos adicionales, normalmente en formato distinto a XML /res/values/ Contiene otros ficheros XML de recursos de la aplicación, como por ejemplo cadenas de texto (strings.xml), estilos (styles.xml), colores (colors.xml), arrays de valores (arrays.xml), etc. Entre los recursos creados por defecto, cabe destacar el layout “activity_main.xml”, que contiene la definición de la interfaz gráfica de la pantalla principal de la aplicación Carpeta /gen/ Contiene una serie de elementos de automáticamente al compilar el proyecto. Cada nuestro proyecto, la maquinaria de compilación por nosotros una serie de ficheros fuente en control de los recursos de la aplicación. Realizado por: Diana Alfaro código generados vez que generamos de Android genera java dirigido al Página 20 Esta clase R contendrá en todo momento una serie de constantes con los ID de todos los recursos de la aplicación incluidos en la carpeta /res/, de forma que podamos acceder facilmente a estos recursos desde nuestro código a través de este dato. Así, por ejemplo, la constante R.drawable.icon contendrá el ID de la imagen “icon.png” contenida en la carpeta/res/drawable/. FICHERO ANDROIDMANIFEST.XML Contiene la definición en XML de los aspectos principales de la aplicación, como por ejemplo su identificación (nombre, versión, icono,...), sus componentes (pantallas, mensajes,...), o los permisos necesarios para su ejecución. ANDROID TIPS Si se ejecuta un proyecto en un dispositivo virtual y luego se hacen modificaciones de código o se corre en modo debug, no es necesario cerrar la instancia del AVD sino que simplemente hay que presionar el botón Run. Utilizar siempre Relative Layouts para tener GUI utilizables en todas las resoluciones. Aprovechar los recursos .xml disponibles, por ejemplo strings, colours y styles. Definir en el Manifest de la aplicación todas las características de la aplicación, de esta manera se evitará que se instale en dispositivos que no la soporten evadiendo los puntajes y comentarios negativos. Ubicar en las carpetas específicas para las distintas pantallas las imágenes diseñadas para las distintas resoluciones. El éxito de una aplicación para Android radica principalmente en el diseño de la interfaz gráfica y la interacción con los recursos del teléfono La mayores optimizaciones se pueden hacer en base al diseño de las UI. Utilizar “sp” (space independent pixels) o “dip” (distance independent pixels) en vez de “px” para definir medidas ya que de esta forma podremos tenes elementos escalables a las distintas densidades de pantallas. Hacer las pruebas sobre muchas configuraciones de dispositivos virtuales distintas. Realizado por: Diana Alfaro Página 21 Aplicación en Android No.1 Descripción de la app: Esta aplicación constará de un pequeño formulario que contiene un EditText y un elemento Button, la acción del botón mostrará una alerta, pudiendo salir de la aplicicación o no. También se escribirán mensajes en el log de la app. Palabras claves: Activity, Layout, TextView, EditText, Button, onClick, id, R, Log, Toast. Objetivos: manipular elementos view de android, realizar interfaz gráfica, manejo de eventos, mensajes de alerta y/o notificaciones al usuario, finalizar aplicación, depuración de aplicaciones, ejecución de aplicaciones en el emulador. Código java (MainActivity.java) Realizado por: Diana Alfaro Página 22 Código archivo layout (activity_main.xml) Diseño archivo layout (activity_main.xml) Realizado por: Diana Alfaro Página 23 Código archivo strings.xml Código archivo AndroidManifiest.xml Realizado por: Diana Alfaro Página 24 Aplicación en Android No.2 Descripción de la app: Manejo de varias actividades en una app, envio y recuperación de datos entre actividades Palabras claves: Activity, Layout, TextView, EditText, Button, onClick, id, R, Log, Toast, Alert, Intent. Objetivos: iniciar otras actividades desde la actividad principal, envío y recuperación de datos entre actividades. Código java (MainActivity.java) Realizado por: Diana Alfaro Página 25 Código java (Segundo Activity.java) Realizado por: Diana Alfaro Página 26 Código archivo layout (activity_main.xml) Código archivo layout (activity_segundo.xml) Realizado por: Diana Alfaro Página 27 Código archivo string.xml Código archivo AndroidManifiest.xml Realizado por: Diana Alfaro Página 28