如何在 Android Studio 中仅实现依赖项中的单个组件?

How to implement only a single component from a dependency in Android Studio?

我有以下依赖:

implementation 'com.google.android.material:material:1.5.0-alpha02' 

来自 this repository。然而事实证明我只需要它的 CircularProgressIndicator ,现在我不希望我的应用程序附带整个依赖项(我只需要我需要的东西)。我怎样才能做到这一点?我的思路是:

implementation 'com.google.android.material:material:1.5.0-alpha02:AddOnlyCircularProgressIndicatorRelatedComponents'

How can I accomplish this?

您的选择是:

  • 分叉库,只复制构成 CircularProgressIndicator 的片段。请注意,可能有几十个或数百个这样的片段:Java 类、资源等

  • 包括库,并依靠 R8/ProGuard 从库中删除未使用的代码,就像它对应用程序中的其他所有内容所做的那样

如果您关心的是应用程序的大小,您不必担心,实施完整的依赖关系并允许 ProGuard 施展魔法。

在后台,Proguard 会从您编译的项目中删除所有未使用的代码,从而显着减小您的应用程序大小。要了解如何将 Proguard 集成到您的应用程序中,请查看 this

PS: 使用 Proguard 的其他好处包括:

  • 代码混淆:使您的应用极难进行逆向工程。
  • 减少方法数:Android 应用程序可以拥有的方法数有 64k 的限制,这个数字包括您的库和依赖项中的函数。使用 Proguard 会大大降低您达到这个数字的几率。