支持庫
Android 支持庫提供了諸多未內(nèi)置于框架的功能。這些庫提供向后兼容版本的新功能谆刨、框架中未包含的實(shí)用 UI 元素筹燕,以及應(yīng)用可以利用的一系列實(shí)用程序恶耽。
概覽
許多情況下,某項(xiàng)功能可能對應(yīng)用開發(fā)者很有用决左,但是添加到 Android 框架卻并不合適愕够。例如走贪,某個應(yīng)用可能僅需要用于特定用例的某項(xiàng)功能,如在不同版本的 Android 系統(tǒng)之間順暢切換惑芭。
為了解決這一問題坠狡,Android SDK 添加了多個庫,這些庫統(tǒng)稱為?Android 支持庫遂跟。如果應(yīng)用開發(fā)者想要在應(yīng)用中集成庫功能逃沿,他們可以添加其中任意一個庫。
支持庫提供一系列不同的功能:
向后兼容版本的框架組件漩勤。
用于實(shí)現(xiàn)建議的 Android?布局模式的 UI 元素感挥。
支持不同的設(shè)備類型。
其他實(shí)用程序功能越败。
向后兼容性
支持庫可以讓在舊版本 Android 平臺上運(yùn)行的應(yīng)用支持為新版本平臺推出的功能触幼。例如,應(yīng)用在依賴于框架類的 5.0(API 級別 21)版本以下的 Android 系統(tǒng)上運(yùn)行時究飞,將無法顯示 Material Design 元素置谦,因?yàn)樵摪姹镜?Android 框架不支持 Material Design。但是亿傅,如果此應(yīng)用添加了支持庫的?appcompat 庫媒峡,則可以訪問 API 級別 21 中具有的許多功能,其中包括對 Material Design 的支持葵擎。因此谅阿,您的應(yīng)用可以在多個平臺版本中提供更為一致的體驗(yàn)。
某些情況下酬滤,類的支持庫版本很大程度上取決于框架提供的功能签餐。因此,如果應(yīng)用調(diào)用其中一個支持類的方法盯串,則支持庫的行為將取決于運(yùn)行應(yīng)用的 Android 版本氯檐。如果框架提供必要的功能,則支持庫將通過調(diào)用框架執(zhí)行任務(wù)体捏。如果應(yīng)用在舊版本的 Android 上運(yùn)行冠摄,且框架未顯示所需的功能,則支持庫自身可能會嘗試提供功能或什么都不做几缭。無論是哪一種情形河泳,應(yīng)用通常都不需要檢查其在哪一版本的 Android 上運(yùn)行,而是通過支持庫執(zhí)行檢查并選擇適當(dāng)?shù)男袨樽嗨尽MǔG闆r下乔询,名稱以?…Compat(如?ActivityCompat)結(jié)束的類即是如此。
而另外一些情況下韵洋,支持庫類提供一個不依賴于任何框架 API 可用性的完整竿刁、獨(dú)立版框架類。這些方法可以在支持的所有平臺中提供一致的行為搪缨。
無論是哪一種情形食拜,應(yīng)用均無需在運(yùn)行期間檢查系統(tǒng)版本。應(yīng)用可通過支持庫類執(zhí)行適當(dāng)?shù)南到y(tǒng)檢查副编,并在必要時修改其行為负甸。
支持一般布局模式
支持庫提供 Android 框架中未提供的用戶界面元素。例如队腐,Android 支持庫提供其他布局類蚕捉,如?DrawerLayout。這些類遵循建議的 Android 設(shè)計做法柴淘;例如迫淹,設(shè)計庫以一種適合多個 Android 版本的方式遵循 Material Design 的原則。
通過使用這些支持庫類为严,您可以避免做一些重復(fù)性工作敛熬;如果應(yīng)用有特殊的用戶界面要求,您可以利用現(xiàn)有代碼第股,這些代碼將提供用戶已經(jīng)熟悉的用戶界面应民。這些元素還可以幫助您開發(fā)看起來像 Android 生態(tài)系統(tǒng)一部分的應(yīng)用。例如夕吻,許多應(yīng)用需要顯示任意長的元素列表诲锹,且需要能夠在列表發(fā)生變化時快速有效地重復(fù)使用這些元素;這可以是電子郵件列表梭冠、聯(lián)系人列表以及音樂專輯列表辕狰,等等。這些應(yīng)用可以使用支持庫?RecyclerView?小部件顯示列表控漠。這既可以讓應(yīng)用開發(fā)者不必從頭開始開發(fā)列表蔓倍,又能確保用戶看到一個外觀和行為與其他應(yīng)用中的列表類似的列表。
支持不同的設(shè)備類型
Android SDK 為 TV 和穿戴式設(shè)備等多種不同的設(shè)備類型提供庫盐捷。應(yīng)用可以通過相應(yīng)的支持庫為各種平臺版本提供功能偶翅,且可以在外部屏幕、揚(yáng)聲器和其他目標(biāo)設(shè)備上提供內(nèi)容碉渡。
一般實(shí)用程序
Android 支持庫提供后向兼容的實(shí)用程序功能聚谁。應(yīng)用可以使用這些實(shí)用程序功能為各種 Android 系統(tǒng)版本提供相應(yīng)的用戶體驗(yàn)。例如滞诺,支持庫的權(quán)限處理方式取決于運(yùn)行應(yīng)用的平臺版本形导。如果平臺支持運(yùn)行時權(quán)限模式环疼,這些方法會向用戶請求相應(yīng)的權(quán)限;在不支持運(yùn)行時權(quán)限模式的平臺版本中朵耕,這些方法將在安裝時檢查是否已獲得相應(yīng)的權(quán)限炫隶。