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下即可。