博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.3、Android Studio创建一个Android Library
阅读量:6288 次
发布时间:2019-06-22

本文共 1773 字,大约阅读时间需要 5 分钟。

hot3.png

一个 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。 
这里同样有一个创建 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类。

本文作者:宋志辉 

个人微博:

转载于:https://my.oschina.net/songzhihui/blog/711783

你可能感兴趣的文章
bandit系列0--10
查看>>
文本过滤之grep,egreo及fgrep 三剑客及正则表达式
查看>>
实现Singleton模式在C#
查看>>
服务发现:Zookeeper vs etcd vs Consul
查看>>
微软企业项目管理系统技术研讨会
查看>>
Kafka设计篇之消息传输的事务定义
查看>>
我的友情链接
查看>>
使用windows 7 系统安装盘 DOS普通用户提权为管理员
查看>>
老男孩教育每日一题第115天:如何在centos 6下面实现命令补全?效果如下
查看>>
国内可用的yum源
查看>>
linux df -h 命令卡住 解决方法
查看>>
spring是什么,Spring能帮我们做什么
查看>>
Codeforces 861D - Polycarp's phone book
查看>>
FreePortScanner.java
查看>>
HttpURLConnection 文件上传限制
查看>>
javascript类式继承新的尝试
查看>>
真正掌握vuex的使用方法(四)
查看>>
MySql的Communications link failure解决办法
查看>>
GB2312编码
查看>>
架构探险笔记2
查看>>