Android networking library, poderosa biblioteca para hacer llamadas a servidores para bajar cualquier tipo de archivo , debido a la eliminación reciente de HttpClient en Android Marshmallow (Android M) hizo obsoleta a otra biblioteca de redes.
Ninguna otra biblioteca hace cada una de estas cosas, como : hacer solicitudes, descargar cualquier tipo de archivo, cargar archivos, cargar imágenes de la red en ImageView, etc. Hay bibliotecas pero están desactualizadas, establecer prioridades, el hecho de usar Okio, no sobrecarga de GC en la aplicación de Android. Okio está hecho para manejar la sobrecarga de GC al asignar memoria. Okio hace algunas cosas inteligentes para ahorrar CPU y memoria. Para ver más detalles técnicos de esta gran herramienta os dejo un enlace que contiene más información https://github.com/amitshekhariitbhu/Fast-Android-Networking
Vamos al lio!!
Bajar una imagen desde el storage de firebase utilizando
Android Networkin Library , lo guardaremos en un archivo fisico en el dispositivo , (
En mi caso lo utilizo para usar la imagen de profile en notificaciones push del App Android).
Debemos crear una variable tipo File , en el OnCreate de tu actividad principal. File localFile =null;
Creamos una variable tipo File , para guardar el archivo , dentro del direcorio . En el OnCreate de tu actividad principal. File archivolocal =null;
Creamos una función para crear el directorio local , con la función CrearDirectorio , doy por supuesto, que ya sabemos crear un proyecto en Android Studio, ya tenemos una actividad principal , Creamos una función para crear un directorio localmente, seria asi :

Función para crear directorio local en dispositivo
Llamamos la función desde MainActivity asi : localFile = CrearDirectorio(this, «imagenesFB»); Esta instrucción lo que hace es llamar la función CrearDirectorio , enviamos de parámetros el contexto de nuestra activity, «this«, de segundo parámetro enviamos el nombre de nuestro de albúm de imágenes «imagénes FB«, le asignamos el contenido a nuestra variable localFile tipo File .
Agregamos en el archivo build.gradle, la libreria Android Networking

Inicializamos en el OnCreate , con el contexto.
Para no ocupar el hilo principal , al momento de llamar el activity principal, he creado la función tipo AsyncTask, quedaría algo asi:

La función se llama BajarImagen1, le enviamos como parámetros, mSurlShPref esta variable es tipo String , tiene la dirección url donde se encuentra nuestra imagen , el cotenido de esta variable lo debes declarar asi :
String mSurlShPref = «https//ubicación donde esta tu imagen»
String dirPath = Esta variable debe contener la ruta de tu directorio que ya deb estar creado, seria algo asi : «/sd/0/emulated/android/midirectorio»
String fileName = Esta variable debe contener el nombre del archivo que ya debe estar creado, seria asi : «miarchivo»+».»+»jpg»
Ahora solo nos queda ejecutar en el MainActivity la función , y walla!! busca en tu dispositivo la imagen en la ruta guardada de tu directorio.
new BajarImagen1().execute();