代码之家  ›  专栏  ›  技术社区  ›  Tawani

android-是否可以创建一个自定义库来跨多个应用程序使用?

  •  20
  • Tawani  · 技术社区  · 15 年前

    是否可以在Android中创建一个自定义库(拥有自己的布局资源),用于多个Android应用程序?

    • 我创建了一个常规的*.jar文件,但是当我尝试动态创建/设置视图样式时,大多数属性都不起作用。甚至引用android.jar文件中的简单样式,例如 android.attr.listsparatortextview样式 没有工作。

    • 我创建了一个没有任何活动的android项目,拥有自己的资源文件,然后从另一个android项目引用这个项目以在其构建路径中使用。似乎一切正常,但模拟器不断崩溃(在 洛卡特 )当我试着运行这个项目时。

    我错过什么了吗?

    4 回复  |  直到 12 年前
        1
  •  13
  •   mxk    15 年前

    嗯,我认为有一种方法可以做到这一点(虽然我自己没有尝试过),但它要求你的图书馆的用户必须通过 aapt .

    问题是:您要导出的jar包含 R 保存库资源ID的类文件。因此,任何应用程序都可以通过简单地链接JAR来访问这些ID。但是,这还不够,因为默认情况下,只有应用程序的res/文件夹中的资源与apk捆绑在一起。因此,您必须使用AAPT自己创建APK,告诉它还包括库中的任何资源。有关详细信息,请参阅AAPT工具帮助。

    因为这意味着库的用户必须引入一个手工构建过程(或者至少修改它),所以这会导致糟糕的体验。

        2
  •  17
  •   Sachin Chavan bortzmeyer    12 年前

    可能回答晚了,但发现这很有趣。 Setting up a Library Project

    安卓图书馆项目是 共享的开发项目 Android源代码和资源。 其他Android应用程序项目可以 参考图书馆项目,并在 生成时间,包括编译时间 他们的.apk文件中的源。倍数 应用程序项目可以引用 同一个库项目和任何单个 应用程序项目可以引用 多个库项目。

    如果您有源代码和资源 多人共通的 应用程序项目,可以移动 把它们放到一个图书馆项目中 更容易保持横向 应用程序和版本。这里是 一些常见的场景 可以利用图书馆项目:

        3
  •  5
  •   CommonsWare    15 年前

    是否可以创建自定义 安卓图书馆(拥有自己的 布局资源)用于 几个Android应用程序?

    不,JAR不能有资源。您可以这样共享代码,但是资源必须驻留在重用JAR的应用程序中。

    甚至引用简单样式 android.jar文件,例如 android.attr.listsparatortextview样式 没有工作。

    确保将jar链接到android.jar。您可以在我的 github page .

        4
  •  0
  •   user443461    12 年前

    对于R21,这仍然是真的吗?我能够将库项目导出到JAR文件中,并成功地用于其他客户项目,包括代码方面的和访问资产文件方面的。

    然而 http://developer.android.com/tools/projects/index.html 仍然有以下陈述,似乎不再正确:

    不能将库项目导出到JAR文件库不能 作为二进制文件(如JAR文件)分发。这将被添加 在未来版本的SDK工具中。