【问题标题】:What does checking the "is Library" checkbox do "Under the Cover"?检查“是图书馆”复选框对“隐藏”有什么作用?
【发布时间】:2011-09-14 01:19:42
【问题描述】:

我注意到,当我将现有的 Android 应用程序项目转换为 Android 库项目 by checking the "is Library" checkbox 时,项目的源代码或 XML 文件没有任何变化。

那么,当“是库”复选框被选中时,究竟会发生什么? 在包和/或项目文件中有哪些内部变化?我在哪里可以了解更多信息?

为了更好地解释我的问题:

  1. 我有兴趣知道的(主要是 用于故障排除)是 应用程序包与库的区别 包裹“隐藏”?
  2. 是一个项目是事实 “图书馆项目”标记 某处?如果是这样,它在哪里 标记它(显然不在源中 文件,甚至不在 res XML 中 文件)

【问题讨论】:

    标签: android android-library library-project


    【解决方案1】:

    来自Managing Projects from the Command Line page

    create lib-project 命令创建 一个标准的项目结构, 包括预设属性 向构建系统表明 项目是一个图书馆。它通过 将此行添加到项目的 default.properties 文件:

    android.library=true

    换句话说,它是由构建系统而非操作系统使用的属性。

    更新:我在我的 iPhone 上,所以我不会输入完整的释义,但这里有一篇很好的博客文章,讨论了 Java JAR 和 Android 库项目之间的差异,包括 dex 工具如何添加资源和 .apk 的 dex 代码:

    http://devmaze.wordpress.com/2011/05/22/android-application-android-libraries-and-jar-libraries/

    【讨论】:

    • @Doug Stephen +1 已经回答了问题 #2。您是否也碰巧知道“在幕后”应用程序包与库包的区别?
    • @Doug Stephen +50。 :) 谢谢!
    • @an00b 没问题。不过不要忘记奖励赏金......我想要一些代表:)
    • @Doug Stephen 我认为赏金会自动授予接受的答案。显然情况并非如此。我刚刚尝试单击 +50 图标来奖励赏金,但 SO 说我只能在 20 小时内完成。
    • 呵呵,不用担心。我第一次获得赏金时就遇到了理智的事情。我还以为是自动的。
    【解决方案2】:

    来自开发网站:http://developer.android.com/guide/developing/projects/projects-eclipse.html

    您还可以指定一个 Android 项目作为图书馆项目,其中 允许它与其他人共享 依赖它的项目。一旦一个 Android项目被指定为 图书馆项目,它不能 安装到设备上。

    【讨论】:

    • 这来自我在我的问题中发布的链接,但它没有解释内部会发生什么。很抱歉没有很好地解释我的问题。我有兴趣知道(主要是for troubleshooting purposes)是什么区分了应用程序包和库包“幕后”。
    【解决方案3】:

    库项目不像您习惯使用 jar 包那样打包为单独的可再发行文件。它已与您的应用程序的 apk 文件合并。

    您链接到的页面在Referencing a library project 部分中提到了它。

    属性对话框一关闭,Eclipse 就会重新构建项目,包括库项目的内容。

    【讨论】:

    • 感谢和 +1 强调这一点。我想了解的是,项目是“图书馆项目”这一事实是否在某处标记?如果是这样,它在哪里标记它(显然不在源文件中,甚至不在 res XML 文件中)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多