Cómo eliminar iconos no utilizados de Google+ importados de la biblioteca de Google Play Services

He migrado los anuncios de banner de AdMobs a Google Play Services en mi proyecto de Android Studio. El APK resultante se multiplicó de 0,7 MB a más de 1,6 MB. Afortunadamente ProGuard lo derribó a poco más de 1 MB. Me poked alrededor de la APK y noté que 280 kB de "g +" imágenes se han añadido a

res/ drawable-hdpi drawable-mdpi drawable-xhdpi drawable-xxhdpi 

introduzca la descripción de la imagen aquí

No tengo planes de usar Google+ en esta aplicación. Es una aplicación de utilidad y no hay necesidad de lidiar con las redes sociales. 280kB puede sonar como cacahuetes en comparación con las aplicaciones de varios megabytes, pero al ser una utilidad relativamente simple, los usuarios quieren que sea lo más pequeño posible. Simplemente se siente sucio liberando una nueva versión que sopla de ~ 700 kB a más de 1000 kB sin mejoras de características tangibles para el usuario.

Idealmente, quisiera excluir esos iconos para un solo proyecto, pero podría vivir con una solución global por el momento.

Si utiliza Gradle, puede utilizar la opción shrinkResources en combinación con ProGuard para excluir recursos. Esto elimina tanto sus recursos como los recursos que están utilizando sus depndencies.

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

A partir de abril de 2015 todavía parece haber un error debido a que algunos recursos (incluidos los iconos de Google Play) no se eliminan. Puede evitar esto creando un archivo keep.xml y especificando qué recursos deben eliminarse. Recuerde probar su APK después de eso porque eliminar los recursos que son realmente necesarios podría bloquear su aplicación.

 <?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools" tools:discard="@drawable/common_signin_*,@drawable/ic_plusone_*,@drawable/powered_by_google_*"/> 

La eliminación de estas imágenes reduce el tamaño del APK en unos 300 KB.

Tuve este error:

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ' archivo "

Android studio no pudo abrir el archivo common_signin_btn_icon_disabled_focus_light.9.png.

Para solucionar esto moví el directorio de carpetas del proyecto hasta un nivel o dos para reducir la longitud de la ruta. Todo funcionó perfectamente después de eso.

Utilicé "D: \ the_project_folder". Trabajó para mí. No más errores de compilación.

gracias a este enlace:

https://github.com/googlesamples/android-XYZTouristAttractions/issues/2

¡Aclamaciones!

Hasta ahora, las dos mejores opciones son añadir pequeños mapas de bits o alias al proyecto con el mismo nombre que los iconos de g +. Estos sustituyen a los iconos de la biblioteca GPS. Los iconos están en cada uno de los directorios drawable- * con los siguientes nombres de archivo:

 res/ drawable-hdpi/ drawable-mdpi/ drawable-xhdpi/ drawable-xxhdpi/ common_signin_btn_icon_disabled_dark.9.png common_signin_btn_icon_disabled_focus_dark.9.png common_signin_btn_icon_disabled_focus_light.9.png common_signin_btn_icon_disabled_light.9.png common_signin_btn_icon_focus_dark.9.png common_signin_btn_icon_focus_light.9.png common_signin_btn_icon_normal_dark.9.png common_signin_btn_icon_normal_light.9.png common_signin_btn_icon_pressed_dark.9.png common_signin_btn_icon_pressed_light.9.png common_signin_btn_text_disabled_dark.9.png common_signin_btn_text_disabled_focus_dark.9.png common_signin_btn_text_disabled_focus_light.9.png common_signin_btn_text_disabled_light.9.png common_signin_btn_text_focus_dark.9.png common_signin_btn_text_focus_light.9.png common_signin_btn_text_normal_dark.9.png common_signin_btn_text_normal_light.9.png common_signin_btn_text_pressed_dark.9.png common_signin_btn_text_pressed_light.9.png ic_plusone_medium_off_client.png ic_plusone_small_off_client.png ic_plusone_standard_off_client.png ic_plusone_tall_off_client.png 

He creado un pequeño mapa de bits de 9 parches copiado y nombrado como cada uno de esos archivos en los dirs dibujables. Apenas se puede ver aquí —> muy pequeño

La alternativa es crear alias. Un alias de mapa de bits por archivo para terminar con el mismo número de archivos. Por ejemplo:

 res/ drawable/ blank.png drawable-xxhdpi/ common_signin_btn_icon_disabled_dark.9.xml ... 

Cada uno de los alias XMLs hace referencia a la minúscula:

 <?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/blank" /> 

La diferencia de tamaño es insignificante entre el pequeño mapa de bits y el alias. Sí, es un hack, pero hasta que Google / ProGuard elimine automáticamente los mapas de bits no utilizados, esta puede ser la única manera de recuperar el espacio perdido. Gracias a CommonsWare por la ayuda.

Como una alternativa más simple, basta con borrar los archivos .png en drawable-xxhdpi, drawable-xhdpi y drawable-hdpi, dejando los en drawable-mdpi. Por supuesto, compruebe que el nombre de archivo también existe en drawable-mdpi, en primer lugar.

Dejar una resolución válida es IMHO más seguro y los archivos drawable-mdpi ocupan menos de 30KB que pueden ser aceptables para muchas personas.

  • Servicio de juegos de Google Play: Desbloqueado Despliegue emergente no mostrado
  • Android near.MESSAGES_API para detectar sólo beacons
  • "Service MeasurementBrokerService está en uso" está mostrando en mi proceso de solicitud
  • No se pudo iniciar sesión. Compruebe la conexión de red e inténtelo de nuevo.
  • Mi botón de Google + 1 está atenuado y no funciona?
  • <Your App> tiene problemas con los servicios de Google Play. Cuando usa GoogleApiClient, siempre activa onConnectionFailed
  • App Invites for Android: Error al enviar el mensaje con el ID de cliente del contenedor que falta
  • PRIORITY_LOW_POWER vs PRIORITY_BALANCED_POWER_ACCURACY para el servicio de Google Play v2
  • Consumir compras canceladas en la facturación en aplicaciones de Google Play
  • Ejecución de Google Maps v2 en el emulador de Android
  • Google Play Store está dando créditos adicionales al usuario?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.