【问题标题】:What is the difference between Android Private Libraries, Dependencies and the libs folder?Android Private Libraries、Dependencies 和 libs 文件夹有什么区别?
【发布时间】:2014-06-03 06:14:53
【问题描述】:

我是 Android 编程新手。我使用 Eclipse 作为开发的 IDE。我已经开始了一个新项目,并且一些 jar 文件被自动添加到项目中。你能解释一下每个 jar 文件的含义吗?

  • 安卓4.4.2
    • android.jar
  • Android 私有库
    • android-support-v7-appcompat.jar
    • android-support-v4.jar
  • Android 依赖项
    • appcompat_v7_2.jar
    • android-support-v4.jar

此外,除了这些之外,还生成了一个名为“appcompat_v7_2”的文件夹,可以在项目资源管理器中看到。它还包含 Android Private Libraries 和 libs 文件夹。

我觉得这里涉及到某种冗余。清除混乱。

【问题讨论】:

标签: java android eclipse


【解决方案1】:
  • 安卓4.4.2
    • android.jar

这是 Android 4.4 的原生 API 库(如果你进入 Android Package Manager,你可以看到许多文件,范围从 Android 2.* - Android 4.*)

因此,当您在 Eclipse 中创建新项目时,它将自动使用在 Android API 级别的属性中指定的库。

  • Android 私有库
    • android-support-v7-appcompat.jar
    • android_support-v4

这些是在较低 Android 版本上运行时用于您的应用程序的支持库。 例如,如果您使用 Android API 19 作为目标库进行编译,您将需要 android_support-v4 库来让应用程序在较低的 Android API 设备上运行。

v7和v4的区别在于v7支持Android v3.0及以上,v4支持Android v2.0及以上。

我觉得这里涉及到某种冗余。

Android Private Libraries 和 Android Dependencies 不是实际文件夹。它们是由 Eclipse 为方便用户而创建的。

创建项目时,会在 appcompat_v7_x/libs 文件夹中创建 v4 和 v7 的支持库。

Android Private Libraries 仅包含对支持库的引用。 Android Dependencies 告诉我们项目引用或使用了哪个 appcompat_v7_x。

如果您查看 Eclipse 中的图标,libs 图标和 Android Private Libraries 是不同的图标。这是因为 Android Private Libraries 不是一个实际的文件夹。您在磁盘上找不到它。

因此,没有任何冗余,即没有文件被复制或复制。

享受您的 Android 开发! :) 试试 Android Studio,比 Eclipse 好太多了!!

【讨论】:

  • 这是一个有用的答案。但是,它并没有消除我对生成这么多 jar 文件的困惑。三个jar文件不够吗?一个用于原生 Android API,两个用于支持库?
  • 我是这样理解的。创建每个项目后,会在 appcompat_v7_x/libs 文件夹中创建必要的支持库。该项目只是通过 Android Private Libraries 引用它们。也就是说,不会在项目文件夹中创建 jar 文件的副本。我们在 Android Private Libraries 文件夹中看到的文件只是对 appcompat_v7_x/libs 文件夹中的 Java ARchive 的引用。我说的对吗?
  • 是的!你说的对!你可以通过检查你的项目目录来证明你的答案!您将无法找到 Android 私有库,您只能看到 libs 文件夹!
  • @Tim,那么当我们手动右键单击 lib 文件夹中的 jar 并执行“构建路径:添加到构建路径”时会发生什么?既然现在它们被两次引用,难道没有冗余吗?
  • @Pacerier 是的!您可以自己尝试,然后“添加到构建路径”然后打开项目目录并转到构建路径,您可以看到新的额外库,但该库已经被引用!尝试迁移到 Android Studio,你会喜欢的,他们有 Gradle 构建系统,比 Eclipse 好得多,而且不那么混乱! :)
【解决方案2】:

这些只是包含应用程序内容的库。 当您执行“import android.blah.blah.blah”时,您会将该功能添加到您的代码中。并且列出所有库内容将是太多的工作。

【讨论】:

  • 这个答案没有尝试处理问题中提出的具体问题。这是一个琐碎而懒惰的帖子。
猜你喜欢
  • 2014-01-26
  • 1970-01-01
  • 2013-05-11
  • 1970-01-01
  • 2017-09-14
  • 2019-11-08
  • 2014-03-23
  • 1970-01-01
  • 2017-05-29
相关资源
最近更新 更多