• Android Library和Android APP、Java Library的区别


    Android Library和Android APP、Java Library的区别

    • Android Library在目录结构上与Android App相同,它能包含构建APP所需的一切(如源代码、资源文件、Android Manifest)。

    • Android App最终被编译打包成能在Android设备上运行的APK文件,但是Android Library被编译成供其它Android App依赖的Android Archive (AAR)文件。

    • Java Library最终被编译打包成Java Archive(JAR)文件,它不能打包Android资源文件,但是Android Library不仅能打包Java文件还能打包Android资源文件。

    Android Library的使用场景

    • 当你需要向其它APP提供一个通用模块时。例如:你需要向其它APP提供通用的账户管理模块。

    • 当你需要构建不同的APK,但这些APK有共同核心功能时。例如:你的APP有免费版和付费版,但是它们有相同的核心功能。

    在这两种情况下,只需将要重用的文件移动到Android Library中,然后将library添加为每个APP模块的依赖项,APP就能直接调用library中的功能,而不需要关心library的具体实现。

    如何把App Module转换成Android Library Module

    如果你的App Module的全部代码都可以重用,那么你可以把这个App Module转换成Android Library Module,步骤如下:

    1、 打开App Module的build.gradle文件。

    2、 删除applicationId这一行。只有App Module才需要定义applicationId。

    3、 把文件顶部的 apply plugin: 'com.android.application' 改为 apply plugin: 'com.android.library'

    4、 保存文件,点击Tools > Android > Sync Project with Gradle Files。

    这样就完成了App Module到Android Library Module的转换。 转换后Module的整个结构不变,但是它已经是一个Android Library Module了,编译后将生成AAR文件,而不是APK文件。

    在Project面板中选中Library Module,然后点击Build > Build APK,就能编译生成对应的AAR文件到build>outputs>aar目录。

    如何添加依赖Android Library

    在其它App Module中使用Android Library中的代码的步骤如下:

    方法一

    添加编译生成的AAR文件到Project。

    a、 点击File > New > New Module。

    b、 点击Import .JAR/.AAR Package,然后点击Next。

    c、 输入AAR文件的路径,然后点击Finish。

    方法二

    Import Android Library到Project(library的源代码就成了Project的一部分)。

    a、 点击File > New > Import Module。

    b、 输入library的目录地址,然后点击Finish。

    这样library就被copy到Project,且你可以编辑library的代码。

    如果你想只维护一份library的代码,那么应该使用方法一,而不应该使用方法二。

    关于我

    私人博客

    微信公众号:infree6 或者直接扫码

  • 相关阅读:
    CentOS中基于不同版本安装重复包的解决方案
    诺讯科技
    SQLMap使用
    python初码
    优秀软件project师必备的7大特性
    3.2 Piecewise Linear Interpolation(站点)
    C#开发Unity游戏教程之游戏对象的属性变量
    java 线程 原子类相关操作演示样例 thinking in java4 文件夹21.3.4
    一键解决ScrollView嵌套ListView仅仅显示一行的问题
    W5500中断寄存器的理解
  • 原文地址:https://www.cnblogs.com/songjianzaina/p/10373260.html
Copyright © 2020-2023  润新知