Ir al contenido principal

Framework de android

Que es el framework de android?

En este sitio aprenderás sobre el kit de desarrollo SDK de android, las bibliotecas de android y el marco de aplicación y ciclo de vida, sabrás como desarrollar aplicaciones utilizando android studio, el desarrollo integrado IDE oficial de android.
Aprenderás a configurar correctamente tu PC o laptop para el desarrollo de aplicaciones para android
 

Que son las capas de software de android ?

El sistema android se compone de varias capas como se muestra en la siguiente figura
800px-Diagrama_android
Linux Kernel
El sistema operativo android esta basado en un kernel de linux, para los servicios centrales del sistema, tales como seguridad, gestión de memoria, gestión de procesos, pila de red y controladores de hardware.
El kernel de linux actúa como una capa de abstracción entre el hardware y el resto de la pila de software, teniendo un modelo de controlador probado siendo eficiente en la gestión de recursos.  
C/C++ Librerias 
En la parte superior del kernel linux viene un conjunto de bibliotecas nativas escritas en c / c ++, que son responsables del rendimiento estable de varios componentes. Administran el acceso para diferentes procesos para componer capas gráficas 2D y 3D y son responsables del procesamiento del framework, es decir, soporte de reproducción y grabación para todos los principales medios y archivos de imagen estática, además de soportar fuentes, almacenamiento de datos y navegador web.
Android Runtime (ART)
Junto a las bibliotecas c / c ++ se encuentra el runtime android (ART), que es el sucesor de la máquina virtual dalvik (DVM). Esta diseñado en base a la máquina virtual de Java específicamente para android que funciona en el ambiente limitado, donde la batería limitada, la CPU, la memoria y el almacenamientode datos son las preocupaciones principales, en vez del archivo .jar que son leídos por JVM, el ART lee archivos .dex .
Estos archivos de código de byte optimizado son más eficientes para ejecutarse en un proceso pequeño.
Android runtime contiene bibliotecas principales que están escritas en lenguaje de programación java y contiene una colección de clases, utilidades, I/O y otras herramientas.


Que es el marco de aplicacion  (framework)

El marco de aplicación está escrito en lenguaje java. Es una colección de bibliotecas de java que todas las aplicaciones de Android utilizan, ya sean aplicaciones nativas de Android como dialer o cualquier otra aplicación creada por cualquier programador de android. Tiene varios componentes, por ejemplo, el gestor de actividades gestiona el ciclo de vida de las aplicaciones, el gestor de paquetes mantiene un montón de aplicaciones instaladas en el dispositivo, el gestor de telefonía contiene un conjunto de API necesario para llamar a las aplicaciones y el gestor de notificaciones personaliza las alertas y otras funciones.

capa de aplicacion


Esta es la capa mas superior de la arquitectura de android que contiene todas las aplicaciones utilizadas por el usuario final. Todas las aplicaciones que construye se encuentra en esta capa y todas se escriben utilizando el lenguaje de programacion java.


Librerias de android

El sistema operativo android ofrece un conjunto de APIs de java para el desarrollo de sus aplicaciones. La siguiente es una lista no completa de las bibliotecas principales proporcionadas por el SDK de android. Todos los dispositivos android deben proporcionar soporte para estas bibliotecas:




android View
Esta biblioteca proporciona las clases principales para las interfaces graficas de usuario de android y para manejar la interaccion del usuario con la interfaz de usuario. La clase View parte de este paquete, es la clase de interfaz de usuario mas importante.

android.widget
El paquete de widget contiene elementos GUI para utilizar en la pantalla de aplicaciones. Este paquete se deriva del paquete View y contiene vistas integradas listas para utilizarse en una pantalla.

android.util
Este es el paquete de utilidad principal porque incluye clases especiales como formateadores de utilidades de cadena y analizadores XML, codificadores y decodificadores base64, metodos de conversion de numeros y numeros.

android.database
proporciona la API para acceder a interacciones de bajo nivel con bases de datos android y manejar cursores. Hay tambien asimismo una base de datos siendo SQLITE que contiene las clases de administracion de base de datos sqlite que una aplicacion utilizaria para administrar su propia base de datos privada, al crear un proveedor de contenido, probablemente tendra que utilizar estas clases para crear y administrar su propia base de datos para administrar su contenido.

Contenido de Android
El contenido proporciona clases para gestionar el acceso a datos. Estas clases se usan principalmente con recursos, proveedores de contenido y paquetes. También, parte de esta biblioteca es la clase de contexto que es una interfaz para información global sobre un entorno de aplicación y proporcionada por el sistema android. Permitiendo el acceso a clases y recursos específicos de la aplicación.

Aplicacion Android
Esto proporciona acceso para componentes de alto nivel del modelo de la  aplicación, por ejemplo: Las clases de actividad y servicio - Las clases básicas para todas las aplicaciones de Android ; son parte de este paquete.

Proveedor de Android 
Esta biblioteca proporciona un acceso más fácil a los proveedores de contenido básico, como los contactos y las bases de datos de calendario
 
Telefonia de Android
El paquete de telefonía brinda la capacidad de monitorear información básica del teléfono, como el estado del teléfono, la conectividad de red y los mensajes SMS.

Kit web para Android 

El paquete de kit web proporciona clases para permitir que su aplicación explore la Web. La clase principal en esta biblioteca utilizada por los desarrolladores es la vista web. además del conjunto de bibliotecas android avanzadas como android.location, android.media, android.openg1, android.hardware, android.bluetooth ... etc 

Componentes de una aplicacion de Android 
Los siguientes son los componentes principales que proporcionan los bloques de construcción para cualquier aplicación de Android y actúan como un posible punto de entrada para su aplicación:

1- Actividades
Esta es su interfaz de usuario de aplicaciones. Cada pantalla en una aplicación extiende la clase de actividad. Las actividades usan vistas para crear interfaces gráficas de usuario interactuando con el usuario.
2- Servicios
Un servicio es la parte invisible de su aplicación. Se ejecuta de forma invisible en segundo plano actualizando las fuentes de datos y las actividades visibles. Los servicios se utilizan para realizar un procesamiento continuo incluso cuando las actividades de una aplicación no están activas o visibles.
3-proveedores de contenido
Son un almacén de datos que está expuesto para compartir. Los proveedores de contenido gestionan y comparten bases de datos de aplicaciones. son la forma preferida de compartir datos entre diferentes aplicaciones; es decir, puede configurar sus propios proveedores de contenido para permitir el acceso desde otras aplicaciones. Android proporciona varios proveedores de contenido nativo que exponen bases de datos útiles como contactos e información de registros de llamadas.
4-receptores de difusion
Consumen mensajes emitidos por intenciones. cuando se agrega un receptor de difusión a su aplicación, significa que su aplicación puede escuchar los intentos de transmisión que coinciden con los criterios de filtro específicos.

Los siguientes son algunos otros ejemplos de componentes del SDK de Android que verás frecuentemente mientras navegas por esta página.


1)views (puntos de vistas)

Las vistas son objetos que saben dibujarse a sí mismos en la pantalla.cada actividad se compone de un conjunto de vistas agrupadas en una vista de diseño que es la clase principal de todos los widgets de actividad.



2)Intents (intenciones)
Estos son objetos utilizados para enviar mensajes a través de todo el sistema Android. se utilizan para transmitir mensajes, iniciar una actividad o iniciar el servicio, incluida la intención de realizar una acción, es deber del sistema interpretar el mensaje y determinar el (los) objetivo (s) que realizará las acciones según corresponda.

3) notifications (notificaciones)
Se pueden usar en una aplicación para alertar a los usuarios sobre ciertos eventos sin tener una actividad visible. Las notificaciones no roban el enfoque ni interrumpen la interacción actual de los usuarios con una actividad. preferiblemente se utilizan para llamar la atención de los usuarios desde un servicio. por ejemplo, cuando un servicio termina de descargar un archivo de Internet, puede alertar al usuario mediante una notificación que puede emitir sonido, mostrar mensajes de diálogo, vibrar ... etc.

ciclo de vida de la aplicacion

Al contrario de las aplicaciones tradicionales que construyes, el propio ciclo de vida de las aplicaciones de Android está controlado por el marco de Android. es Android que ejecuta y apaga correctamente las aplicaciones cuando está preparado. Las aplicaciones de Android siempre escuchan los cambios en su estado y responden en consecuencia hasta que alcanza la terminación adecuada. Cada aplicación de Android ejecuta su propio proceso y la gestión del proceso se maneja exclusivamente en tiempo de ejecución. Más adelante aprenderá sobre el manejo del evento del ciclo de vida a través de los métodos de devolución de llamada de Java.
Android administra activamente sus recursos, haciendo lo que sea necesario para garantizar que el dispositivo permanezca activo. para lograr esto, Android eliminará las aplicaciones sin advertencia si es necesario para liberar recursos para aplicaciones de mayor prioridad.

Para determinar qué procesos deben eliminarse cuando hay poca memoria, android clasifica cada aplicación en un tipo de componentes basados ​​en "jerarquías de importancia" y el estado de esos componentes.

Tipo de procesos android y sus prioridades

Cada uno de los componentes de la aplicación de Android enumerados anteriormente normalmente forma parte de un proceso de Linux que inicia el sistema Android cuando el usuario abre una aplicación. Sin embargo, hay diferentes tipos de procesos que varían según la prioridad (importancia). Los siguientes tipos de procesos están ordenados por importancia en orden descendente.

Procesos de primer plano (activos)

Esas son aplicaciones con componentes que actualmente interactúan con el usuario. Estos son procesos en los que Android intenta mantener su capacidad de respuesta reclamando recursos. En general, hay muy pocos de estos procesos, y se eliminarán solo como último recurso.

Proceso visible

Los procesos visibles, pero inactivos, son aquellos que alojan actividades "visibles". Como sugiere su nombre, las actividades visibles son visibles, pero no están "en primer plano" o respondiendo a eventos del usuario. Esto sucede cuando una actividad solo está parcialmente oculta (por una actividad no de pantalla completa o transparente). pocos procesos visibles, y solo se eliminarán en circunstancias extremas para permitir que los procesos activos continúen.

Servicios

Estos son procesos de servicios de hosting que se han iniciado. Servicio de soporte continuo de procesamiento que debe continuar sin una interfaz visible. Debido a que los servicios no interactúan directamente con el usuario, reciben una prioridad ligeramente menor que las actividades visibles. Todavía se consideran procesos de primer plano y no se eliminarán a menos que se necesiten recursos para procesos activos o visibles.

Proceso de fondo (background process)

Los procesos que alojan actividades que no son visibles y que no tienen ningún servicio que se haya iniciado se consideran procesos en segundo plano. en general, habrá una gran cantidad de procesos en segundo plano que Android eliminará utilizando un patrón de último muerto visto para obtener recursos para procesos en primer plano.

Proceso vacio

Para mejorar el rendimiento general del sistema, Android a menudo retiene las aplicaciones en la memoria después de que han llegado al final de su vida útil. Android mantiene este caché para mejorar el tiempo de inicio de las aplicaciones cuando se reinician. Estos procesos se eliminan de forma rutinaria según sea necesario.

Requisitos previos para el desarrollo de aplicaciones de Android

Para comenzar a desarrollar aplicaciones de Android, necesita tener varios componentes de software instalados en su computadora antes de comenzar el desarrollo.

  • Plataforma SDK de Android. Este es el conjunto de bibliotecas de programación y API que proporciona los métodos e interfaces necesarios para desarrollar aplicaciones de Android y le permite compilar su código. Cada versión de Android es una plataforma que se puede instalar mediante el administrador de SDK .Si desea desarrollar una aplicación de Android para una versión específica de Android, debe instalar la plataforma SDK para esa versión.
  • Entorno de desarrollo integrado (IDE). Preferiblemente, Android Studio es el IDE oficial de Android.
  • Herramientas de android SDK. Un componente de software que incluye un conjunto completo de herramientas de desarrollo y depuración para el SDK de Android.
  • Herramientas de compilacion de android SDK. Este es el componente de software requerido para construir el código de la aplicación de Android después de que un desarrollador termina de construir la aplicación. Las herramientas de compilación se ejecutan continuamente durante el desarrollo para facilitar el proceso de prueba para un desarrollador.












 

Comentarios

Entradas más populares de este blog

Tutorial de Android Studio: una guía completa

Aprende a desarrollar aplicaciones para Android con Android Studio con este completo tutorial. Comienza a usar Android Studio Android Studio es un potente entorno de desarrollo integrado (IDE) para crear aplicaciones de Android. Para comenzar a usar Android Studio, primero debes descargarlo e instalarlo en tu computadora. Una vez instalado, puedes abrir Android Studio y comenzar un nuevo proyecto de Android. Después de abrir Android Studio, aparecerá una pantalla de bienvenida. Desde aquí, puede elegir iniciar un nuevo proyecto, abrir un proyecto existente o importar un proyecto desde el control de versiones. Al iniciar un nuevo proyecto, se le pedirá que elija una plantilla de proyecto y configure los ajustes de su proyecto. Android Studio proporciona varias plantillas para elegir, como una actividad en blanco, una actividad básica con un diseño o una actividad de pantalla completa. También puedes especificar el lenguaje de programación (Java o Kotlin) y la versión mínima del SDK par...

Herramientas de Android

Cuales son las herramientas de android? Estructura del proyecto android Cuando creas un nuevo proyecto de Android con Android Studio, se crea un conjunto de carpetas y archivos. Estos incluyen todo lo que define su aplicación de Android, desde el código fuente de la aplicación hasta la configuración de configuraciones y los recursos de la aplicación. La estructura de las carpetas de proyectos creadas es la requerida por las herramientas de Android SDK para compilar y empaquetar correctamente su aplicación. La siguiente imagen muestra las carpetas de alto nivel de un proyecto de aplicación de Android (llamados módulos en Android Studio). Cada uno de los módulos incluye un tipo específico de archivos de código fuente y finalmente se integran en el archivo empaquetado de su aplicación (archivos .apk). Las siguientes son algunas de las carpetas y archivos principales que conforman un módulo de aplicación de Android: libs           contiene biblio...

Diseños de Android con vistas personalizadas

Como son los diseños en android? En anteriores entradas se han introducido varios tipos de Vista disponibles en el marco de Android. Estos son solo un subconjunto de un gran número de clases de vista, también llamadas widgets, que se proporcionan para las interacciones del usuario. Cada una de estas vistas tiene un comportamiento predeterminado de una interfaz. Sin embargo, a veces, su aplicación puede requerir vistas ligeramente diferentes que no están incluidas en las vistas integradas. Aquí comenzaremos explicando vistas y diseños, luego muestra cómo crear sus propias vistas personalizadas que pueden ser reutilizables. Puntos de vista(Views) Una vista en las aplicaciones de Android es el componente básico en una interfaz de usuario. En el SDK de Android, la clase se llama Ver y es la clase de nivel más alto para cualquier componente de UI o widget que use en sus aplicaciones: todos los widgets de UI que haya visto antes como botones y campos de texto son elementos secundarios ...