gpt4 book ai didi

android - 如何将 Guava 库的**某些**部分导入Android应用程序(gradle)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:20 28 4
gpt4 key购买 nike

任何 Android 开发人员都应该知道,您的 apk 有 65k 的方法限制(因为 VM 只有 16 位用于方法处理)。自己应该很难达到,但是一旦开始添加一些库就很容易了。

从去年开始,您可以通过在 Android 5.0 及更高版本上启用 MultiDex(并为以前的 Android 版本添加支持库)来摆脱这种情况。即使这是可能的,减少方法数量并获得更小的 API 总是更好(并且性能应该更好,不是吗?)。

在某些时候,Android 人员意识到他们的 Google Play 服务库的大小无法承受(20k 方法),他们做出了一个伟大的决定:将其拆分为不同的模块,因此您可以简单地添加您需要的部分(带等级):

compile ('com.google.android.gms:play-services-analytics:8.1.0')
compile('com.google.android.gms:play-services-appindexing:8.1.0')

您知道是否可以使用 Guava 库做类似的事情吗?它大约有 15K 种方法,因此非常有用。我只想使用 Guava 的一小部分,所以我不需要/不想包括其他部分。我一直在查看文档和谷歌搜索,但没有找到任何东西。

compile group: 'com.google.guava', name: 'guava', version: '18.0'

两年前有人问过类似的问题,可能是针对 Java 项目,但当时还没有较小的 Guava 部分。 Downloading part of guava-libraries

我唯一想到的是只复制所需的 Guava 类而不是加载库,但我认为这是一个糟糕的解决方案。

你不认为任何大型图书馆都应该像他们使用 Play 服务那样使用模块拆分系统吗?

编辑:此外,multidex 任务耗时太长(一分半钟之前不到 15 秒),所以每次我想启动应用程序时都必须等待。因此,即使使用 Proguard 是生产发布的一个很好的解决方案,它也不适合开发,因为它比 multidexing 需要更长的时间。

最佳答案

正在进行 improve Guava on Android 的工作, 但有 no plans to split it into smaller modules .如前所述,ProGuard允许您从最终构建中排除不使用的 Guava 部分。

关于android - 如何将 Guava 库的**某些**部分导入Android应用程序(gradle),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33690146/

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