可以使用导出的jar / apk中的智能jar排除?

时间:2013-11-19 10:18:38

标签: java android compilation

关于android的快速问题,但可能一般涉及java编程(如果可以使用eclipse / java平台那么会很棒)。

假设我有一个外部库,我将其添加到我的应用程序中。 (从Android角度来看,Android库添加到Android应用程序项目中)。现在,如果我从主应用程序项目中的库项目中提交使用任何类或其他任何类,那么输出jar / apk文件是否会包含库jar文件,或者赢得了<?p?

跟进上述问题(更简单的情况)。假设我有上面的库项目(我们称之为MainLibrary),我在主项目中使用了一些。现在这个库,有其他库项目/ jar引用(比如说LinkedinLibrary)它使用的内部。因此,MainLibrary中的调用在某种程度上使用了LinkedinLibrary。

现在,正如我指出我的主要应用程序确实使用了MainLibrary,但是并没有使用MainLibrary中的任何东西,MainLibrary使用了LinkedinLibrary。

使用我的应用程序,MainLibrary jar显然在输出中。那么LinkedinLibrary jar呢?

1 个答案:

答案 0 :(得分:1)

  

现在,如果我从主应用程序项目中的那个库项目中完全省略使用任何类或其他任何类,那么输出jar / apk文件是否会包含库jar文件,或者不会?

如果将JAR放在libs文件夹中,它将会。

  

跟进上述问题(更简单的情况)。假设我有上面的库项目(我们称之为MainLibrary),我在主项目中使用了一些。现在这个库,有其他库项目/ jar引用(比如说LinkedinLibrary)它使用的内部。

这取决于您的项目结构。例如:如果只是将MainLibrary的JAR放在libs文件夹中,则链接的项目将丢失。但是如果您在Eclipse工作区中拥有所有项目并通过属性对话框添加项目并将其配置为导出链接库,那么它将起作用。

这就是基本的Eclipse构建系统所提供的一切。如果您正在摆弄Gradle依赖项,它可以开箱即用 - 如果你让这个有问题的Android Studio工作。如果您使用Maven,它也可以开箱即用,Maven目前在Android Studio中似乎比Gradle更稳定。

一般来说,这取决于您的构建系统。

  • Maven开箱即用。
  • Gradle。
  • 如果你正在使用ant,你需要自己编写或使用一些自定义任务,如Ivy或Maven依赖插件。

编辑:/ 你还问过是否有可能。我知道没有依赖管理系统,它通过源代码检查工作。因此,如果您不需要现有依赖项,则必须自行删除它。