【问题标题】:Android libraries and Java classic libraries (.jar) on Android platformAndroid 平台上的 Android 库和 Java 经典库 (.jar)
【发布时间】:2011-12-03 07:04:33
【问题描述】:

据我了解,只要库包含 java 代码,我就可以为 Android 创建经典的 .jar 库。一旦我需要将资源(xml 文件等)包含到库中,我就需要创建所谓的 Android 库

Android 库 类似于普通的 Android 应用程序项目,但将标志 android.library(在 default.properties 文件中)设置为 true

要在我的项目中使用 Android 库,首先我需要有它的 java 源代码,然后我需要在 Eclipse 中加载库项目,然后我必须添加对库项目的引用来自我在 Eclipse 菜单中的应用程序项目:Properties>Android>Libraries。此步骤将android.library.reference.x 添加到我的应用程序default.properties 文件中。在构建过程中编译库 java 文件并将其合并到最终的应用程序 dex 文件中。

  • 我的描述正确吗?
  • 我真的需要分发源代码以允许其他人使用我的 Android 库 吗?

如果我使用经典 jar 库(只有在我只使用内部 Java 代码时才能制作),只需在我的应用程序中添加对库 .jar 文件的引用就足够了。这是通过指定项目的构建路径来完成的。稍后在构建过程中,jar 文件与我的应用程序类文件合并,以创建最终的 .dex 文件。

请评论 非常感谢

斯特恩

【问题讨论】:

  • 自 r14 以来已对此进行了改进,他们表示他们目前正在处理此问题,并将最终将库作为单个 jar 文件分发。结帐here

标签: android jar android-library java


【解决方案1】:

我的描述正确吗?

或多或少。

我真的需要分发源代码以允许其他人使用我的 Android 库吗?

对此有一些解决方法,但目前的期望是您将分发源代码。避免这种情况的唯一方法是不要直接从您的代码中引用您自己的资源(例如,R.layout.foo),而是将资源 ID 作为方法的参数或在运行时查找资源 ID(例如,getResources().getIdentifier() )。

Android 构建工具的未来版本将支持仅二进制的 Android 库项目。我相信这是目前针对 r17 版本的目标,计划于 2012 年初发布。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 2023-03-29
    • 2012-01-12
    • 1970-01-01
    • 2013-01-03
    相关资源
    最近更新 更多