Ofrece espacio de almacenamiento moderno para los usuarios de Viber

Esta publicación de blog es una colaboración entre Google y Viber. Autor de Kseniia Shumelchyk de Google y Anton Novikov, Sergey Kozlov de Viber.

Como aplicación de mensajería, Viber necesita almacenar, procesar y compartir una cantidad significativa de datos. Viber tiene como objetivo proporcionar a sus usuarios una plataforma de comunicación fácil, rápida, confiable y segura al proporcionar una interfaz intuitiva y operar con archivos para preservar la privacidad. Creemos que el paradigma de almacenamiento de alcance moderno proporciona esta base para los desarrolladores y usuarios de aplicaciones.

El almacenamiento de alcance se introdujo en Android 10 con mejoras adicionales en Android 11 para proporcionar una mejor protección para la aplicación y los datos del usuario a nivel de plataforma. Debido a la complejidad de Viber, el equipo optó por implementar gradualmente los cambios necesarios para cumplir con el almacenamiento de alcance.

En este artículo, compartiremos cómo Viber manejó la migración al almacenamiento de alcance, centrándonos en lo que hicieron para optimizar su trabajo con archivos multimedia y otros datos en la aplicación.

Gestión de almacenamiento entre versiones de Android

El modelo de almacenamiento de Android ha evolucionado para adaptarse a las cambiantes consideraciones de privacidad, lo que lleva a cambios en la API del sistema de almacenamiento. Echemos un vistazo a los cambios clave en la plataforma que influyeron en la implementación del legado de Viber.

Directorios multimedia

El almacenamiento Scope cambia la forma en que las aplicaciones almacenan y acceden a los archivos en el almacenamiento externo de un dispositivo. Viber tuvo que evaluar las diferencias entre el modelo de almacenamiento de la aplicación existente y las pautas actualizadas de la plataforma, seguido de cambios graduales en la aplicación para trabajar con archivos en la memoria de alcance. Por lo tanto, Viber invocó el indicador requestLegacyExternalStorage para deshabilitar temporalmente el & # 39; alcance de almacenamiento en Android 10 hasta que la aplicación & # 39; no fuera totalmente compatible.

Para adaptar su experiencia de aplicación al almacenamiento con ámbito, Viber ahora proporciona archivos de medios públicos a colecciones de medios bien definidas utilizando la API MediaStore. De esta manera, se puede acceder a los archivos en una galería de dispositivos y otras aplicaciones pueden leerlos con autorización de archivo. Los archivos multimedia privados se almacenan en el directorio específico de la aplicación en el almacenamiento externo y son accesibles a través del ContentProvider interno.

Permisos de almacenamiento

La otra actualización importante está relacionada con cambios en el modelo de permisos de almacenamiento: las aplicaciones en la memoria de alcance tienen acceso ilimitado a sus directorios específicos de aplicaciones en almacenamiento externo y pueden contribuir a colecciones multimedia bien definidas sin requerir un permiso de tiempo de ejecución. Este cambio ayudará a Viber a proporcionar un control más granular a sus usuarios:

"Esta adición respalda nuestros esfuerzos para proporcionar a nuestros usuarios las mejores soluciones de seguridad y privacidad que podemos proporcionar con el soporte del sistema operativo Android, los usuarios se beneficiarán de esta seguridad adicional más adelante sin la necesidad de optar. en. También hemos agregado una nueva opción "Guardar en la galería" que permite a los usuarios elegir hacer que sus fotos sean legibles o no desde otras aplicaciones. Dado que los chats pueden contener imágenes o videos privados, es importante ofrecer a los usuarios la posibilidad de esconderse estos archivos de la galería. Este cambio proporciona a los usuarios un control adicional sobre el contenido incluido en sus mensajes de Viber ". dijeron Anton Novikov y Sergey Kozlov de Viber.

Acceso a archivos fuera del directorio específico de la aplicación

Anteriormente, Viber creaba y consumía archivos en un directorio personalizado de nivel superior y dependía del acceso a la ruta del archivo. Con el archivo de alcance, guardar archivos de aplicaciones en un directorio de nivel superior se convirtió en un antipatrón, por lo que Viber siguió las mejores prácticas para actualizar su implementación para archivar archivos multimedia de chats solo en ubicaciones accesible en almacenamiento con alcance.

Sin embargo, para reducir la complejidad de la migración, Viber decidió mantener su directorio de nivel superior para Android 10 y versiones anteriores, almacenando solo los archivos multimedia no expuestos a la aplicación Galería del dispositivo, mientras que para Android 11 y versiones posteriores, este directorio se utiliza en modo de solo lectura para proporcionar compatibilidad con versiones anteriores.

Otro caso de uso que Viber está perfeccionando es compartir archivos en chats. El permiso actualizado de tiempo de ejecución de almacenamiento permite el acceso de lectura solo a las imágenes, videos y archivos de audio disponibles a través de MediaProvider. Comenzando con Android 11, la única forma en que Viber puede acceder a archivos que no son de medios creados por otras aplicaciones es usar el selector de documentos de Storage Access Framework, que ya habían usado en una parte diferente de su aplicación.

Archivos específicos de la aplicación dentro del almacenamiento externo

En el entorno de almacenamiento con ámbito, los directorios específicos de la aplicación en el almacenamiento externo se están volviendo privados de otras aplicaciones. Este cambio ayudó a Viber a aprovechar su uso de memoria externa para almacenar archivos de usuarios privados:

"Creemos que los cambios en los directorios específicos de la aplicación son útiles, ya que esto ayudará a garantizar que los chats personales estén protegidos y admitidos con la seguridad de la plataforma". declaró a Anton Novikov de Viber. Obtenga más información sobre cómo acceder a archivos específicos de la aplicación.

Interfaz única para acceder al espacio de almacenamiento

Dado que Viber abastece a una gran audiencia en Android 4.2 y versiones posteriores, ha introducido un nivel de abstracción que les ayuda a administrar el acceso al espacio de manera eficiente almacenamiento en todas las versiones de Android compatibles y teniendo en cuenta sus casos de uso.

Anteriormente, Viber utilizaba mucho la API de archivos para acceder a los archivos, incluidos los archivos en ubicaciones de almacenamiento heredadas. Además, archivaron rutas de archivos absolutas para entradas en la base de datos local para mantener el historial de conversación del usuario.

Para estandarizar el acceso a este historial de conversación y así garantizar que los usuarios no pierdan el acceso a sus archivos, Viber reemplazó las rutas de archivos absolutas con URI de contenido. En la nueva implementación, la aplicación solo accede a los archivos a través de proveedores de contenido:

  • FileProvider interno para directorios específicos de la aplicación Viber.
  • Proveedores de archivos externos disponibles en el marco de Android, como MediaStore o Storage Access Framework, o que pertenecen a otra aplicación que comparte archivos con Viber a través de Intent.ACTION_SEND.

Utilizando una capa consistente de ContentProvider, ContentResolver proporciona a la aplicación una interfaz unificada para acceder al contenido del archivo.

Este enfoque también ha ayudado a Viber a optimizar la capa de red y definir una abstracción universal de Loader para cargar / recuperar y leer / archivar diferentes tipos de archivos multimedia, como mensajes de voz, imágenes de chat y calcomanías.

Resumen

Android 11 mejora aún más el almacenamiento de alcance, lo que proporciona una mejor protección para la aplicación y los datos del usuario y simplifica la transición para los desarrolladores. Es sorprendente ver que muchas aplicaciones como Viber migran para aprovechar el almacenamiento con alcance de Android 10.

Esperamos que la historia de Viber sea útil y te inspire a modernizar también tus aplicaciones de Android. Obtenga más información sobre los casos de uso de Android y las mejores prácticas de almacenamiento.

Compruebe también

El arsenal de Android: historias de usuarios

Puedes leerlo en portugués (https://github.com/welbert6/MaterialStoryView/edit/master/ReadmePT.md) Capturas de pantalla Introducción MaterialStoryView es una biblioteca de Android …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *