Android Support Library—支援函式庫

作者 | 2017-03-12

Android Support Library-支援函式庫

Android的版本的更新頻率大概是一年兩個版號,每推出一個新版本時,往往會加入一些舊版本沒有的功能,而這些功能都是新加入的類別。因此,假設開發人員使用Android 6.0開發應用程式時使用了新類別,但舊的手機內的版本卻是4.0.3時,在開發完成時,舊版本的手機中並不具有新類別,那怎麼安裝、執行依照新版本所開發的應用程式呢?

Google提供了「Android Support Library」套件包來解決這個問題,用來保証用新版本開發的應用程式可以在舊版本的裝置上正常執行。你可稱它為「Android支援函式庫」,但筆者比較偏好稱為「Android照顧包」,因為它的用途就是用來「照顧」舊版裝置能執行新版的應用程式啊。

Android Support v4支援函式庫

Android的API Level 4的版本對應為Android 1.6版,這個函式庫是為了照顧1.6版與更高版本所設計的,如果你想要向下支援到1.6版的裝置,應該在專案中加入這個函式庫,加入函式庫的方法會在後續內容說明。

所以,如果加入support v4函式庫,代表若「引用正確的類別」就能夠在1.6版以上的裝置正確執行具有新功能的應用程式,如下圖:

Android Support v7支援函式庫

目前Android手機裝置幾乎沒在使用1.6版了,但假設只需要向下支援到Android 2.1(API Level 7),以下就不再支援了。此時,可使用「Android Support v7」支援函式庫,如果不考慮執行裝置為1.6-2.0時,可導入此函式庫達到支援到Android 2.1。

v7函式庫是以v4為基礎設計的,因此v4為v7的依賴項目,因此應用程式開發時,要導入Android Supportv4與v7兩個函式庫,向下相容版本如下圖:

appcompat v7函式庫

支援使用Action Bar與新的使用者介面設計模式所推出的「appcompat v7」是為了要讓Android 2.1(API Level 7)以上的裝置都能正常執行Android 3.0才提出的ActionBar、AppCompatActivity、AppCompatDialog等新類別。

v7 carview函式庫

支援舊版本(Android 2.1以上)能夠使用「CardView」元件,這是Android 5.0開始推出的新版元件,能在如名片般的卡片式方塊中顯示資訊,符合最新的「Marterial設計」規範。

v7 recyclerview函式庫

支援舊版本(Android 2.1以上)能夠使用「RecyclerView」元件,是Android 5.0開始推出的新版元件,提供更有效率地以清單方式顯示大量的資料,需要以清單列表方式顯示數量很多的內容時,使用RecyclerView利用限定的資料項目,並重覆使用這些項目物件,以避免過多資源的耗用。

專案中導入函式庫

可使用工具介面加入或直接修改專案區「Gradle Scripts」下的「build.gradle(Module:app)」,筆者先以工具設定後,再打開該檔案觀察所加入的內容,請點擊功能表的「File/Project Structure」,這是專案架構配置設定工具頁面,如下圖:

在專案架構的左方請先點擊Modules模組內的「app」,再點擊「Dependencies」相依函式庫設定,如下圖:

相依函式庫代表本專案除了內建的類別外,還加入了額外需要的類別庫,目前預設已有「junit」與「com.android.support:appcompat-v7」兩個類別庫,

可按下右方的加號「+」圖示加入新的函式庫,請點擊加號後再點擊「Libaray denpendency」,新增函式庫的選擇畫面如下:

可在最上方輸入欲篩選的字,或直接找到需要的函式庫,上圖為選擇recyclerview v7的例子。

在這畫面中已加入的函式庫會更動到專案的app模組的Gradle設定檔,請在專案區展開「Gradle Scripts」,開啟「build.gradle(Module:app)」檔案,如圖:

在其下方的「dependencies」區塊中,就是本專案會導入的額外函式庫,如下:

使用compile命令,可在本機的Gradle檔案庫中自動導入到專案內,當本機的Gradle檔案庫中沒有這個函式庫時,會自動連到網路上的Maven檔案庫,下載必要的函式庫後,並儲存在本機的使用者家目錄下的「.gradle」子目錄內。

[版權聲明]

本文章版權為湯秉翰所有,授權範圍僅限綠豆湯網站使用,除Facebook之類社群等未更改本文章出處之分享行為不在此限,其他個人或公司未經作者同意,不得任意將本文章內容轉載至其他網站,或以任何形式重製,為以免觸犯著作權法,請尊重作者之智慧財產權。

相關文章:

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *