1.3、Android Studio创建一个Android Library
一个Android Library结构上与Android app模块相同。它可以包含构建一个app需要的所有东西,包括圆满,资源文件和AndroidManifest.xml。然而,并非编译成运行在设备上的APK,一个Android Library编译成其他Android app模块可以用作以来的AAR文件。
一个Library模块在以下情形中是有用的:
1、 当你构建多个使用相同组件,比如activity、service或者UI布局,的APP。
2、 当你构建的APP存在多个APK文件。比如免费版和付费版APK。
在这些案例中,简单的移动你想复用的文件到Library模块中,添加Library作为APP模块的依赖。
创建一个Library模块
为了创建一个新的Library模块到你的项目中,遵循如下步骤:
1、 单击File > New > New Module
2、 在Create New Module窗口出现时,点击Android Library。然后点击Next。
这里同样有一个创建Java Library的可选项,可以构建一个传统的JAR文件。JAR文件在很多项目中都是可用的。特别是你想与其他平台分享代码,它不允许包含Android资源文件或者AndroidMainfest.xml,,这个在Android项目中是非常有用的,所以我们专注创建Android Library。
3、 为你的Library设置一个名称并且选择一个最小的SDK,然后点击Finish。
一旦Gradle项目同步完成。Library模块显示在Project左边的面板中。如果你没有看到新的模块文件夹,确保适应的是Android视图。
将App模块转化为Library模块
如果你有一个已经存在的app模块所有的代码你都想复用,你可以通过以下几部将其转化成Library模块。
1、 打开build.gradle文件,你可以看到如下语句:
apply plugin: ‘com.android.application’
2、 更改成如下:
apply plugin: ‘com.android.library’
3、 点击Sync Project with Gradle Files
就这么简单,整个模块无需改动。但是现在就可以作为Library并且生成AAR文件而不是APK。
将你的Library添加为依赖
为了在其他app模块中使用你的Android Library代码,操作如下:
1、 有两种方式添加library到你的项目中。
添加编译后的AAR(或者JAR)文件:
1) 单击 File > New Module。
2) 单击 Import .JAR/.AAR Package 然后点击Next。
3) 输入AAR或者JAR文件的位置,然后点击Finish。
导入你的Library模块到你的项目:
1) 单击 File > New > Import Module
2) 输入Library 模块的位置点击Finish。
Library模块被复制到你的项目中所以你可以编辑Library代码。
2、 确保Library 列在setting.gradel文件的顶部。
include ‘:app’, ‘:my-library-module’
3、 打开app模块的build.gradle文件添加一个新的依赖到dependencies中:
dependencies {
compile project(“:my-library-module”)
}
4、 单击Sync Project with Gradle Files。
现在,你的Android Library中的任何代码和资源都是可以被你的app模块访问,Library的AAR文件将会在你的APK打包的时候加入进去。
注意以下问题
1、 资源合并可能导致冲突
2、 Library模块可以包含JAR 包。
3、 Library模块不能使用 raw资源
4、 App模块的最小SDK版本必须等于或高于Library中的版本。
5、 每个Library模块创建它自己的R类。
本文作者:宋志辉
个人微博:点击进入
1.3、Android Studio创建一个Android Library的更多相关文章
- 1.1、Android Studio创建一个项目
Android Studio中的项目包含一个或多个模块.本节帮助你创建一个新的项目. 创建一个新的项目 如果你之前没有打开项目,Android Studio显示欢迎页面,通过点击Start a New ...
- android studio创建一个最简单的跳转activity
实现目的:由mainActivity跳转到otherActivity 1.写好两个layout文件,activity_main.xml和otherxml.xml activity_main.xml & ...
- Android Studio 第一个Android项目
创建步骤 Start a new Android Studio project 选择 Empty Activity 设置Android项目的名称.位置,开发语言 打开初始界面 初步认识Androi ...
- 【Android Studio使用教程2】Android Studio创建项目
创建项目 首先,先指出Android Studio中的两个概念. Project 和 Module .在Android Studio中, Project 的真实含义是工作空间, Module 为一个具 ...
- Android Studio创建项目
创建项目 首先,先指出Android Studio中的两个概念. Project 和 Module .在Android Studio中, Project 的真实含义是工作空间, Module 为一个具 ...
- 用android studio创建第一个安卓程序加载html5 页面
前言 软件版本:android studio v1.0正式版,由于v0.x以来软件变化一直比较大,很多问题搜索的解决方案也都是v0.x版本时代的,故首先声明一下版本. 动机:由于工作中需要对移动端软件 ...
- Android逆向 编写一个Android程序
本节使用的Android Studio版本是3.0.1 首先,我们先编写一个apk,后面用这个apk来进行逆向.用Android Studio创建一个新的Android项目,命名为Jhm,一路Next ...
- android studio 创建第一个app之hello world
android studio 创建第一个app之hello world 想要用studio创建一个简单的app,结果遇到各种问题,application就是允许不起来,后来在专业人的帮助下,删除了一些 ...
- 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字“Hello Android”,并将应用程序的名称更改为“FirstApp”。
需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字"Hello Android",并将应用程序的名称更改为"Firs ...
随机推荐
- [USACO09DEC]牛收费路径Cow Toll Paths
跟所有人一样,农夫约翰以着宁教我负天下牛,休叫天下牛负我的伟大精神,日日夜夜苦思生 财之道.为了发财,他设置了一系列的规章制度,使得任何一只奶牛在农场中的道路行走,都 要向农夫约翰上交过路费. 农场中 ...
- hdu5631 BestCoder Round #73 (div.2)
Rikka with Graph Accepts: 123 Submissions: 525 Time Limit: 2000/1000 MS (Java/Others) Memory Lim ...
- bzoj3702二叉树 线段树合并
3702: 二叉树 Time Limit: 15 Sec Memory Limit: 256 MBSubmit: 600 Solved: 272[Submit][Status][Discuss] ...
- python变量、条件循环语句
1. 变量名 - 字母 - 数字 - 下划线 #数字不能开头:不能是关键字:最好不好和python内置的函数等重复 2. 条件语句 缩进用4个空格(Tab键)注意缩进如果是空格键和Tab键混用, ...
- C语言程序设计实验第四次作业
(一)改错题 输出三角形的面积和周长,输入三角形的三条边a.b.c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数):否则,输出"These sides do ...
- iOS 隐藏导航条分割线
// 导航条分割线 @property (nonatomic, strong) UIView *navSeparateView; // 获取导航条分割线 UIView *backgroundView ...
- RTX 无法刷新组织架构的处理方法总结
文章一: 刷新组织架构问题1."客户端不能获取正确的组织架构"或"新增加的人员刷新不了组织架构"首先要判断是RTX服务器引起的异常还是一些客户端出现的异常,判断 ...
- Java 反射(二)
作者:郑剑锋链接:https://www.zhihu.com/question/24304289/answer/147529485来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- 聪明的搜索算法’ A*算法
A*算法 是一种启发式的搜索算法. 了解BFS.DFS或者Dijkstra算法的人应该知道.这些算法都是一种向四周盲目式搜索的方法. 启发式搜索: 启发式搜索就是在状态空间中的搜索 ...
- css修改浏览器默认的滚动条样式
//滚动条样式 ::-webkit-scrollbar { width: 10px; } /* 垂直滚动条的滑动块 */ ::-webkit-scrollbar-thumb:vertical { bo ...