1、appcompat_v7包的由来?
appcompat_v7是Google提供的向下兼容包,是针对API level 7(Android2.1)及以上版本所开发的,其作用是为了让兼容低版本API(minSdkVersion>7)的应用可以使用高版本API的功能和效果。主要是可以使用API level 11(Android3.0)的新特性,例如对ActionBar、SearchView、PopupMenu等控件的支持,这些控件都是在Android3.0后引入的,如果你的应用是需要兼容低版本API,那么为了在低版本的设备上可以使用这些控件的效果,就必须在你的工程中使用appcompat_v7兼容包。
2、appcompat_v7包所在位置和相关文件介绍?
appcompat_v7包的相对路径位于sdk\extras\android\support\v7(sdk指你的Android SDK所在文件夹,我的绝对路径是D:\Dev_Software\Android\sdk\extras\android\support\v7),可以看到如图下appcompat文件夹即appcompat_v7,v7目录下其他文件夹如cardview、gridlayout等,是v7支持库提供的其他兼容包,这些兼容包都是一些jar文件和资源文件。v7包是依赖于v4包的,和v4不同点在于,v4包将许多功能集中于同一个jar文件,而谷歌为了低版本的兼容性,就会将新版本出现的新的特性更新到v7支持库中,导致v7包中有许多的jar文件。因此,在你的工程导入v7包时,需要注意,避免导入不需要的功能。打开appcompat文件夹下的.project文件,可以看到appcompat_v7这个依赖库的实际名字为android-support-v7-appcompat
3、关于eclipse新建项目会自动创建appcompat_v7依赖库并报错的原因?
在ADT版本更新至22.6.0后,每次新建工程eclipse就会自动添加appcompat_v7。旧版ADT并不会自动添加appcompat_v7。ADT自动添加的appcompat_v7和sdk\extras\android\support\v7\appcompat路径下的兼容包实质是同一个依赖库。你可以打开eclipse工作区间,进入appcompat_v7所在目录下,打开.project文件,会发现.project文件的name标签值也是android-support-v7-appcompat。当你新建工程完成后,你的工程和ADT自动添加的appcompat_v7都出现了错误提示,可以手动修改你的工程和appcompat_v7目录下的project.propertiest文件中target的值为你所下载的最新sdk,例如target=android-23,修改完成后,手动选择Project-Clean,将你的工程和appcompat_v7依赖库clean下即可。