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 或者直接扫码

Android Library和Android APP、Java Library的区别的更多相关文章
- java matlab 混合编程 Failed to find the required library mclmcrrt9_2.dll on java.library.path.
问题描述: Exception in thread "main" java.lang.UnsatisfiedLinkError: Failed to find the requir ...
- 不同系统与程序修改java.library.path的位置(转)
原文地址:http://blog.csdn.net/quqibing001/article/details/51201768 Linux环境 系统变量LD_LIBRARY_PATH来添加Java.li ...
- Android Studio2.1.2 Java8环境下引用Java Library编译出错
转载请注明出处:http://www.cnblogs.com/LT5505/p/5685242.html 问题:在Android Studio2.1.2+Java8的环境下,引用Java Librar ...
- [Android]官网《Testing Support Library》中文翻译
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5048524.html 翻译自 Android Develope ...
- Introduction to Glide, Image Loader Library for Android, recommended by Google
In the passed Google Developer Summit Thailand, Google introduced us an Image Loader Library for And ...
- 【转载】Android Studio jar、so、library项目依赖,原文链接http://zhengxiaopeng.com/2014/12/13/Android-Studio-jar、so、library项目依赖/
前言 Android Studio(以下简称AS)在13年I/O大会后放出预览版到现在放出的正式版1.0(PS.今天又更新到1.0.1了)历时一年多了,虽然Google官方推出的Android开发者的 ...
- Android 自己实现 NavigationView [Design Support Library(1)]
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/46405409: 本文出自:[张鸿洋的博客] 一.概述 Google I/O 2 ...
- Error : should use android:showAsAction when not using support library
我有一个ListActivity,然后一个menu/options.xml android:showAsAction报错: should use android:showAsAction when n ...
- Build Assimp library for Android
Build Assimp library for Android 首先各路教程中有推荐使用 NDK 或者 STANDALONE TOOLCHAIN 编译的,根据我的理解,这两种方式都是可以的,如果能直 ...
随机推荐
- 对象在hibernate中的状态
首先hibernate中对象的状态有三种:瞬态.游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save().saveOrUpdate().get().load() ...
- 缓冲区溢出基础实践(二)——ROP 与 hijack GOT
3.ROP ROP 即 Return Oritented Programming ,其主要思想是在栈缓冲区溢出的基础上,通过程序和库函数中已有的小片段(gadgets)构造一组串联的指令序列,形成攻击 ...
- 【bzoj 4675】 点对游戏
题目 发现一个人如果最终拿走了\(k\)个点,那么这个人的答案就是 \[\frac{\binom{n-2}{k-2}\sum_{i=1}^{n}\sum_{j=1}^{n}[dis(i,j)\in M ...
- IIS提示出现RPC服务器不可用的解决方法
如果你运行IIS时也遇到“RPC服务器不可用”的故障提示,不妨试试我们下面的办法 依次点击“管理工具→服务→Remote Procedure Call→属性”,其默认启动类别是“自动”,但选项是灰色的 ...
- Kafka设计解析(十)Kafka如何创建topic
转载自 huxihx,原文链接 Kafka如何创建topic? 目录 一.命令行部分 二.后台逻辑部分 Kafka创建topic命令很简单,一条命令足矣: bin/kafka-topics. --re ...
- docker - kubernetes 网络(转)+ 架构图
1.host网络 连接到 host 网络的容器共享 Docker host 的网络栈,容器的网络配置与 host 完全一样.可以通过--network=host指定使用 host 网络.docker ...
- 12 Bit ADC与LSB的含义
[转]12 Bit ADC与LSB的含义 LSB(Least Significant Bit),意为最低有效位:MSB(Most Significant Bit),意为最高有效位,若MSB=1,则表示 ...
- iOS url出现特殊字符处理 -- stringByAddingPercentEncodingWithAllowedCharacters
stringByAddingPercentEscapesUsingEncoding(只对 `#%^{}[]|\"<> 加空格共14个字符编码,不包括”&?”等符号), i ...
- 使用Jquery Viewer 展示图片信息
<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8" ...
- Scratch 3.0 版本比较
新年伊始MIT 就正式 发布了Scratch最新3.0版 ,以 HTML5.0 为基础的版本! 本文就来带看看3.0版有哪些更新的地方. 下图是进入后第一个画面,跟Scratch 2.0 很像,熟悉的 ...