02 Herramientas Programacion Movil

Herramientas de Programación Móvil SEMANA 2 Cómo usar el entorno de desarrollo. Todos los derechos de autor son de la

Views 57 Downloads 1 File size 816KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Herramientas de Programación Móvil

SEMANA 2

Cómo usar el entorno de desarrollo.

Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni ESTE LAdeSEMANA 2 utilizarDOCUMENTO los contenidos paraCONTIENE fines comerciales ninguna clase.

1

ESTE DOCUMENTO CONTIENE LA SEMANA 2

2

ÍNDICE CÓMO USAR EL ENTORNO DE DESARROLLO....................................................................................... 4 OBJETIVOS ESPECÍFICOS ...................................................................................................................... 4 INTRODUCCIÓN ................................................................................................................................... 4 1.

2.

EL SISTEMA OPERATIVO .............................................................................................................. 5 1.1.

ANDROID Y LINUX................................................................................................................ 5

1.2.

BIBLIOTECAS ........................................................................................................................ 6

1.3.

RUNTIME DE ANDROID ....................................................................................................... 7

1.4.

FRAMEWORK DE APLICACIONES ......................................................................................... 9

1.5.

APLICACIONES ..................................................................................................................... 9

EL ARCHIVO ANDROIDMANIFEST.XML ...................................................................................... 10

COMENTARIO FINAL.......................................................................................................................... 13 REFERENCIAS........................................................................................................................................ 14

ESTE DOCUMENTO CONTIENE LA SEMANA 2

3

CÓMO USAR EL ENTORNO DE DESARROLLO OBJETIVOS ESPECÍFICOS  

Describir las características del sistema operativo Android, Android Runtime (ART) y Dalvik. Comprender la estructura del archivo manifest.xml

INTRODUCCIÓN Los temas de esta semana tienen que ver con el funcionamiento del sistema operativo Android, de qué partes está compuesto y cómo estas interactúan. También se tendrá el primer acercamiento directo con Android Studio y se estudiará el archivo de configuración de las aplicaciones manifest.xml. Estos temas son importantes para la construcción de aplicaciones móviles ya que ayudan a comprender en qué nivel del sistema operativo se crean las aplicaciones y cómo se deben configurar para un correcto funcionamiento. En el contexto laboral, sin esta comprensión del entorno es complejo comenzar con el desarrollo.

ESTE DOCUMENTO CONTIENE LA SEMANA 2

4

1. EL SISTEMA OPERATIVO El sistema operativo Android, arquitectónicamente hablando, consta de varias capas. Cada capa tiene sus propias características y propósito, pero en algunos puntos su separación no es clara.

1.1.ANDROID Y LINUX Android está construido sobre el sistema operativo Linux. Entre las razones principales por las que la compañía desarrolladora eligió este sistema operativo están la portabilidad, seguridad y algunas características especiales (Gargenta, 2011). Respecto a la portabilidad, dado que Linux es capaz de ser compilado en varias arquitecturas de hardware, Android es también independiente del hardware que está utilizando. Muchas de las partes que comunican a Android con el hardware están programadas en lenguaje C estándar. Así, los fabricantes pueden instalar el sistema operativo en una gran variedad de dispositivos. Linux es un sistema operativo altamente seguro y ha sido probado en escenarios bastante difíciles a través de los años. Una aplicación Android se ejecuta en procesos Linux completamente separados con permisos configurados por el mismo Linux. Finalmente, Linux está configurado de fábrica con muchas características que son de gran utilidad para Android, como por ejemplo soporte para manejo de memoria, manejo de energía y redes.

ESTE DOCUMENTO CONTIENE LA SEMANA 2

5

Ilustración 1 - Diagrama del Sistema Operativo Android.

Fuente: material elaborado para esta asignatura (Héctor Horta, 2015).

1.2.BIBLIOTECAS En cuanto a las bibliotecas nativas, estas están tomadas de la comunidad open source. Algunas bibliotecas que incluye Android son:

ESTE DOCUMENTO CONTIENE LA SEMANA 2

6

    

WebKit: motor web usado por Safari, Chrome y otros navegadores de internet. SQLite: base de datos SQL. Apache Harmony: implementación Open Source de Java. OpenGL: bibliotecas de gráficos 3D. Open SSL: capa de seguridad.

Muchas de estas bibliotecas están siendo utilizadas sin modificación alguna. Dentro de las excepciones está Bionic, que es una versión reescrita de la biblioteca estándar de C, que se usa principalmente por dos razones: 1. Tecnología: está escrita específicamente para dispositivos pequeños que usan baterías. 2. Licencia: la licencia open source que posee permite que terceros puedan adoptarla y cambiarla.

1.3.RUNTIME DE ANDROID Actualmente existen dos runtimes1: Dalvik y ART. Dalvik es una máquina virtual diseñada específicamente para Android y basada en la máquina virtual de Java. El equipo de Google que lo desarrolló se enfocó estrictamente en dispositivos móviles. Se centraron en aquellas características de hardware específicas de un entorno móvil y que tenían menos probabilidades de cambiar en el corto tiempo (capacidad de batería y poder de procesamiento). Un efecto secundario de reemplazar la máquina virtual de Java con Dalvik fue el licenciamiento: mientras el lenguaje Java, las herramientas y bibliotecas son gratis, la máquina virtual (de propiedad de Oracle) no. Esto se ha ido solucionando con el tiempo, ya que nuevas máquinas virtuales de código abierto han salido al mercado, como por ejemplo OpenJDK y Apache Harmony. ART, si bien es cierto cumple el mismo rol que Dalvik, ha incluido mejoras y es el runtime por defecto en Android 5.0. Una de las mejoras es el cambio del compilador Just In Time (JIT) utilizado en Dalvik por un compilador Ahead Of Time (AOT). La diferencia entre ambos tipos de compilación puede resumirse de la siguiente forma: en la estrategia JIT, la compilación se realiza en tiempo de ejecución de la aplicación, en cambio en AOT la compilación se realiza directamente hacia código nativo compatible solamente con la máquina donde se está ejecutando. Para arquitecturas móviles, el comportamiento de AOT es preferible ya que el código, al no ser compilado en tiempo de ejecución, resulta en un mejor uso de la batería del dispositivo y mejor rendimiento. De acuerdo a lo informado por Google en 2014, otras mejoras de ART en comparación con Dalvik son:

1

Runtime: porción del sistema operativo que permite la ejecución del software y su interacción con el entorno (sistema operativo).

ESTE DOCUMENTO CONTIENE LA SEMANA 2

7

1. Mejoras en el recolector de basura: la recolección de basura puede disminuir el rendimiento de las aplicaciones, lo que puede desencadenar ciertos problemas como fallas en la interfaz de usuario y movimientos no fluidos (cortados). ART mejora el recolector de basura de la siguiente forma:  Se realiza una pausa para recolección de basura en vez de dos, como en Dalvik.  La segunda ejecución del recolector de basura se realiza en un proceso paralelo.  Hay un nuevo recolector con menor tiempo total de recolección para limpiar objetos recientemente alocados en memoria y que han tenido una vida corta (se han dejado de usar rápidamente). La alocación de memoria se refiere a la solicitud de un segmento de memoria para almacenar una variable.  Compactación del recolector de basura para reducir el uso de memoria de segundo plano y fragmentación. 2. Mejoras para el desarrollo y debugging: El debugging es el proceso mediante el cual se ejecuta un programa paso a paso para seguir el hilo de su ejecución, ver el contenido de las variables utilizadas y detectar posibles problemas. Las mejoras para este nuevo entorno de ejecución para debugging son:  Perfilamiento por muestreo: históricamente, los desarrolladores han utilizado TraceView (una herramienta para ver la traza de la ejecución de una aplicación) para generar perfiles de comportamiento y ejecución de aplicaciones. Si bien es cierto Traceview otorga información importante, genera problemas de rendimiento en las aplicaciones ya que se ejecuta una vez por cada método ejecutado. ART, en cambio, tiene un sistema de muestreo dedicado que no tiene estas limitantes. Esto otorga una visión más exacta de la ejecución de la aplicación sin los problemas de rendimiento. Cabe señalar que esta característica fue añadida a TraceView para Dalvik en la versión de Android 4.4.  Más características para debugging: se agregaron características para monitoreo y recolección de basura. Por ejemplo: i. Ahora es posible ver los locks existentes en las trazas de la ejecución e ir al hilo de ejecución que lo contiene. ii. Se puede preguntar cuántas instancias existen de una clase dada, pedir que se muestre información de dichas instancias y ver qué referencias mantienen el objeto con vida. iii. Filtrar eventos, como por ejemplo breakpoints, para una instancia específica. iv. Ver el valor que retornó un método cuando termina su ejecución. v. Configurar puntos para suspender la ejecución del programa cuando un campo o variable específica es accedida o modificada.  Mejoras en los detalles de diagnósticos del sistema para excepciones y reportes de fallos.

ESTE DOCUMENTO CONTIENE LA SEMANA 2

8

1.4.FRAMEWORK DE APLICACIONES El framework de aplicaciones es un entorno que provee todos los servicios necesarios para que el desarrollador de aplicaciones cumpla con su trabajo. Es la parte del sistema operativo que está más y mejor documentada, ya que gracias a él es que los desarrolladores pueden ser creativos en mezclar dichos servicios y publicar aplicaciones muy potentes. Acá se pueden encontrar numerosas bibliotecas de Java construidas específicamente para Android. También se pueden encontrar servicios que otorgan al desarrollador un ecosistema completo para el desarrollo de aplicaciones con sensores de posición, ubicación, wifi, telefonía, etc.

1.5.APLICACIONES Finalmente están las aplicaciones que los desarrolladores crean. Estas aplicaciones son las que el usuario de Android encuentra en su dispositivo. Pueden venir preinstaladas o pueden ser descargada desde Google Play.

ESTE DOCUMENTO CONTIENE LA SEMANA 2

9

2. EL ARCHIVO ANDROIDMANIFEST.XML Al momento de iniciar un nuevo proyecto Android, uno de los muchos archivos generados en la carpeta de proyecto es el manifest. Este archivo es el que une las piezas y explica en qué consiste la aplicación completa, de qué y cuántas aplicaciones está compuesta, qué permisos necesita, etc. Ilustración 2 - Proyecto Android.

Fuente: material elaborado para esta asignatura (Héctor Horta, 2015).

El archivo manifest contiene información esencial para el sistema operativo. Esta información debe tenerla el sistema antes que pueda ejecutar el código de la aplicación. De acuerdo con Marko Gargenta (2011) el manifiesto, entre otras cosas, realiza lo siguiente:  

Nombra el paquete Java de la aplicación. El nombre del paquete sirve como identificador único para la aplicación y a través de este puede ser ejecutada por otras aplicaciones. Describe los componentes de la aplicación, ya sean actividades, servicios, recepción de mensajes push y proveedores de contenidos. Nombra las clases que implementa cada uno de los componentes y publica sus capacidades (por ejemplo, el tipo de mensajes que

ESTE DOCUMENTO CONTIENE LA SEMANA 2

10

   

 

pueden enviar o recibir). Estas declaraciones le permiten saber al sistema operativo qué componentes existen y bajo qué condiciones pueden ser ejecutados. Determina qué otros procesos contienen otras partes de la aplicación. Declara los permisos que debe tener la aplicación para acceder a partes protegidas de la API e interactuar con otras aplicaciones. Declara los permisos que otras aplicaciones deben tener para interactuar con los componentes de esta aplicación. Lista los instrumentos que otorgan información de profiling2 mientras la aplicación está en ejecución. Estas declaraciones están presentes solamente mientras la aplicación está siendo desarrollada y deben ser quitadas antes de publicarla (Coppa, Demetrescu & Finocchi, 2012). Declara la versión mínima de Android que la aplicación requiere. Lista las bibliotecas que deben ser incluidas en la aplicación.

A continuación se presenta un archivo AndroidManifest.xml real. Ilustración 3 – Ejemplo de un archivo manifest.

Fuente: material elaborado para esta asignatura (Héctor Horta, 2015).

El elemento inicial del archivo XML (manifest) define que el contenido corresponde al manifest de la aplicación señalada en el atributo “package”. En este caso “com.example.hhorta.myapplication”.

2

Profiling: es una forma de análisis dinámico que mide el espacio utilizado en memoria, la complejidad de un programa, el uso de instrucciones particulares o la frecuencia y duración de llamadas a métodos.

ESTE DOCUMENTO CONTIENE LA SEMANA 2

11

El primer elemento (o hijo) dentro del elemento manifest (llamado raíz) corresponde a la configuración de los elementos del sistema operativo que van a ser utilizados durante la ejecución. 



 

android:allowBackup: especifica si se puede o no hacer un respaldo de la aplicación. Los respaldos son permitidos solamente cuando este valor es true. En caso contrario, el valor es false. android:icon: es el valor que corresponde al ícono de la aplicación. @drawable es un llamado a los componentes visuales del paquete de la aplicación. En semanas sucesivas se verá esto con mayor profundidad. android:label: corresponde al nombre que aparece bajo el ícono en el “escritorio” del dispositivo Android. android:theme: es el esquema visual de la aplicación. El valor por defecto es @style/AppTheme y se construye automáticamente al momento de crear un nuevo proyecto Android.

Dentro del elemento application, existe el elemento activity que se encarga de la configuración de cada uno de los archivos Java (clases) dentro del proyecto. Una explicación más acabada también se verá en semanas posteriores. Los atributos de activity pueden ser los siguientes:  

android:name: corresponde al nombre del archivo que contiene el código Java a ejecutar. Siempre se inicia con un “.”. android:label: es el nombre que se verá en el borde superior de la pantalla del teléfono. Cada clase contenida dentro de una aplicación puede tener un nombre distinto.

Como elemento dentro de activity, existe el elemento “intent filter”. Los elementos y atributos de los hijos de este elemento pueden identificar situaciones especiales para el código Java. En el ejemplo, action y category dicen que esta clase es la que se ejecuta al momento de iniciar la aplicación. En las próximas semanas se verá un capítulo dedicado a intent filters.

ESTE DOCUMENTO CONTIENE LA SEMANA 2

12

COMENTARIO FINAL Esta semana se vieron los contenidos referentes a la arquitectura del sistema operativo Android, de qué partes está compuesto y cómo se orquestan para entregar al usuario la experiencia de uso del sistema. También se vio en qué parte de dicha arquitectura trabaja el desarrollador para crear nuevas aplicaciones y qué partes del sistema tiene a su disposición para hacerlo. Finalmente la teoría llevó al primer paso práctico que es la familiarización con el archivo manifest, que es el archivo mediante el cual los desarrolladores especifican qué partes de la API y el sistema necesitan para poder ejecutar la aplicación e interactuar con otros sistemas. Laboralmente hablando, es importante conocer estos dos tópicos pues al momento de desarrollar y encontrar errores en la aplicación, la configuración escrita en el manifest es uno de los primeros lugares a los que se debe recurrir.

ESTE DOCUMENTO CONTIENE LA SEMANA 2

13

REFERENCIAS Gargenta, M. (2011). Learning Android. California: O’Reilly. Google (s. f. a). App Manifest. Recuperado de: https://goo.gl/pvJGQf Google (s. f. b). ART and Dalvik. Recuperado de: http://goo.gl/Z1C4Ua Coppa, E.; Demetrescu, C. & Finocchi, I. (2012). Input-Sensitive Profiling. Recuperado de: http://aprof.googlecode.com/files/pldi055-coppa.pdf

ESTE DOCUMENTO CONTIENE LA SEMANA 2

14

PARA REFERENCIAR ESTE DOCUMENTO, CONSIDERE: IACC (2015). El sistema operativo Android. Herramientas de Programación Móvil. Semana 2.

ESTE DOCUMENTO CONTIENE LA SEMANA 2

15

ESTE DOCUMENTO CONTIENE LA SEMANA 2

16