Configurar Android-Studio para quitar código que no se usa en Android

publicado por: Anonymous

He leído que una solución para evitar llegar al problema del limite de 64k de referencias en código.

Es decir a veces se utiliza una librería pero que solo se usa dos métodos de los cientos que incorpora.

¿Cómo se configura android-studio para reducir y optimizar el apk resultante?

Edit

Me encontrado con ese código pero no ser si es para eso, quitar las referencias dentro las dependencias que no se usan.

android {
    ...

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

solución

Buen día,

un proyecto en producción puede llegar a ser muy complejo y no necesariamente puedes tener esas referencias por métodos que no son utilizados en tu aplicación, te lo comento porque aún usando Sonar (Ahora SonarQube) para revisar la calidad del código, en varios de nuestros proyectos es necesario activar el soporte multidex.

Quitar código que no se usa en Android Studio.

Recomendaría el uso de SonarQube en un proyecto Android ya que su objetivo es que tengas un código con buena calidad, puedes obtener un análisis de tu código y varias métricas que te ayudarían a optimizarlo en todos los aspectos. Puede ayudarte a detectar:

  • Bugs potenciales tu código.
  • Complejidad innecesaria.
  • Comentarios.
  • Sugiere estándares apropiados.
  • detecta código duplicado, por ejemplo métodos que puedes reutilizar.
  • etc…

También puedes usar Proguard para eliminar clases no necesarias o código que no tiene uso.

Si no usaras SonarQube o Proguard, algo más sencillo que yo realizo es definir TODO en tu código que no estas completamente seguro si se usaría posteriormente o lo tienes comentado, de esta forma puedes ver todos los indicadores en la ventana TODO y rápidamente puedes identificarlos para eliminarlos.

introducir la descripción de la imagen aquí

A veces se utiliza una librería pero que solo se usa dos métodos de
los cientos que incorpora.

En cuanto el uso de librerías en un proyecto, supone tener como objetivo facilitar el trabajo, “no volver a inventar la rueda” como alguien me lo acentuó, sin embargo personalmente creo que hay que considerar 2 cosas importantes para decidir si se integra a un proyecto.

  • ¿La librería puede funcionar correctamente en todos los Sistemas Operativos? en ocasiones te encuentras sorpresas y te das cuenta que una librería que es amplia mente usada, en un sistema operativo no funciona adecuadamente.
  • Evaluar si en verdad esa librería es necesaria ya que como comentas agregas una librería y solo se usan 2 métodos de cientos, me ha tocado encontrar estos casos en los que por “facilidad” se integra todo un monstruo y en realidad es algo que se puede lograr con un solo método.

En este segundo punto viene a referencia un concepto llamado Code Bloat, que precisamente se refiere a esto. Es cierto lo de “no volver a reinventar la rueda” pero en ocasiones no es necesario agregar tanto si lo que requerimos puede ser algo muy sencillo y puede ser creado por nosotros mismos.

introducir la descripción de la imagen aquí

¿Cómo se configura android-studio para reducir y optimizar el apk
resultante?

En android principalmente se usa ProGuard que ademas de optimizar tu aplicación tal vez es más conocido por que también puedes ofuscar el código.

Aquí esta un tutorial en español:

ProGuard: Optimiza, reduce y ofusca el código de tus aplicaciones Android

y este interesante artículo:

Pon a dieta a tus APKs

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *