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的代码,那么应该使用方法一,而不应该使用方法二。