Android Private Libraries 和 Dependencies的区别
Android项目开发中,是不是常看到android-support-v4.jar、appcompat_v7.jar等的jar包? 至于为什么要添加这些包?添加有什么用?添加到哪里?相信很多人没过多关注,或者只知其然,而不知其所以然。下面我们就来学习一下~~
一、v4/ v7/ v13的作用与区别
1. v4/ v7/ v13是什么?
本质上就是android提供的三个java library.
2. android为什么要提供这些库?
google提供了Android Support Library package 系列的包来保证来高版本sdk开发的向下兼容性。
如果在低版本Android平台上开发一个应用程序,而应用程序又想使用高版本才拥有的功能,就需要使用Support库。比如,在2.2平台开发了一个app,
安装到4.0平台上,想运用4.0上的新功能,那么app里面就需要添加V4库支持;反过来,如果在4.0平台开发了一个app,想安装到2.2平台,可能会失败,因为4.0的应用可能使用了一些新功能,调用了新API,但2.2平台没能,所以想成功要做向下兼容。
android api向来是高版本兼容低版本.如api-8(android2.2)必会兼容api-4(android
1.6).但是反之则不会,你使用2.2的平台版本build了一个apk,若想能在1.6上运行,则需要做向下兼容. android
support-xx是google官方的向下兼容包.如名所示,会帮助构建程序向下兼容到1.6版本.不过也并非万能的,还是会受限制.
Android
为了兼容2.X以下的版本,所以出了android.support.v4的包,该包的主要作用是便于开发者在2.X的开发环境中,使用4.0的控件。
3. v4/ v7/ v13的作用与区别
android-support-v4
是谷歌推出的兼容包,最低兼容Android1.6的系统,里面有类似ViewPager等控件。ViewPager在Android 1.6以下的版本是不自带的,所以要实现ViewPager需要使用v4包中的ViewPager。其余控件同理。
android-support-v7
是谷歌推出的版本兼容包,最低兼容Android2.1的系统,这个包通常和appcompat-v7这个工程一起使用。appcompat-v7这个工程可以让开发者统一开发,在任何系统版本下保证兼容性。涉及的内容有Theme,value,布局,新的控件,新的动画实现方式,包含了support-v4的全部内容,开发Android工程时,要兼容低版本都要导入v7工程。android
studio在创建工程的时候默认导入了v7工程,并且将style使用了兼容style,给开发者提供了极大的方便。并且最新的v7包增加了很多material
design的兼容类和素材,请及时更新。
android-support-v13
是谷歌推出的版本兼容包,最低兼容Android3.2的系统。当初是为了开发平板做设计的。
二、Android Private Libraries、android Dependency、libs三者关系
1. 三者的内容作用
Android Private Libraries: 表示放在libs里面的jar包引用和依赖项目Dependencies中的包,视为私有引用
Android Dependencies: 会显示引用项目,依赖项目
libs: 表示引用的外部jar包。
2. libs和Android Private Libraries的关系
Eclipse创建Android项目,其中有一个libs目录,在里面放从外部引用的第三方Lib库文件,比如项目开发中需要加载图片,这个如果自己实现,耗时费力还不一定好,直接引用别人的库实现,如Universal-Image-Loader库就非常完美。
添加方式:直接复制粘贴到Libs目录下即可。
在libs中添加的库, 都会自动映射到Android Private Libraries目录下,如下图所示,在libs中引用添加了四个外部库文件,而eclipse会自动映射到private libraries目录。
3. Android Dependency 和 Android
Private Libraries的关系
Android Dependency
目录在eclipse上也是自动生成的,这个目录主要是放依赖项目的。比如,之前开发了一个项目A,现在新的项目B要使用项目A的功能,那么把项目A作为类库关联进来,这样B就能直接使用A的功能,而不用从新开发。
添加方式:项目B右键 - 》Properties
-》Android -》Add... -》显示eclipse上所以的库类项目 -》选择需要的项目,确认就添加到Dependency 目录下(如下图)
如下图,项目MMCamera成功添加了两个依赖项目appcompat_v7 和google-play-services_lib
项目A添加了依赖项目B,那么项目B的Android Private Libraries目录下面的所有库都会映射到项目A的Android Private Libraries目录下面。也就是说,项目B中用到了那些库,那么项目A中必须也包含这些库。如下图所示,
三、总结
1. libs目录放项目从外部引用的第三方库;
2. Android Dependency目录放引用的依赖项目;
3. Android Private Libraries映射所有libs中的库,同时映射所有依赖项目中用到的库。如果有重复的,只映射一个。
版权声明:本文为博主原创文章,未经博主允许不得转载。
Android Private Libraries 和 Dependencies的区别的更多相关文章
- 【转】你是不是也被Android Private Libraries、Referenced Libraries、android Dependency搞晕了~~
一.v4.v7.v13的作用和用法 1.Android Support V4, V7, V13是什么? 本质上就是三个java library. 2.为什么要有support库? 是为了解决软件的 ...
- 怎样加入� android private libraries 中的包的源码
先上图: 这里以加入� afinal_0.5.1_bin.jar 为例. 第一步:加入�jar包到libs里面,系统自己主动把jar载入到android private libraries中: 第二步 ...
- Libs文件夹下的Jar文件为什么不会自己主动放在Android Private Libraries文件夹下
简而言之:这个问题就是由jar包反复冲突了! 这个问题一開始我出现了一种"自以为是"的答案,在Android Private Libraries文件夹下的是会打包到project可 ...
- MyEclipse中android 项目如何解决第三方jar无法关联源码的问题( The JAR of this class file belongs to container 'Android Private Libraries' which does not allow modifications to source attachments on its entries.)
若我们要为第三方jar(android-support-v4.jar)关联源码通常的做法是 右键项目 单击菜单Properties 单击菜单 Java Build Path 单击 Libraries ...
- 【转】Private Libraries、Referenced Libraries、Dependency Libraries的区别
一.v4.v7.v13的作用和用法 1.Android Support V4, V7, V13是什么? 本质上就是三个java library. 2.为什么要有support库? 是为了解决软件的 ...
- [转]Private Libraries、Referenced Libraries、Dependency Libraries的区别
一.v4.v7.v13的作用和用法 1.Android Support V4, V7, V13是什么? 本质上就是三个java library. 2.为什么要有support库? 是为了解决软件的 ...
- Unity 导出的android项目自动生成Private Libraries
如果Unity里面Plugins/Android 添加了 jar 文件,则导出Android 项目时会自动生成 Private Libraries. 而且里面的项还删不掉 然后在网上搜了一下,找到了原 ...
- public/private/protected访问控制权限的区别
//public/private/protected访问控制权限的区别//时间:2016/8/16 //(一)修饰成员: //public: 在类内.类外都能使用 . //protected: 在类内 ...
- Java中public,private,protected,和默认的区别
Java中public,private,protected,和默认的区别 1.private修饰词,表示成员是私有的,只有自身可以访问: 2.protected,表示受保护权限,体现在继承,即子类可以 ...
随机推荐
- POJ-1276 Cash Machine 多重背包 二进制优化
题目链接:https://cn.vjudge.net/problem/POJ-1276 题意 懒得写了自己去看好了,困了赶紧写完这个回宿舍睡觉,明早还要考试. 思路 多重背包的二进制优化. 思路是将n ...
- luoguP1555 尴尬的数字(暴力+map)
题意 题解 枚举每一个可能的二进制数.扔到一个map里 再枚举每一个可能的三进制数看map有没有就行了 反正就是很水 #include<iostream> #include<cstr ...
- [NOIP2011提高组]Mayan游戏
题目:洛谷P1312.Vijos P1738.codevs1136. 题目大意:在一个7行5列的棋盘(左下角坐标0,0)上,有一些不同颜色的棋子. 规定某一时刻,连续三个横排或竖列的棋子颜色相同,则它 ...
- Maven命令下载源码和javadocs
1:Maven命令下载源码和javadocs 当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的 ...
- Object-C,对象和方法
学习Object-C,买了2本书,其中1本是用C币买的,总体质量一般,比较基础. 另外一本是,疯狂-李阳写的,大部头,比较吓人,比较全一点. 对于面向对象,之前还是有个大概的理解,再多点基础的例子. ...
- Docker学习总结(9)——Docker常用命令
容器生命周期管理 - docker [run|start|stop|restart|kill|rm|pause|unpause] 容器操作运维 - docker [ps|inspect|top|att ...
- POJ——T 3041 Asteroids
http://poj.org/problem?id=3041 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 23565 ...
- linux清除邮件队列
[root@localhost mail]#tmp=`mailq | grep -E "root" | awk '{print $1}'` [root@localhost mail ...
- 在 Win8.1 上安装 Dedup
install-package Microsoft-Windows-ServerCore-FullServer-Package~31bf3856ad364e35~amd64~~6.3.9600.163 ...
- sicily 1003. hash
Description 请用HASH链式法来解决冲突,且规定链表在链表头插入新元素. 规定HASH函数为:h(x) = x % 11,即哈希数组下标为0-10. 给定两种操作: I 操作,插入一个新的 ...