Saltar al contenido

Reducir el tamaño de la aplicación de Android (apk)

Hola, encontramos la solución a tu interrogante, deslízate y la encontrarás un poco más abajo.

Solución:

Entonces, ¿por qué veo tanto aumento en el tamaño de mi aplicación? ¿Se puede minimizar?

¡Casi exclusivamente por las imágenes de su carpeta res! Debería tener alrededor de 4 copias de cada imagen en las carpetas drawable-mdpi, -hdpi, xhdpi. La única diferencia es que todos son de diferentes tamaños.

¿Es más seguro eliminarlos y eliminarlos puede ayudar a disminuir el tamaño de la apk?

¡Lo más probable es que no haya varias copias de esos archivos jar! ¡Solo una copia con enlaces a ella!

Proguard

Sí, lo que dijiste fue correcto sobre Proguard. Sin embargo, tenga en cuenta que aquí está hablando de archivos de texto. Son realmente pequeños. Me refiero a un tamaño realmente pequeño (en kilobytes). Su problema es algo del tamaño de megabytes (MB). Eso es imágenes !!!!

Repetir. Eso es imágenes !!!!

Habilitar proguard ahorrará un poco de tamaño.

También puede mencionar en su respuesta cualquier cosa que falte y que crea que debería compartirse.

Sí, todos estos son más importantes en su caso. Lea y aplique estos. ¡Buena suerte!

Si un usuario encuentra útil su aplicación, no la desinstalará; sin embargo, hay varias cosas que puedes hacer

  • Puedes mover imágenes a la web y async en tu aplicación?
  • Asegúrese de que sus archivos estén completamente comprimido cuanto más se pueda. Utilice pngquant o tinypng.
  • Compruebe si hay repetición en las imágenes. Es posible que pueda usar 9 parches para ello.
  • deberias ser capaz de haz tus propios dibujables para determinadas imágenes.
  • Permitir a los usuarios mover datos a una tarjeta SD.

  • [EDIT] Después de que la aplicación haya sido en Play Store por un tiempo, consulte la Consola del desarrollador y vea qué tamaño / densidad de pantalla se usa menos.¡Elimina esa carpeta dibujable de tu aplicación! ¡Esto podría reducir mucho el tamaño! Pero, ¡revisa mi edición a continuación para ver las desventajas de este enfoque!

  • [EDIT 2] En el Explorador de Windows, comprobar el tamaño de la carpeta por tu todo carpeta res, y todo carpeta java. Si el tamaño de su carpeta java es pequeño, entonces todo su esfuerzo para reducir el tamaño del APK debe ser lo que indico anteriormente.

Es posible que desee mostrar algunas de las imágenes, ya que eso nos permitiría ver con qué está lidiando.

EDITAR

@Ashwin N Bhanushali tiene una gran respuesta aquí para la parte de la pregunta que no respondí, pero básicamente te dijo que no había nada que realmente pudieras hacer excepto lo que dije, más una idea o 2 más.

Tuve otra idea que se basó en una de sus ideas que sería aún mejor, porque Android Studio ya no incluye la carpeta drawable-ldpi en el proyecto. Por lo tanto, solo sería útil si usa Eclipse, el mío se expande

  1. Suelta el APK en Google Play Store después de realizar las correcciones recomendadas
  2. Después de que haya pasado un tiempo – una semana, un mes, etc – puedes comprobar las estadísticas de su aplicación en la Consola para desarrolladores de Google Play.
  3. Busque los cubos de tamaño de pantalla(drawable-mdpi, -hdpi, -xhdpi, -xxhdpi) que son ¡Usó lo menos! Tú podrías quitar esos cubos desde su aplicación por completo!

Esto funciona porque las imágenes ocupan muchos más bytes que archivos de texto. Y todos esos dibujables tienen las mismas imágenes en ellos (solo diferentes tamaños). ¡Quitar las imágenes de los depósitos menos usados ​​puede ahorrar mucho espacio!

Tenga en cuenta que quitar esos cubos desde tu aplicación significará que su aplicación tendrá que trabajar más en los teléfonos que usan los depósitos eliminados. La aplicación puede ser más lenta para esos usuarios.; sin embargo, el tamaño de la aplicación se puede reducir más.

EDITAR 2

Los archivos de texto no ocupan casi nada. ¡Eche un vistazo al sistema de archivos de su proyecto!

En la imagen de abajo. Compruebe el tamaño de …

  • los Java carpeta
  • los res carpeta

ingrese la descripción de la imagen aquí

En su caso, verá que la carpeta java es probablemente de tamaño muy pequeño (10 a unos cientos de KB); sin embargo, verá que la carpeta res está realmente grande en tamaño (varios MB!).

Eso significa que cualquier compresión o reducción en su base de código estarán muy pequeño y no vale la pena !!

Por lo tanto, la mejor manera de reducir el tamaño de su APK es seguir mis instrucciones anteriores.

Editar 3

Aquí hay una prueba que puede hacer de inmediato y ver el máximo absoluto (y más) que herramientas como Proguard, y AndroidUnusedResources.jar reducirá el tamaño del archivo APK!

Lo que tienes que hacer es eliminar TODOS código de su proyecto a excepción de las declaraciones de clase. Haga lo mismo para las clases abstractas, interfaces, enumeraciones, etc. La estructura de su proyecto debe permanecer igual, y no debe utilizar ninguna biblioteca externa en absoluto.

  1. Entonces tendrás algo como esto para todas tus clases …

    public class CustomClass 
    
        private String variable; // List of variables
    
        public CustomClass()  ...  // List of constructors
    
        public getVariable()  ...  // List of Assessors
    
        public setVariable(String val)  ...  // List of Mutators
    
        private String helperMethods()  ...  // List of helper and other methods
    
    
    
  2. Debe eliminar todo el código dentro de las clases, interfaces, enumeraciones, etc. para que se parezca a lo siguiente; sin embargo, ¡deja todas tus imágenes en paz! …

    public CustomClass 
    
        // Everything is removed!! No libraries used, nothing. Unless certain classes 
        //     require some methods like Activity. Those methods should be empty though!
    
    
    
  3. Ahora compile y construya su proyecto.

  4. Verifique el nuevo tamaño de APK para su APK actual.

    • Este será el archivo de tamaño comprimido más pequeño posible que puede lograr con su código. Sí, su programa no hará nada, pero eso no viene al caso. Aquí te importa el tamaño, y esto es SÓLO una prueba.
  5. Instale la aplicación en su teléfono y verifique el tamaño de la nueva aplicación según el tamaño de su aplicación actual

    • Este será el archivo de tamaño sin comprimir más pequeño posible que puede lograr con su código. Sí, su programa no hará nada, esto es solo una prueba.

Si nota que las 2 aplicaciones todavía tienen aproximadamente el mismo tamaño, entonces pasar todo su tiempo con Proguard y AndroidUnusedResources.jar no tiene sentido en esta etapa. Esta es una prueba para ver dónde gastaría sus recursos personales en la reducción del tamaño de la aplicación.

Entonces, ¿por qué veo tanto aumento en el tamaño de mi aplicación? ¿Se puede minimizar?

El archivo .apk

Un archivo .apk no es mágico en absoluto. Es solo un paquete de archivos que representan el contenido de una aplicación de Android. Si lo abre en una herramienta de archivo (como 7Zip), puede navegar y extraer su contenido.

Ahora, este archivo apk se extrae durante la instalación, por lo que aumenta el tamaño de la aplicación.

Algunos detalles más sobre la compilación.

¿Qué sucede con los archivos .java?

Bueno, primero normalmente se compilan mediante una implementación de JDK instalada. Una vez compilados (en archivos .class), la herramienta dx del SDK de Android realiza una compilación cruzada de esas clases de Java “normales” en Dalvik-Bytecode.

Este código java “especial” es luego interpretado por DVM (Dalvik Virtual Machine), que se basa en la implementación de código abierto de JRE Apache Harmony.

¿Qué sucede con los recursos que coloco en el directorio / asset-directory?

Android ofrece el directorio / assets-directory para agregar algunos archivos crudos binarios (por ejemplo, una base de datos SQLite). Los archivos que se colocan en este directorio no se compilan ni optimizan.

Si coloca sus archivos en este directorio, este es el tipo de comportamiento que esperaría de Android.

¿Qué sucede con los recursos que coloco en el directorio / res / raw-directory?

Al igual que el directorio / assets, también puede colocar archivos binarios (u otros) sin formato aquí (por ejemplo, archivos HTML para la página de ayuda). Estos archivos se compilan / optimizan (si es posible).

¿Qué sucede con el manifiesto y los demás archivos XML?

El Android-Manifest y también los otros archivos XML (diseños, cadenas, etc.) se almacenan y “compilan” en un formato XML binario. Esta es una optimización de velocidad.

Entonces tiene la respuesta por qué el tamaño de la aplicación aumenta después de la instalación.

Ahora
¿Es más seguro eliminarlos (bibliotecas de Android) y eliminarlos puede ayudar a disminuir el tamaño de la apk?

Puedes eliminar google-play-services.jar ya que solo se requiere en entorno de desarrollo no es necesario en el entorno de ejecución. Pida al usuario que lo instale desde Play Store.

Llegando a Proguard :: Eliminará las clases de Java no utilizadas y hará la ofuscación del código. No eliminará los recursos no utilizados como xmls de diseño, elementos de diseño, etc. Así que mi opinión es ejecutar la herramienta para eliminar los recursos no utilizados.

A continuación se presentan algunos consejos para reducir el tamaño.

You can remove drawable-ldpi folder if you are using it.Since there are no more devices with ldpi screen resolution.

Reduce the use of image drawables(i.e .png or jpg files).Use xml drawables and 9-patch drawables.

Remove any debug info related code.

Avoid code duplication.Follow the principal of Don't Repeat yourself.

Creo que esto es suficiente para reducir el tamaño de la aplicación en su caso.

A continuación se muestran las formas de reducir el tamaño de la aplicación. En detalle se explica en el siguiente enlace.

https://medium.com/@fahimsakri/put-your-apks-on-diet-cc3f40843c84#.m860q8s1u

  • Proguard
  • vector dibujables
  • Divisiones de apk
  • Optimizar imágenes png
  • Eliminar recursos no utilizados
  • Imágenes de 9-patch
  • Comprimir imágenes Jpeg
  • Eliminar información de depuración
  • Evite las duplicaciones
  • Use pelusa extensamente
  • Reutilice los recursos siempre que sea posible
  • Formatos de medios recomendados

Nos puedes avalar nuestro análisis fijando un comentario o puntuándolo te estamos eternamente agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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