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的区别的更多相关文章

  1. 【转】你是不是也被Android Private Libraries、Referenced Libraries、android Dependency搞晕了~~

    一.v4.v7.v13的作用和用法 1.Android Support V4, V7, V13是什么? 本质上就是三个java library. 2.为什么要有support库?   是为了解决软件的 ...

  2. 怎样加入� android private libraries 中的包的源码

    先上图: 这里以加入� afinal_0.5.1_bin.jar 为例. 第一步:加入�jar包到libs里面,系统自己主动把jar载入到android private libraries中: 第二步 ...

  3. Libs文件夹下的Jar文件为什么不会自己主动放在Android Private Libraries文件夹下

    简而言之:这个问题就是由jar包反复冲突了! 这个问题一開始我出现了一种"自以为是"的答案,在Android Private Libraries文件夹下的是会打包到project可 ...

  4. 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 ...

  5. 【转】Private Libraries、Referenced Libraries、Dependency Libraries的区别

    一.v4.v7.v13的作用和用法 1.Android Support V4, V7, V13是什么? 本质上就是三个java library. 2.为什么要有support库?   是为了解决软件的 ...

  6. [转]Private Libraries、Referenced Libraries、Dependency Libraries的区别

    一.v4.v7.v13的作用和用法 1.Android Support V4, V7, V13是什么? 本质上就是三个java library. 2.为什么要有support库?   是为了解决软件的 ...

  7. Unity 导出的android项目自动生成Private Libraries

    如果Unity里面Plugins/Android 添加了 jar 文件,则导出Android 项目时会自动生成 Private Libraries. 而且里面的项还删不掉 然后在网上搜了一下,找到了原 ...

  8. public/private/protected访问控制权限的区别

    //public/private/protected访问控制权限的区别//时间:2016/8/16 //(一)修饰成员: //public: 在类内.类外都能使用 . //protected: 在类内 ...

  9. Java中public,private,protected,和默认的区别

    Java中public,private,protected,和默认的区别 1.private修饰词,表示成员是私有的,只有自身可以访问: 2.protected,表示受保护权限,体现在继承,即子类可以 ...

随机推荐

  1. NOIp2018模拟赛三十七

    奇怪的一场... 前两题都是全场题,C题明显不可做,我题目都没看懂...(STO lhx OTZ) 成绩:100+100+8=208 貌似十几个208的...A题暴力$O(nmc)$能过...暴力容斥 ...

  2. 紫书 习题8-8 UVa 1612 (贪心+精度)

    这道题我很快就写出来了, 但是一直WA, 然后发现是精度, 这坑了我一个小时-- (1)贪心.每次就尽量分数高, 可以保证最后分数最高 (2)神tm精度问题.记住判断大于小于和等于的时候要用EPS(1 ...

  3. WPF 获取应用的所有窗口

    原文:WPF 获取应用的所有窗口 本文告诉大家如何获取应用内的所有窗口,无论这些窗口有没显示 在 WPF 可以通过 Application.Current.Windows 列举应用的所有窗口 fore ...

  4. CSDN 轻松周赛赛题:能否被8整除

    轻松周赛赛题:能否被8整除 题目详情 给定一个非负整数,问能否重排它的全部数字,使得重排后的数能被8整除. 输入格式: 多组数据,每组数据是一个非负整数.非负整数的位数不超过10000位. 输出格式 ...

  5. 洛谷 P2049 魔术棋子

    P2049 魔术棋子 题目描述 在一个M*N的魔术棋盘中,每个格子中均有一个整数,当棋子走进这个格子中,则此棋子上的数会被乘以此格子中的数.一个棋子从左上角走到右下角,只能向右或向下行动,请问此棋子走 ...

  6. light oj 1317

    Description You probably have played the game "Throwing Balls into the Basket". It is a si ...

  7. BZOJ 3110 线段树套线段树

    思路: 外围一个权值线段树 里面是个区间线段树 搞一个标记永久化 //By SiriusRen #include <cstdio> #include <cstring> #in ...

  8. NestedScrollView嵌套ListView可行性总结

    由于公司项目遗留代码仍然使用PullToRefreshListView(后文简称PTRLV),且存在复用,更换RecyclerView成本太大,同时又想使用CoordinatorLayout来实现一些 ...

  9. vuejs keep-alive

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. 《剑指offer》调整数组顺序使奇数位于偶数前面

    一.题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 二.输入描述 ...