Android Jetpack es un conjunto de componentes de software, bibliotecas , herramientas y orientación para ayudar a desarrollar aplicaciones sólidas de Android . Lanzado por Google en 2018 , Jetpack comprende bibliotecas de soporte de Android existentes, componentes de arquitectura de Android con una adición de la biblioteca KTX de Android como una sola entidad modular. Hoy en día, casi el 99 % de las aplicaciones presentes en Google Play Store utilizan las bibliotecas de Android Jetpack. El área de comportamiento del jetpack de Android cubre aquellas bibliotecas que permiten a los usuarios interactuar con la aplicación a través de la interfaz de usuario. Este componente integra los servicios estándar de Androidcomo notificación, descarga, permisos, uso compartido, asistente, etc. Este artículo explica en detalle todas y cada una de las bibliotecas del componente Comportamiento. Jetpack consta de una amplia colección de bibliotecas que se construyen de manera que funcionen juntas y creen aplicaciones móviles sólidas. Sus componentes de software se han dividido en 4 categorías:
- Componentes de cimentación
- Componentes de arquitectura
- Componentes de comportamiento
- Componentes de la interfaz de usuario
Además, la siguiente es la lista de todos los componentes de Comportamiento:
- Gestor de descargas
- Medios y reproducción
- permisos
- Notificaciones
- Intercambio
- rebanadas
Formas de incluir bibliotecas de Android Jetpack en la aplicación
- Agregue el repositorio de Google en el archivo build.gradle del proyecto de la aplicación.
todos los proyectos {
repositorios {
Google()
jcenter()
}
}
- Todos los componentes de Jetpack están disponibles en el repositorio de Google Maven, inclúyelos en el archivo build.gradle
todos los proyectos {
repositorios {
jcenter()
experto {url ‘https://maven.google.com’}
}
}
Componentes de comportamiento
1. Administrador de descargas
DownloadManager es un servicio del sistema en Android que ayuda a descargar archivos voluminosos en el hilo de fondo. La capacidad de los dispositivos móviles para descargar y almacenar archivos localmente es muy importante y necesaria porque no es muy atractivo para los usuarios tener Internet conectado todo el tiempo. Además, el uso continuo de Internet agota la batería de los dispositivos más rápido y aumenta los costos. La clase DownloadManager maneja solo descargas HTTP y es responsable de evitar problemas de conectividad, de reanudar la descarga si el dispositivo se reinicia y del mecanismo para volver a intentarlo si el archivo falla. Dado que es un servicio del sistema, los usuarios pueden simplemente iniciar una descarga y escuchar un evento de transmisión para manejar la descarga finalizada.
una. Inicializar el DownloadManager
Como cualquier otro servicio del sistema, DownloadManager se inicializa mediante el método getSystemService() . Luego, el objeto resultante se convierte en la clase DownloadManager.
privado void initializeDownloadManager() {
downloadManager= (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
}
b. Creación de una solicitud de descarga
La solicitud HTTP del usuario se define en la clase Solicitud, que es una clase interna de DownloadManager.
DownloadManager.Request request=nuevo
DownloadManager.Request(Uri.parse(“https://media.geeksforgeeks.org/wp-content/cdn-uploads/gfg_200x200-min.png”));
solicitud.setTitle(“GfG_logo”)
.setDescription(“El archivo se está descargando…”)
.setDestinationInExternalFilesDir(esto,
Environment.DIRECTORY_DOWNLOADS, nombre de archivo)
.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
C. Poner en cola una descarga
Para poner en cola una descarga (agregar una solicitud de descarga a la cola del administrador de descargas), se usa el método enqueue() . Esta cola es procesada automáticamente por el sistema y devuelve un ID de descarga .
downLoadId=downloadManager.enqueue(solicitud);
d. Eliminar/Eliminar un archivo descargado:
Para eliminar/eliminar un archivo descargado del administrador de descargas, se llama al método remove() y se le pasa el ID de descarga del archivo como argumento.
privado void eliminar archivo descargado() {
downloadManager.remove(downLoadId);
}
2. Medios y reproducción
Jetpack proporciona una API compatible con versiones anteriores para el marco multimedia de Android. Las bibliotecas de medios incluidas facilitan a los desarrolladores la integración de archivos de audio, video e imagen en una aplicación. Además, las bibliotecas de reproducción permiten que las aplicaciones de Android reproduzcan video y audio mediante sesiones y controladores de medios. Las API de MediaPlayer pueden acceder y reproducir archivos multimedia desde los recursos de la aplicación (recursos sin procesar), desde archivos independientes en el sistema de archivos o desde un flujo de datos proveniente de una conexión de red. Las clases mencionadas a continuación se utilizan para reproducir sonido y video en el marco de Android:
- MediaPlayer: API principal responsable de reproducir audio y video
- AudioManager: Administre las fuentes de audio y la salida de audio (control de volumen) en el dispositivo.
El marco de Android proporciona una variedad de opciones a los desarrolladores sobre el uso del tipo de reproductores multimedia en una aplicación:
- Media Player: este es un reproductor limpio que tiene funcionalidades básicas y es compatible con los formatos de audio y video más utilizados, así como con las fuentes de datos. La interfaz simple y fácil de usar de este reproductor lo hace adecuado en muchos casos de uso; sin embargo, admite una personalización mínima.
- ExoPlayer: un software de código abierto que admite funciones de alto rendimiento y tecnología de transmisión adaptativa como DASH y HLS .
- YouTube: Para aquellos casos de uso en los que una app reproduzca videos precisamente desde la plataforma de YouTube, los desarrolladores se plantean integrar esta API.
- Reproductor de medios personalizado: para diseñar un reproductor de medios totalmente personalizado que satisfaga las necesidades exactas de una aplicación, se pueden usar API de medios de bajo nivel como MediaCodec, MediaDRM y AudioTrack.
Para diseñar una aplicación usando MediaPlayer, se debe hacer alguna declaración apropiada en el archivo de manifiesto para usar las características asociadas.
una. Para transmitir cualquier contenido basado en la red usando MediaPlayer, la aplicación debe solicitar acceso a la red
<usos-permiso android:name=”android.permission.INTERNET” />
b. Para evitar que la pantalla se atenúe o que el procesador entre en modo de suspensión mientras una aplicación ejecuta MediaPlayer, la aplicación debe solicitar el permiso Wake Lock
<usos-permiso android:name=”android.permission.WAKE_LOCK” />
3. Permisos
Esta área del componente Comportamiento alberga un sistema de permisos junto con un conjunto de permisos predefinidos para ciertas tareas en las aplicaciones de Android. Casi todas las aplicaciones solicitan algunos permisos del usuario. Por ejemplo, si una aplicación requiere acceso a la red para realizar una tarea, definirá el permiso para el usuario. Los desarrolladores declaran los permisos para una aplicación en su archivo de manifiesto y el código debe manejar ambas situaciones, es decir, la aceptación y la denegación del permiso solicitado por el usuario. Además, este archivo también puede definir permisos adicionales que se utilizarán para restringir el acceso a componentes particulares.
El concepto de pedir permiso en el sistema Android ha cambiado significativamente después de la API 23. Inicialmente, las aplicaciones piden todos los permisos al usuario en el momento de la instalación. Después del lanzamiento del nivel 23 de la API , las aplicaciones buscan permisos durante el tiempo de ejecución. Con este nuevo modelo de permiso en el sistema Android, los usuarios pueden otorgar un permiso único a una aplicación para una determinada tarea en lugar de seleccionar «permitir siempre» . Hay diferentes niveles presentes en los permisos del sistema, uno de ellos son los niveles de protección . Los siguientes son los dos niveles de protección importantes para cualquier permiso:
- Normal: El conjunto de permisos que entran en esta categoría son seguros en términos de privacidad de los usuarios, así como para realizar tareas que requieren la participación de otras aplicaciones. Este tipo de permiso se concede a la aplicación de forma predeterminada. Establecer una zona horaria para un dispositivo/aplicación es un ejemplo de permisos normales.
- Peligroso: esta clase de permisos tiene como objetivo la información privada del usuario, por ejemplo, el permiso para leer los datos de contacto del usuario. Estos permisos también tienen el potencial de afectar las operaciones de otras aplicaciones. Generalmente, la aplicación solicita permisos peligrosos durante el tiempo de ejecución.
Grupos de permisos: Los permisos peligrosos que buscan la elección del usuario para otorgarlos o denegarlos se clasifican en 9 grupos. El propósito de hacer este tipo de agrupación es facilitar a los usuarios otorgar todos los permisos requeridos por un componente con una sola acción en lugar de seleccionar uno por uno. Por ejemplo, es conveniente que los usuarios otorguen todos los permisos relacionados con la edición de contactos a la vez en lugar de otorgar acceso por separado para ver, editar y agregar contactos. A continuación se muestra la tabla de grupos de permisos:
Permiso |
Descripción del Grupo |
---|---|
Calendario | Administrar calendarios |
Contactos | Administrar contactos |
Ubicación | Ubicación actual del dispositivo |
Cámara | Tomar fotos y grabar videos |
Teléfono | Marcación y gestión de llamadas telefónicas |
SMS | Enviar y ver mensajes |
Micrófono | Grabación de audio |
Almacenamiento | Acceder a fotos, medios y archivos |
Sensores corporales | Pulso, frecuencia cardíaca y datos similares |
4. Notificaciones
Generar una notificación es una de las funciones más beneficiosas de las aplicaciones móviles actuales. Su propósito principal es informar a los usuarios sobre los eventos que ocurren dentro de una aplicación. Al usarlo de la manera correcta, esta utilidad tiene la capacidad de elevar la motivación del usuario en el uso de la aplicación. Android proporcionó el servicio de Notificación desde el principio y ha evolucionado continuamente a lo largo del tiempo. Los desarrolladores pueden acomodar varios tipos de imágenes y botones en el área de notificación, lo que los hace más expresivos. No solo los teléfonos móviles, sino también Android TV y dispositivos portátiles también utilizan la función de notificación para controlar sus operaciones de medios. Los siguientes son los tipos de notificaciones que se utilizan generalmente:
- Comunicación de otros usuarios
- Recordatorios de tareas oportunos e informativos
Formas de informar a los usuarios: el dispositivo puede atraer la atención del usuario y puede informarle sobre las notificaciones recibidas. Las siguientes son las formas de hacer lo mismo:
- Reproducir un sonido o vibrar
- Mostrar un icono de la barra de estado
- Mostrar notificación en la pantalla de bloqueo
- Parpadea el LED del dispositivo
- La notificación puede mirar a la pantalla actual
5. Compartir
En el mundo actual, los humanos dependen en gran medida de las aplicaciones móviles. Los usuarios necesitan compartir la información importante del día a día con sus colegas, familiares o amigos. Esta información puede estar en forma de texto, imágenes u otros archivos de documentos. Por lo tanto, es extremadamente importante que las aplicaciones de Android tengan la capacidad de comunicarse e integrarse entre sí. La división Sharing del componente Behavior se encarga de compartir y recibir contenidos con diferentes aplicaciones. La clase ShareActionProvider se utiliza para realizar la tarea de compartir contenidos e información.
Para facilitar el procedimiento de compartir información entre varias aplicaciones, Android usa Intents y sus extras asociados. En Android, hay dos formas para que los usuarios puedan compartir datos entre aplicaciones:
una. Uso de la hoja Compartir de Android: es un cuadro de diálogo que aparece en la pantalla cuando un usuario realiza una solicitud de acción para compartir. Todas las aplicaciones disponibles en el dispositivo y compatibles con la función de compartir aparecen en la pantalla en una estructura similar a una hoja. El objetivo principal de esta hoja para compartir es enviar información/contenido fuera de una aplicación y/o directamente a otro usuario.
b. Uso de Android Intent Resolver: se usa principalmente para compartir un archivo dentro de diferentes aplicaciones disponibles en el dispositivo. Por ejemplo, abrir un archivo de correo electrónico en el dispositivo y pedirle al usuario que elija su aplicación de correo preferida.
6. Rebanadas
Android proporciona una nueva técnica para mostrar los contenidos remotos en forma de Slices . Es el componente de la interfaz de usuario que muestra el contenido de una aplicación en la aplicación de Búsqueda de Google o en diferentes plataformas como el Asistente de Google o los dispositivos del Asistente de Google . Al ser parte de Jetpack, tiene compatibilidad con versiones anteriores hasta Android 4.4 (API 19) . Los desarrolladores encuentran este módulo muy beneficioso porque al hacer que los datos de la aplicación estén disponibles usando Slices, un usuario puede encontrar información sobre esa aplicación usando la Búsqueda de Google o el Asistente. Además, Android Jetpack facilita la creación de plantillas de interfaz de usuario flexibles mediante Slices que pueden mostrar datos de la aplicación fuera de la aplicación.
En el proyecto de Android, la clase SliceProvider permite que una aplicación produzca contenido que se mostrará en los espacios del sistema. SliceProvider es la extensión de Content Provider y los Slices se construyen sobre los proveedores de contenido. Los desarrolladores pueden alojar una variedad de segmentos de una aplicación, ya que se basa en los URI de contenido . La aplicación recibirá un URI de contenido y luego seleccionará el tipo de segmento necesario para construir y presentar frente a un usuario. Se llama al método onBindSlice() cuando una aplicación necesita mostrar el segmento. Este método devuelve el segmento basado en el URI de contenido recibido como entrada. Para actualizar el sector, notificar a Change()se llama el método. Las aplicaciones de búsqueda de Android como Google Assistant o Google Search se denominan SlicePresenter. SlicePresenter recupera los segmentos llamando a la API del sistema junto con el URI del segmento.
Publicación traducida automáticamente
Artículo escrito por RISHU_MISHRA y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA