Android Private Libraries 和 Dependencies的区别

Posted 672530440

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的区别的主要内容,如果未能解决你的问题,请参考以下文章

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

库目标的 target_link_libraries PRIVATE 语义

[轉]Android Libraries 介紹 - Butter knife

GitHub Android Libraries Top 100 简介

无法解决:com.google.android.libraries.places:1.0.0:

Android Studio-导入External Libraries