En este tutorial aprenderás paso a paso cómo comprimir y descomprimir archivos ZIP en Android utilizando Java.
Este ejemplo es ideal para quienes están iniciando en la gestión de archivos en Android, y desean comprender cómo manipular carpetas, crear archivos y trabajar con compresión ZIP.
📘 Contenido del Tutorial
-
Crear un proyecto en Android Studio
-
Diseño de la aplicación
-
Clase
ArchivoHelperpara crear ZIP y extraer ZIP -
Código de
MainActivity -
Permisos necesarios
-
Probar la aplicación en un emulador AVD
-
Preguntas frecuentes (FAQ)
🛠️ Crear un nuevo proyecto en Android Studio
-
Abre Android Studio
-
Selecciona New Project → Empty Activity
-
Usa Java como lenguaje de programación
-
Asigna un nombre a tu proyecto, por ejemplo:
ZipUnzipAndroid
Con esto ya tendremos la base para trabajar.
🎨 Diseño de la aplicación (Layout XML)
Este diseño será sencillo: dos botones (Zip y Unzip) y un CheckBox para decidir si incluir la carpeta raíz dentro del ZIP.
Copia este código en res/layout/activity_main.xml:
📦 Código para crear y extraer ZIP en Android
Toda la lógica será manejada por una clase llamada ArchivoHelper, que se encargará de:
✔ Comprimir carpetas o archivos
✔ Extraer archivos ZIP
✔ Crear archivos de texto dummy
✔ Manejar rutas y excepciones
Crea un archivo llamado ArchivoHelper.java y pega lo siguiente:
🎛️ Clase MainActivity
Aquí conectamos los botones del layout con las funciones ZIP/UNZIP.
Copia este código en MainActivity.java:
🔐 Permisos necesarios
Agrega este permiso en tu archivo AndroidManifest.xml:
En Android 10+ deberás pedir el permiso en tiempo de ejecución (Runtime Permission).
📱 Probar la aplicación en un emulador AVD
-
Crea un emulador AVD desde Android Studio
-
Ejecuta tu proyecto
-
Prueba comprimir archivos y extraerlos dentro del emulador
🧪 Resultado Final
✔ Tendrás un ZIP creado desde tus propios archivos
✔ Podrás extraerlo en la ubicación que definas
✔ Aprenderás a manejar directorios, archivos y flujos de entrada/salida
✔ Ideal para aprender gestión de archivos avanzada en Android
❓ Preguntas frecuentes (FAQ)
1. ¿Necesito permisos especiales para crear ZIP o extraer ZIP?
Sí, necesitas el permiso WRITE_EXTERNAL_STORAGE para trabajar con almacenamiento externo.
2. ¿Puedo trabajar solo con almacenamiento interno?
Sí. Puedes usar getFilesDir() y no necesitarás permisos.
3. ¿Se puede modificar para comprimir solo archivos específicos?
Sí, solo debes procesar los archivos que desees antes de pasarlos al método zip().
4. ¿Android permite descomprimir ZIP con subcarpetas?
Sí, el código soporta subcarpetas sin problema.