Cómo reducir el tamaño de la aplicación (.apk)

¡Ayuda!

Cuando instalo mi aplicación en el teléfono para probar, se muestra en un tamaño ENORME, 11.35 MB . Es una aplicación muy simple que permite al usuario navegar a través de hechos divertidos. La única razón por la que puedo pensar es que hay 14 archivos JPEG en los dibujos que sirven como imágenes de fondo de los hechos divertidos. El tamaño promedio de estos es de aproximadamente 500 KB.

Me gustaría recortar el tamaño de mi aplicación, para no utilizar los recursos preciosos en el dispositivo del usuario. Además de simplemente deshacerse de las imágenes, ¿hay formas de optimizar el tamaño del archivo apk?

EDITAR: Las fotos son fotos tomadas por mí usando el teléfono Android.

Otras respuestas mencionan imágenes que se encogen. También puede considerar probar ProGuard para reducir su bytecode. Aquí hay un artículo sobre cómo aplicar ProGuard a una aplicación de Android.

Asegúrate de que tus jpg no estén almacenados en una resolución superior a la necesaria. Un buen teléfono con Android tiene una resolución de pantalla de 1920×1200 o 2560×1440 (circa 2015) 800 x 480 , por lo que sus fondos no deberían contener más píxeles que ese (a menos que su aplicación admita algún tipo de zoom). Además, ¿son las fotografías de fondos? Si no, puede encontrar que usar un formato de imagen basado en vectores como svg, o uno con una paleta dinámica como gif, reducirá el tamaño del archivo aún más.

ACTUALIZAR

Con la introducción de Support Library 23.2, ahora puede reemplazar muchos de sus activos de imagen con SVG (sin / o sin animaciones) para reducir aún más el tamaño de la aplicación.

ORIGINAL

Esta podría ser una respuesta tardía, pero podría ser útil para futuros usuarios.

Consulte este enlace . Para resumir la página, menciona debajo de los puntos clave que ayudarán a reducir el tamaño de la aplicación en su totalidad:

  • Usa ProGaurd
  • Elimine cualquier información de depuración que tenga en la aplicación (declaraciones como Log.i ()). Se pueden envolver en una condición que solo se habilita mientras se prueba la aplicación.
  • Utilice los formatos de medios recomendados
    • Imagen: PNG orJPG
    • Audio: AAC
    • Video: H264 AVC
  • Comprima imágenes usando OptiPNG o PNGCrush
  • Use 9patch para escalar imágenes
  • Encuentre recursos no utilizados usando esta herramienta y elimínelos .
  • Evite usar múltiples recursos para lograr la misma funcionalidad. Los recursos no solo se limitan a las imágenes sino que se extienden a las API. A veces, una API singular puede proporcionar resultados múltiples en lugar de utilizar dos o tres API diferentes. Las cadenas duplicadas y los activos son también una pérdida de espacio.

Además de optimizar las imágenes, también me pareció útil verificar las bibliotecas de soporte que usa. Tengo una plataforma de orientación de aplicaciones relativamente simple con API> = 10, todavía mi APK terminó siendo 2.2M o después de usar ProGuard, 1.4M. Cuando miré en el APK, el código era 1.5M y había muchos recursos adicionales incluidos (abc_ *) No sabía nada al respecto.

Luego encontré esto: https://developer.android.com/tools/support-library/features.html

Resulta que no necesitaba appcompat-v7, solo support-v4, y al hacer este cambio en mis dependencias reduje el tamaño del APK a 1.7M (0.9M con ProGuard). Es comprensible que las Bibliotecas de soporte lleven mucho más (código y recurso), por lo que asegurarse de usar solo las que necesita podría ayudar.

(Aunque -0.5M no es significativo para una aplicación de 11M, estoy publicando esto aquí porque seguí llegando a esta página mientras buscaba una solución …)

  • Use tinypng para comprimir los archivos de imagen en formato png o jpg de su proyecto. Puede reducir en gran medida el tamaño de la imagen sin perder calidad de imagen;
  • Algunas imágenes usan tinypng compress puede distorsionar, puedes convertir
    estas imágenes al formato webP, use 智 图 o iSparta puede convertir otro formato a webP;
  • Utilice Lint check no use resources y elimínelo;

Una cosa más para agregar al tamaño del archivo de imagen: diferentes algoritmos pueden tener un efecto significativo en el tamaño final. Descubrí que Yahoo’s http://www.smushit.com es mucho más efectivo (al menos para .png) que los compresores y códecs que tengo en mi computadora en este momento.

Hay dos cosas que puedo señalar de la experiencia.

  1. Si usa eclipse para crear un archivo apk, entonces los recursos están duplicados (al menos sucedió en mi caso), puede probar usar ant y build.xml para crear el apk y comparar el tamaño.
  2. También busque en aliasing los recursos. El enlace para esto está aquí .

Sé que llegué tarde para responder a esta pregunta, pero reduzco el tamaño de mi aplicación utilizando las técnicas a continuación, así que quiero compartir estas cosas con todos.

1) – Use imágenes WebP en lugar de imágenes JPEG, y tendrá un gran impacto en el tamaño de la aplicación si está usando múltiples imágenes.

2) -Utilice VectorDrawables si usa icons pequeños y simples en su aplicación.

3) – Use la propiedad de tinte de View en xml para evitar múltiples icons iguales pero de diferente color.

búsqueda DrawableTint y TintableImageview

4) – Use imágenes de 9 parches y evite la duplicación de imágenes o cualquier cosa en el código de la aplicación.

Debajo están los enlaces para referirse a reducir el tamaño del APK.

https://developer.android.com/topic/performance/reduce-apk-size.html

https://developer.android.com/studio/build/configure-apk-splits.html#configure-split

https://developer.android.com/training/multiple-apks/index.html

Formato de imagen WebP: proporciona compresión con pérdida (como JPEG) y transparencia (como PNG) pero puede proporcionar una mejor compresión que JPEG o PNG

Convertir imágenes a WebP

Four Ways y el tamaño de tu aplicación pasarán de 11.35 MB a casi 5 MB. En primer lugar, compruebe los componentes de la aplicación a través de App Analyzer (una característica incorporada de Android studio), simplemente haga clic en Build en la parte superior y haga clic en Analizar APK. Le mostrará todo lo que los componentes apk está utilizando.

  1. Habilitar Proguard
  2. Habilitar ShrinkResource
  3. resConfigs (Nómbrelo, como si su aplicación está en un solo idioma, por ejemplo, inglés, simplemente especifique resConfigs “en”)
  4. Convierta todas las imágenes de .png o .jpg a webp (más importante).

Pasos para lograr estos pasos.

1 y 2. Para Proguard y ShrinkResource

En gradle, simplemente agrega

  release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' shrinkResources true } 
  1. Para resConfigs

      defaultConfig { applicationId "com.goparties.gpuser" minSdkVersion 19 targetSdkVersion 27 resConfigs "en" 

    }

  2. PARA convertir todas las imágenes de .png or.jpg a webp

Proceso muy sencillo: simplemente haga clic derecho en la carpeta dibujable (dibujable, drawable-hdpi, drawable-xhdpi, etc.) y haga clic en convertToWebP (última opción).

La versión mínima SDK debe ser 18.

Aquí vamos: ahora analiza el tamaño de tu aplicación.

Bingo !!!!!!

Creo que esta publicación te dará una mejor idea sobre todos los métodos posibles para reducir tu tamaño de aplicación por un gran margen.

Te daré un extracto de lo mismo.

  1. Use solo las bibliotecas requeridas de los Servicios de Google Play.
  2. Aplique ProGuard a su aplicación.
  3. Minificar y reducir.
  4. Adoptar vectores dibujables.
  5. Usa la pelusa de Android.
  6. Divida su apk en base a las architectures
  7. Agregar resConfigs en sus archivos gradle para especificar idiomas de localización.

    Esto elimina todos los demás archivos de cadenas que otras bibliotecas podrían haber agregado en idiomas que ni siquiera admite.

Junto con las respuestas más arriba expuestas, me gustaría responder con las últimas herramientas de Android Studio de Google.

Recientemente Google introdujo el paquete de aplicaciones de Android en el cual playstore entrega automáticamente una versión optimizada de apk para dispositivos finales. Ahora los desarrolladores solo tienen que generar Signed Bundle, y subirlo a play store, el trabajo de desarrollo está hecho. No olvide siempre usar imágenes SVG.

También, por favor, busque en Entregar funciones bajo demanda con características dinámicas

enter image description here

Convierta a WebP que reducirá significativamente el tamaño de la aplicación

Redujo el tamaño de la aplicación de mi aplicación, que era de 40 mb a 25 mb

Pasos:

  • Haga clic derecho en res
  • convertir a WebP

Qué hace : reduce el tamaño a png al formato WebP . La calidad tampoco se destruye


enter image description here

Esto es lo que puede hacer para reducir el tamaño de comstackción por Imágenes (También puede funcionar para iOS) Aquí estoy compartiendo la gran herramienta llamada “OPTIPNG” (puede descargar desde aquí ) que nos ayudará a reducir la comstackción especialmente mediante el uso de Imágenes, Reducirá el tamaño de la imagen para PNG que estamos utilizando sin degradar la calidad (resolución y color) de la imagen.

Ejemplo: si el tamaño de su imagen está desactivado 698 KB, reducirá el tamaño a 564 KB.

Aquí están los pasos de ejecución para OPTIPNG 0.7.5

1) Terminal -> CD / YourLocal path of OPTIPNG

2) escribe “./configure”

3) escribe “sudo make install”

Intallation debería hacerse ahora

4) escribe “optipng / tu ruta de imagen”

Obtendrá el resultado en byte y también puede verificar su tamaño

También puede probar http://www.webresizer.com/resizer/ Es una herramienta en línea, hizo un buen trabajo para mí.

Utilicé el compresor de imagen Trimage para comprimir imágenes y reducir el tamaño de apk. Tiene una buena tasa de compresión, es fácil de usar, conserva la calidad de imagen y también está disponible en Ubuntu. Además, habilité ProGuard y trabajé en problemas de Lint para reducir APK. tamaño.

Las siguientes son 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

dibujables vectoriales

Apk splits

Optimizar imágenes png

Eliminar los recursos no utilizados

Imágenes de 9 parches

Comprimir imágenes Jpeg

Eliminar información de depuración

Evitar duplicaciones

Use pelusa extensivamente

Reutilizar recurso siempre que sea posible

Formatos de medios recomendados

Puede reducir el tamaño de apk por del R.class y reemplaza la referencia a constante.

Mira esto: https://github.com/mogujie/ThinRPlugin

APK contiene un archivo zip de todas las cosas que tiene su aplicación móvil, incluidos los archivos de clase Java, los archivos de recursos, entre otros.

Una de las formas simples de reducir su APK es reducir el número y el tamaño de los recursos que contiene. En particular, puede eliminar los recursos que su aplicación ya no usa y puede usar objetos Drawable escalables en lugar de archivos de imagen.

Use MinifyEnable true y ShrinkResources true

MinifyEnabled reducirá su código a medida que lo comprime. Mientras que los recursos de encogimiento reducen los recursos.

Para usar ShrinkResources, debes establecer minifyEnbled true.

use imágenes SVG en lugar de jpg para reducir el tamaño de la aplicación. coloque sus archivos de imagen en la base de datos … para que los usuarios de su aplicación puedan descargarla de la base de datos y reduzca drásticamente el tamaño de la aplicación …