Está en la página 1de 56

Desarrollo de

Soluciones
Móviles
¿Qué es Android?

Android es un sistema operativo


basado en el núcleo Linux. Fue
diseñado principalmente para
dispositivos móviles con pantalla
táctil, como teléfonos inteligentes…
Versiones
• Android 1.0 (no codename)
• Android 1.1 (Petit Four)
• Android 1.5 (Cupcake)
• Android 1.6 (Donut)
• Android 2.0 (Eclair)
• Android 2.2 (Froyo)
• Android 2.3 (Gingerbread)
• Android 3.0 (Honeycomb)
• Android 4.0 (Ice Cream Sandwich)
• Android 4.1 (Jelly Bean)
• Android 4.4 (KitKat)
• Android 5.0 (Lollipop)
• Android 6.0 (Marshmallow)
• Android 7.0 (Nougat)
• Android 8.0 (Oreo)
• Android 9.0 (Android P name TBC)
Arquitectura
de Android
Diferencias con otros SO
Android
◇Es una de las plataformas con mayor variedad de dispositivos; se pueden encontrar
Smartphone muy básicos y accesibles hasta los más completos y de costo elevado.

BlackBerry
◇La seguridad en la transmisión de datos en este operativo lo hacen uno de los más
robustos, además de convenientes para el uso empresarial.

iOS
◇Al ser un entorno cerrado, prácticamente todas las aplicaciones desarrolladas para iOS
garantizan un funcionamiento estable con una experiencia de usuario satisfactoria.

Windows Phone
◇Ofrece una de las interfaces más diferentes de la actualidad, con un diseño
original y transiciones atractivas.
Capas de la arquitectura Android
Framework de las aplicaciones

• Los desarrolladores tienen acceso completo a los mismos APIs del


framework usados por las aplicaciones base. La arquitectura está
diseñada para simplificar la reutilización de componentes; cualquier
aplicación puede publicar sus capacidades y cualquier otra aplicación
puede luego hacer uso de esas capacidades.

**Una API es un conjunto de reglas (código) y especificaciones que las aplicaciones pueden seguir para comunicarse entre ellas.
Bibliotecas - Librerias

• Android incluye un conjunto de bibliotecas de C/C++ usadas por varios


componentes del sistema. Estas características se exponen a los
desarrolladores a través del marco de trabajo de aplicaciones de Android;
y entre estas se encuentra: SQLite para manejo de bases de datos.

** Biblioteca es una colección o conjunto de subprogramas usados para desarrollar software.


Runtime de Android

• Es un entorno de ejecución de aplicaciones utilizado por el sistema


operativo móvil Android. ART reemplaza a Dalvik, que es la máquina
virtual utilizada originalmente por Android, y lleva a cabo la
transformación de la aplicación en instrucciones de máquina, que luego
son ejecutadas por el entorno de ejecución nativo del dispositivo.
Núcleo linux

• Android depende de Linux para los servicios base del sistema


como seguridad, gestión de memoria, gestión de procesos, pila
de red y modelo de controladores. El núcleo también actúa como
una capa de abstracción entre el hardware y el resto de la pila de
software.
SDK Android

SDK SDK Android


son las siglas de Software Development un entorno de desarrollo integrado
Kit, lo que traduciéndolo a nuestro para la plataforma Android. Fue
idioma sería un Kit de Desarrollo de anunciado el 16 de mayo de 2013 en la
Software. Mediante éste kit podemos conferencia Google I/O, y reemplazó a
desarrollar aplicaciones y ejecutar un Eclipse como el IDE oficial para el
emulador de la versión de Android (o de desarrollo de aplicaciones para
lo que sea). En Android todas las Android. La primera versión estable
aplicaciones se ejecutan en Java. fue publicada en diciembre de 2014.
JDK

Son las siglas de JAVA Development Kit, es un software que provee


herramientas de desarrollo para la creación de programas en Java. Puede
instalarse en una computadora local o en una unidad de red. En la unidad
de red se pueden tener las herramientas distribuidas en varias
computadoras y trabajar como una sola aplicación.
IDE
IDE
Es un entorno de desarrollo integrado,
es un entorno de programación que ha
sido empaquetado como un programa
de aplicación, es decir, consiste en un
editor de código, un compilador, un
depurador y un constructor de interfaz
gráfica (GUI).
Android Studio
Es un entorno de desarrollo integrado (IDE), basado en IntelliJ IDEA de la
compañía JetBrains, que proporciona varias mejoras con respecto al plugin
ADT (Android Developer Tools) para Eclipse. Android Studio utiliza una
licencia de software libre Apache 2.0, está programado en Java y es
multiplataforma.
Programación Orientada a objetos

Es un paradigma de programación que viene a innovar la forma de obtener


resultados. Los objetos manipulan los datos de entrada para la obtención de
datos de salida específicos, donde cada objeto ofrece una funcionalidad especial.

Muchos de los objetos pre-diseñados de los lenguajes de programación actuales


permiten la agrupación en bibliotecas o librerías, sin embargo, muchos de estos
lenguajes permiten al usuario la creación de sus propias bibliotecas.
Clases

Definiciones de las propiedades y comportamiento de un tipo de


objeto concreto. La instanciación es la lectura de estas definiciones y la
creación de un objeto a partir de ella.
Herencia

Por ejemplo, herencia de la clase C a la clase D, es la facilidad mediante


la cual la clase D hereda en ella cada uno de los atributos y operaciones
de C, como si esos atributos y operaciones hubiesen sido definidos por
la misma D. Por lo tanto, puede usar los mismos métodos y variables
públicas declaradas en C.
Objeto

Instancia de una clase. Entidad provista de un conjunto de propiedades


o atributos (datos) y de comportamiento o funcionalidad (métodos),
los mismos que consecuentemente reaccionan a eventos. Se
corresponden con los objetos reales del mundo que nos rodea, o con
objetos internos del sistema (del programa).
Método

Algoritmo asociado a un objeto (o a una clase de objetos), cuya


ejecución se desencadena tras la recepción de un "mensaje". Desde el
punto de vista del comportamiento, es lo que el objeto puede hacer.
Un método puede producir un cambio en las propiedades del objeto, o
la generación de un "evento" con un nuevo mensaje para otro objeto
del sistema.
Abstracción

consiste en aislar un elemento de su contexto o del resto de los


elementos que lo acompañan. En programación, el término se refiere al
énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?"
(característica de caja negra). El común denominador en la evolución de
los lenguajes de programación, desde los clásicos o imperativos hasta
los orientados a objetos, ha sido el nivel de abstracción del que cada uno
de ellos hace uso.
Encapsulamiento

Es el ocultamiento del estado, es decir, de los datos miembro de un


objeto de manera que sólo se pueda cambiar mediante las operaciones
definidas para ese objeto.

Cada objeto está aislado del exterior, es un módulo natural, y la


aplicación entera se reduce a un agregado o rompecabezas de objetos.
El aislamiento protege a los datos asociados de un objeto contra su
modificación por quien no tenga derecho a acceder a ellos, eliminando
efectos secundarios e interacciones.
Herencia

Es, después de la agregación o composición, el mecanismo más


utilizado para alcanzar algunos de los objetivos más preciados en el
desarrollo de software como lo son la reutilización y la extensibilidad. A
través de ella los diseñadores pueden crear nuevas clases partiendo de
una clase o de una jerarquía de clases preexistente (ya comprobadas y
verificadas) evitando con ello el rediseño, la modificación y verificación
de la parte ya implementada.
eXtensible Markup Language

Es un meta-lenguaje que permite definir lenguajes de marcas desarrollado por


el World Wide Web Consortium (W3C) utilizado para almacenar datos en forma
legible. Proviene del lenguaje SGML y permite definir la gramática de lenguajes
específicos (de la misma manera que HTML es a su vez un lenguaje definido por
SGML) para estructurar documentos grandes. A diferencia de otros lenguajes,
XML da soporte a bases de datos, siendo útil cuando varias aplicaciones deben
comunicarse entre sí o integrar información.
Polimorfismo

Se refiere a la propiedad por la que es posible enviar mensajes


sintácticamente iguales a objetos de tipos distintos. El único requisito
que deben cumplir los objetos que se utilizan de manera polimórfica es
saber responder al mensaje que se les envía.
Estructura de un proyecto Android
Vista (View)

Las vistas son los elementos que componen la interfaz de usuario de una
aplicación: por ejemplo, un botón o una entrada de texto. Todas las vistas van a
ser objetos descendientes de la clase View, y por tanto, pueden ser definidas
utilizando código Java. Sin embargo, lo habitual será definir las vistas utilizando un
fichero XML y dejar que el sistema cree los objetos por nosotros a partir de este
fichero. Esta forma de trabajar es muy similar a la definición de una página web
utilizando código HTML.
Layout

Un layout es un conjunto de vistas agrupadas de una


determinada forma. Vamos a disponer de diferentes
tipos de layouts para organizar las vistas de forma
lineal, en cuadrícula o indicando la posición absoluta
de cada vista. Los layouts también son objetos
descendientes de la clase View. Igual que las vistas, los
layouts pueden ser definidos en código, aunque la
forma habitual de definirlos es utilizando código XML.
Actividad (Activity)

Una aplicación en Android va a estar formada por un conjunto de elementos


básicos de visualización, coloquialmente conocidos como pantallas de la aplicación.
En Android cada uno de estos elementos, o pantallas, se conoce como actividad. Su
función principal es la creación del interfaz de usuario. Una aplicación suelen
necesitar varias actividades para crear el interfaz de usuario. Las diferentes
actividades creadas serán independientes entre sí, aunque todas trabajarán para un
objetivo común. Toda actividad ha de pertenecer a una clase descendiente de
Activity.
Servicio(Service)

Un servicio es un proceso que se ejecuta “detrás” en segundo plano, sin la


necesidad de una interacción con el usuario. En Android disponemos de dos tipos
de servicios: servicios locales, que son ejecutados en el mismo proceso y servicios
remotos, que son ejecutados en procesos separados.
Intención(Intent)

Una intención representa la voluntad de realizar alguna acción; como realizar una
llamada de teléfono, visualizar una página web. Se utiliza cada vez que queramos:

1. Lanzar una actividad.


2. Lanzar un servicio.
3. Enviar un anuncio de tipo broadcast.
4. Comunicarnos con un servicio.

Los componentes lanzados pueden ser internos o externos a nuestra aplicación.


También utilizaremos las intenciones para el intercambio de información entre
estos componentes.
Fragment

La llegada de las tabletas trajo el problema de que las aplicaciones de Android


ahora deben soportar pantallas más grandes. Si diseñamos una aplicación pensada
para un dispositivo móvil y luego la ejecutamos en una tableta, el resultado no
suele resultar satisfactorio. Para ayudar al diseñador a resolver este problema, en la
versión 3.0 de Android aparecen los fragments.

Un fragment está formado por la unión de varias vistas para crear un bloque
funcional de la interfaz de usuario. Una vez creados los fragments, podemos
combinar uno o varios fragments dentro de una actividad, según el tamaño de
pantalla disponible.
Receptor de anúncios (Broadcast receiver)

Un receptor de anuncios recibe y reacciona ante anuncios de tipo broadcast. Los


anuncios broadcast pueden ser originados por el sistema o por las aplicaciones.
Algunos tipos de anuncios originados por el sistema son: Batería baja, llamada
entrante,... Las aplicaciones también pueden crear y lanzar nuevos tipos de
anuncios broadcast. Los receptores de anuncios no disponen de interfaz de usuario,
aunque pueden iniciar una actividad si lo estiman oportuno.
Proveedores de contenido (Content provider)

Un receptor de anuncios recibe y reacciona ante anuncios de tipo broadcast. Los


anuncios broadcast pueden ser originados por el sistema o por las aplicaciones.
Algunos tipos de anuncios originados por el sistema son: Batería baja, llamada
entrante,... Las aplicaciones también pueden crear y lanzar nuevos tipos de
anuncios broadcast. Los receptores de anuncios no disponen de interfaz de usuario,
aunque pueden iniciar una actividad si lo estiman oportuno.
Componentes de Android Studio
Editor de código

El editor de código es la ventana con tabs que se ve en la parte central.


Prácticamente todo el proyecto depende del uso que hagas de este espacio.

Si ves, cada elemento que abres ya sea con doble click o la tecla Intro, muestra
su contenido o características en el editor. Al momento de abrir varios
elementos, la ventana implementa una navegación con pestañas para poder
pasar entre uno y otro.
Editor de código

Existen gran cantidad de acciones que


podemos realizar con las pestañas y no
solo abrirlas y cerrarlas como
pensábamos. Dirígete a Window>Editor
Tabs o presiona Alt + W y Alt + T.
Editor de código

• Select Next Tab: Selecciona la pestaña


consecutiva a la actual. El shorcut es Alt + →.
• Select Previous Tab: Selecciona la pestaña
anterior. El shortcut es Alt + ←.
• Pin Active Tab: Marca la pestaña como
“clavada” para representar importancia ante
las demás pestañas. Esta opción se combina
con Close All but Pinned para cerrar todas las
pestañas menos las que están pineadas. Si
marcas ActividadPrincipal.java como clavada,
verás un icono circular en la pestaña.
Canaleta del editor de código

La Canaleta (una humilde traducción mía) o Gutter es la


sección lateral izquierda del editor de código donde se
muestra información sobre los recursos y controles
asociados al código.
Barra de alertas

La barra de alertas se encuentra en


la parte derecha del editor. En ella
se indican las líneas más
importantes del código para las
cuales debes tener cuidado especial
después de haber realizado
un Análisis de Código.
Ventanas de herramientas

Si te fijas en la interfaz de Android Studio verás


varios botones en los laterales y la parte inferior.
Algunos como TODO, Terminal, Favorites, Maven
Projects, etc.

Cada una de estas opciones se les llama botones


de herramientas, los cuales te permiten acceder a
las ventanas de herramientas. Estas tienen como
fin ayudarte en las labores que hacen parte del
proceso de desarrollo de aplicaciones móviles.
Ventana de herramientas Project

Esta es la ventana más intuitiva y


una de mayor uso en cualquier
IDE. Su objetivo es mostrarte el
alcance global de todos los
archivos del proyecto a través de
una vista de árbol o jerarquía.
Uso de vistas

La ventana Project provee varias vistas para enfocar el contenido del


proyecto en archivos particulares. Por ejemplo, la anterior ilustración se
encuentra en la vista Android y solo muestra los elementos principales para
construir la app, sin embargo ignora archivos como las librerías.
Uso de vistas

Vista Project: Muestra absolutamente


todos los archivos que se encuentran
en las ramificaciones del proyecto,
como lo es los paquete java, recursos,
tests, archivos de construcción,
librerías, assets, etc.
Uso de vistas

Vista Packages: Simplifica la vista


solamente a los paquetes Java que se
relacionan con nuestra aplicación.
Uso de vistas

Vista Scratchs: Muestra los scratchs


creados hasta el momento dentro del
proyecto. Un scratch es un archivo de
texto plano o una pieza de código
escrita con el fin de exploración o
investigación temporal hasta que se
llegue a una solución definida.
Uso de vistas

Vista Android: La vista de proyecto


Android muestra las jerarquías más
importantes de tu aplicación Android.
Enfatiza en agrupar los archivos
relacionados con el proyecto en
módulos junto a los archivos de
construcción de Gradle.
Ventana de herramienta Structure

•Ventana de herramienta Structure

La ventana Structure muestra los


componentes de tu archivo dependiendo del
lenguaje en que esté escrito. Si es Java, verás
los métodos, atributos, interfaces, etc. Si es
XML, se mostrará la jerarquía de etiquetas
que existen dentro de este. Si seleccionas
cualquier componente, verás como el cursor
dentro del editor se mueve a la línea donde
inicia.
Ventana de herramienta Favorites

La ventana de favoritos te permite administrar


los siguientes elementos:

• Los ítems marcados como favoritos en el


proyecto.
• Los marcadores de acceso (Bookmarks) en
los archivos.
• Los puntos de interrupción (Breakpoints)
que existan para depuración.
Barra de menú principal

La barra de menú principal como se ve en nuestro diagrama inicial, se


encuentra en la parte más alta de la accesibilidad de Android Studio. Con ella
podemos realizar todas aquellas acciones que puedan existir dentro del
entorno de desarrollo.
Barra de herramienta principal

Esta barra contiene botones con las acciones usadas más frecuentes para tener
un acceso rápido. Acciones de administración de archivos como abrir, copiar,
pegar, cortar, deshacer y rehacer. O acciones para correr rápidamente las
aplicaciones, iniciar el SDK, emuladores, buscar elementos, etc.
Barra de navegación

Muestra la ruta en la que se encuentra alojado un fichero que ha sido abierto


en el editor de código. La profundidad de los directorios se expresa de
izquierda a derecha.
Barra de estado

Este componente de la interfaz de Android Studio te muestra información


importante sobre los estados de tareas, consumo de recursos, tipos de en
codificado, notificaciones de errores, etc.

También podría gustarte