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
- No se puede obtener un cumpleaños privado de la cuenta de Google Plus aunque se solicita explícitamente
- Servicios de Google Play: Terminado con valor de salida no cero 2
- No puedo añadir anuncios a mi aplicación.
- Programaticamente abierto a la página de servicios de Google Play para mi aplicación
- No recibo la actualización de 'com.google.android.gms: play-services-wallet: 8.4.0' para los servicios de reproducción de Google en sdk
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.
- Código fuente de Google Play Services
- Cómo utilizar BaseGameActivity.getApiClient () en varias actividades?
- Android Google PlacePicker mostrando texto superpuesto
- Error intermitente del punto final de la nube autenticada en el cliente de Android
- No se han encontrado los recursos de los servicios de Google Play. Compruebe la configuración del proyecto para asegurarse de que se incluyen los recursos
- Servicios de reproducción de Google que devuelven un token firmado con una clave distinta de Google
- No se puede crear con gradle cuando Google Play Services se agrega como dependencia
- Clase de actividad principal no encontrada si implementa GooglePlayServicesClient.ConnectionCallbacks / OnConnectionFailedListener
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í —>
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.
- Seguimiento personalizado de eventos de Google Analytics en aplicaciones Android
- Qt: Cómo configurar el icono de la aplicación en Android e iOS