Android Studio Java库模块与Android库模块

时间:2015-01-26 16:46:38

标签: android android-studio

我期望的最终结果是拥有一个可以输出不同的Mobile,Tv和Wear应用程序产品的项目,这些应用程序共享相同的代码库。因此,我希望代码库成为所有三种应用程序类型的依赖项,其中每个应用程序模块只包含活动和与代码库的交互。

我的第一个想法是添加一个" Android库模块"到我新创建的项目,但我注意到这只是一个新的应用程序模块,拥有自己的资源和一切。我希望代码库的功能更像是一个" Java Library",但它需要访问像" android.graphics.Color"这样的包。

所以简而言之,实现这个结果的正确方法是使用一个引用了android sdk的java库,还是我只是错误的方式?

Does an Android Library need a manifest ,app_name,Icon?

上继续提问

3 个答案:

答案 0 :(得分:13)

中间没有。如果您想要访问Android API,那么该库需要是一个Android库,以便构建系统可以正确地将其链接到依赖项目。 Android Libraries确实拥有您可能不需要的资源和其他东西,但如果您愿意,可以忽略这些内容并将其视为纯Java库。即使您没有使用资源,您也可以发现指定要合并到依赖应用程序中的AndroidManifest.xml属性的功能。

Android库项目不会构建完全成熟的APK作为其输出;它生成一个AAR,它在概念上类似于JAR存档,但具有对Android项目有用的资源和元信息。

答案 1 :(得分:3)

定义术语的补充答案

Android Studio documentation定义模块,如下所示:

  

模块是允许的源文件和构建设置的集合   您可以将项目划分为离散的功能单元。您的   项目可以有一个或多个模块,一个模块可以使用另一个   模块作为依赖。每个模块都可以独立构建,   经过测试和调试。

所以基本上一个模块是你大项目中的子项目。

模块类型

  • Android应用模块 - 应用模块通常是您在正常项目中使用的模块。编译它时,您将获得一个将在设备上运行的APK文件。以下是存在的不同类型的应用程序模块:
    • 电话&平板电脑模块
    • Android Wear模块
    • Android电视模块
    • 玻璃模块
  • 库模块 - 库的目的是共享代码。例如,您可以拥有一个包含几个不同应用模块的项目。它们使用的公共代码可以位于库中。
    • Android库 - 除了Java代码之外,还允许您包含Android资源文件和清单。 如果您正在制作Android项目并想知道要使用哪种库,请选择Android库。 编译时会创建一个AAR(Android存档)文件。
    • Java Library - 这只允许您包含Java代码文件,不包含Android资源文件。这对于跨平台代码共享很有用。编译时,它会创建一个JAR(Java Archive)文件。
  • Google云端模块 - 此类型的模块是Google Cloud后端,用于与客户端应用进行通信。

答案 2 :(得分:1)

我还没有看到另外一点记录:android库模块可以依赖于另一个android库模块或java库模块,但是java库模块不能依赖于android库模块。