【问题标题】:What portion of 3rd party android library is included when generating apk?生成 apk 时包含第 3 方 android 库的哪一部分?
【发布时间】:2015-07-27 20:36:07
【问题描述】:

我在我的 Android 应用中使用了许多第三方库,例如 AndEngine、ButterKnife、Parse、Picasa 等。

这是否意味着我必须将它们全部包含到我的 APK 中? 例如,我只使用 Picasa 库中的一种静态方法来加载图片:

Picasa.load(image, this, null, null);

但我仍然需要将整个 jar 文件添加为我的 Eclipse IDE 中支持的库。

生成 APK 时,它是否以某种方式仅捕获/包含来自 3rd 方库的特定方法,还是包含整个库?

【问题讨论】:

    标签: android eclipse apk


    【解决方案1】:

    我认为 Proguard 是您正在寻找的:

    http://developer.android.com/tools/help/proguard.html

    ProGuard 工具通过以下方式缩小、优化和混淆您的代码 删除未使用的代码并重命名类、字段和方法 语义模糊的名称。结果是一个较小的 .apk 文件 这更难逆向工程。

    确保在开始使用后进行彻底测试,因为它有时会过于激进。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。我不知道这是不是一个好的选择。我从库源代码中获取了我需要的任何相关方法、类和侦听器的代码。然后我添加到我的项目中。这就对了。我没有添加整个罐子。但我不知道在你的情况下,是否有可能获得源代码。

      【讨论】:

      • 这通常不是一个很好的解决方案。这使得升级 3rd 方库非常困难,以及其他问题。
      • 我的意思是,如果您只需要特定的一项功能并且它不会改变未来。
      • 当然。我并不是说它永远不合适。只是这通常不是最好的方法。 “不会改变”通常是一个糟糕的假设。有时我只在使用一年后才在 3rd 方库中发现错误。另外,我不是律师,但我想在某些情况下,如果您复制或修改了代码而不是包含在库中,那么许可证可能会要求您做一些不同的事情,因此请务必先检查。跨度>
      猜你喜欢
      • 2015-08-05
      • 1970-01-01
      • 2015-12-02
      • 2011-12-05
      • 1970-01-01
      • 2020-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      相关资源
      最近更新 更多