Dependencias de IBM MobileFirst 7

Estoy utilizando la biblioteca de MobileFirst 7 para una aplicación nativa de Android, pero he encontrado que aumenta gravemente el recuento de métodos dex de mi aplicación de Android (empujándola por encima del límite de 65.536 ).

Al agregar el SDK de IBM MobileFirst Platform Foundation a una aplicación nueva o existente con el artículo de Android Studio , agregué lo siguiente a mi build.gradle :

 compile group: 'com.ibm.mobile.foundation', name: 'ibmmobilefirstplatformfoundation', version: '7.1.0.0', ext: 'aar', transitive: true 

De acuerdo con methodscount.com , la biblioteca MobileFirst (y sus dependencias) obtiene 39.364 métodos (60% de la cantidad de métodos disponibles).

Pensé que Proguard podría ayudar a reducir el impacto de usar MobileFirst, pero encontró que el ejemplo proguard-project.txt tiene la siguiente directiva:

 -keep class com.google.** { *;} 

Según lo entiendo, esto efectivamente le dice a Proguard que no quite ninguno de los métodos de Google Guava . Hay otras bibliotecas que MobileFirst tira, pero empecé con la guayaba porque era la más grande.

Entonces decidí mirar en cuánto MobileFirst utilizó la biblioteca de Guava:

 $ unzip ibmmobilefirstplatformfoundation-7.1.0.aar $ jadx --output-dir temp/ classes.jar $ grep -roh . -e 'com.google.common.*' | sort | uniq 

¿Qué encontró cero referencias a cualquiera de la biblioteca de Guava (concedió el descompilador puede faltar algunas de las referencias), pero parece que la dependencia de la guayaba puede ser excluido?

 compile(group: 'com.ibm.mobile.foundation', name: 'ibmmobilefirstplatformfoundation', version: '7.1.0.0', ext: 'aar', transitive: true) { exclude group: 'com.google.guava', module: 'guava' } 

Si ese no es el caso (y excluyendo la guayaba sería un problema) entonces:

  • ¿Hay mejores reglas Proguard que se pueden usar para mantener sólo los métodos que son necesarios en las dependencias de MobileFirst?
  • ¿Pueden también excluirse otras grandes bibliotecas de las que depende MobileFirst?

One Solution collect form web for “Dependencias de IBM MobileFirst 7”

Si no está utilizando la función JSONStore, puede excluir de forma segura lo siguiente:

  • Guayaba
  • Commons-codec.jar
  • Jackson
  • ¿Cómo usar proguard.jar personalizado en la compilación de Gradle?
  • Android Proguard SqlCipher NoClassDefFoundError
  • Archivo proguard obsoleto; Usar -contienen a los miembros en vez de -contemplarlosconmiembros
  • Eliminación de cadenas no utilizadas durante la optimización de ProGuard
  • Falta el archivo proguard.cfg
  • Android: configurar Proguard
  • Eliminar los activos no utilizados de la biblioteca de terceros
  • Android ProGuard No se puede acceder a jarfile .. \ lib \ proguard.jar en IntelliJ 11.1
  • Android - Maven Build - Proguard - no puede encontrar la clase referenciada
  • Proyecto Android: Problema de exportación Lanzamiento cancelado! Proguard devuelto con el código de error 1. Consulte consola
  • ProGuard falla después de actualizar Google Play Services a la versión 5.0 (revisión 18)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.