IBM MobileFirst 7 dependencies



我在原生Android应用程序中使用MobileFirst 7库,但发现它严重增加了我的Android应用程序的索引方法计数(将其推到65,536个限制)。

根据将IBM MobileFirst Platform Foundation SDK添加到新的或现有的Android Studio应用程序的文章,我在我的build.gradle中添加了以下内容:

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

根据methodscount.com, MobileFirst库(和它的依赖)拉入了惊人的39,364个方法(60%的可用索引方法计数)!

我认为Proguard可能有助于减少使用MobileFirst的影响,但发现Proguard -project.txt示例有以下指令:

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

据我所知,这有效地告诉Proguard不要删除任何Google Guava方法。 MobileFirst还引入了其他库,但我从Guava开始,因为它是最大的。

然后我决定调查MobileFirst使用了多少Guava库:

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

没有发现任何Guava库的引用(假定反编译器可能缺少一些引用),但似乎Guava依赖可能被排除在外?

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

如果不是这样(排除Guava将是一个问题),则:

  • 是否有更好的保护规则,可以用来只保留在MobileFirst依赖项中必要的方法?
  • MobileFirst所依赖的其他大型库也可以排除在外吗?

如果您不使用JSONStore功能,您可以安全地排除以下内容:

  • guava.jar
  • commons-codec.jar
  • 杰克逊- *

相关内容

  • 没有找到相关文章

最新更新