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中的库,同时映射所有依赖项目中用到的库。如果有重复的,只映射一个。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-28 17:17:45

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平台上开发一个应用程序,而应用程序又想使用高版本才拥有的功能,就需要使用Support库. ??android api向来是高版本兼容低版本.如api-8(android2.2)必会兼容api-4(android 1.6).但是反之则不会,你使用2.2的平台版本bu

Libs文件夹下的Jar文件为什么不会自动放在Android Private Libraries目录下

简而言之:这个问题就是由jar包重复冲突了! 这个问题一开始我出现了一种"自以为是"的答案,在Android Private Libraries目录下的是会打包到工程可执行文件当中去的,而不自动编译的原因是因为Libs下面的jar文件太大导致的,但是显然在运行的时候就直接报错了--class not found! 那么很明显不是这个问题! 其实呢,是在Libs目录下面有一个android-support-v4.jar.而如果你的工程中有引入其他的libraries 而如果,这个proj

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 选项卡 单击展开 Android Private Libraries 单击展开 android-support-v4.jar 单击 Source attachment 再单击 右边的 Edit 选择源码路径 但是问题来了,我们在步骤8时会发现 edit 按钮是禁用的,这样我们就无法给jar选择源码路

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

简而言之:这个问题就是由jar包反复冲突了! 这个问题一開始我出现了一种"自以为是"的答案,在Android Private Libraries文件夹下的是会打包到project可执行文件其中去的,而不自己主动编译的原因是由于Libs以下的jar文件太大导致的,可是显然在执行的时候就直接报错了--class not found! 那么非常明显不是这个问题! 事实上呢.是在Libs文件夹以下有一个android-support-v4.jar.而假设你的project中有引入其它的libr

eclipse导入项目发生的Android Private Libraries丢失

有包发生了冲突,有可能是你当前ide的v4或v7包和导入项目原有的v4.v7jar包不同,有冲突

android Dependencies ,Private Libraries ,Referenced Libraries区别

1.被引用的项目在"Android"选项里设置"Is Library"打钩 2.引用项在"Android"选项里设置"add"被引用项 3 .android Dependencies会显示引用项目,依赖项目 Android Private Libraries:表示放在libs里面的jar包引用和依赖项目中的包,视为私有引用 Referenced Libraries:表示引用的外部jar包. 4.注意: 如果引用项目和被引用项目

Android工程中三种库的区别:Private Libraries、Referenced Libraries、Dependency Libraries

一.v4.v7.v13的作用和用法 1.Android Support V4, V7, V13是什么? 本质上就是三个java library. 2.为什么要有support库? ??是为了解决软件的兼容问题.如果在低版本Android平台上开发一个应用程序,而应用程序又想使用高版本才拥有的功能,就需要使用Support库. ??android api向来是高版本兼容低版本.如api-8(android2.2)必会兼容api-4(android 1.6).但是反之则不会,你使用2.2的平台版本b

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

一.v4.v7.v13的作用和用法 1.Android Support V4, V7, V13是什么? 本质上就是三个java library. 2.为什么要有support库?   是为了解决软件的兼容问题.如果在低版本Android平台上开发一个应用程序,而应用程序又想使用高版本才拥有的功能,就需要使用Support库.    android api向来是高版本兼容低版本.如api-8(android2.2)必会兼容api-4(android 1.6).但是反之则不会,你使用2.2的平台版本

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

如果Unity里面Plugins/Android 添加了 jar 文件,则导出Android 项目时会自动生成 Private Libraries. 而且里面的项还删不掉 然后在网上搜了一下,找到了原因 所以只要到 unity 导出来的安卓项目目录下的 libs里删掉自己不需要的jar 就行了