检查“是图书馆”复选框对“隐藏”有啥作用?
Posted
技术标签:
【中文标题】检查“是图书馆”复选框对“隐藏”有啥作用?【英文标题】: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 文件没有任何变化。
那么,当“是库”复选框被选中时,究竟会发生什么? 在包和/或项目文件中有哪些内部变化?我在哪里可以了解更多信息?
为了更好地解释我的问题:
-
我有兴趣知道的(主要是
用于故障排除)是
应用程序包与库的区别
包裹“隐藏”?
是一个项目是事实
“图书馆项目”标记
某处?如果是这样,它在哪里
标记它(显然不在源中
文件,甚至不在 res XML 中
文件)
【问题讨论】:
【参考方案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 文件中)?以上是关于检查“是图书馆”复选框对“隐藏”有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章