主工程、依赖包、jar包、android.jar、Android Support Library的关系
一个Android工程通常包括主工程和依赖包,依赖包又有两种形式:
-
一种是单独的工程:在主工程中的配置文件指明主工程和依赖包的依赖关系之后,就可以在主工程中正常使用依赖包的类和接口了,这种适合于依赖包中有图片资源、so等不方便打包到jar包中的情况,比如 Nine Old Androids、 PullToRefresh、FancyCoverFlow等;
-
另一种是jar包:放在主工程的libs文件夹下,这种通常是依赖包中只有代码和可以打包到jar包中的文件,比如 Fastjson.jar、 Volley.jar、 Gson.jar等。
为了程序能够编译通过和在设备中正常运行,主工程除了依赖第三方的工程和jar包之外,还需要依赖安卓系统本身的代码,也就是我们在sdk的每个版本中看到的android.jar,这里面集成了android的所有API,随着android sdk的升级,高版本的sdk中会增加很多新的API,比如ActionBar、Fragment、RecyclerView等,如果在低版本的sdk中需要使用高版本新增的API怎么办?不可能去更新移动设备中的android.jar吧,因为硬件设备集成的sdk版本是固定的,android.jar也是固定的,设备中的一些参数、硬件选型也是根据当前sdk版本来定的,所以最好的方式是将新增的API以依赖包的形式集成到需要使用高版本API的应用程序中。
谷歌早已经考虑到了这个问题,所以推出了一系列脱离于android.jar的依赖包,比如常