gpt4 book ai didi

android - IBM MobileFirst 7 依赖项

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:00 24 4
gpt4 key购买 nike

我正在为原生 Android 应用程序使用 MobileFirst 7 库,但发现它严重增加了我的 Android 应用程序的 dex 方法计数(将其推过 65,536 limit )。

根据 Adding the IBM MobileFirst Platform Foundation SDK to a new or existing application with 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 个方法(可用 dex 方法计数的 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 将是一个问题)那么:

  • 是否有更好的 Proguard 规则可用于仅保留 MobileFirst 依赖项中必需的方法?
  • 是否也可以排除 MobileFirst 依赖的其他大型库?

最佳答案

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

  • Guava .jar
  • commons-codec.jar
  • jackson -*

关于android - IBM MobileFirst 7 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39755170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com