咱們都知道 Google 在 2014 年 I/O 大會上爲了統一咱們 Android 端 APP 的設計風格,讓 APP 更加美觀,發佈了新的設計語言----Material Design。突出「卡片設計」。基於網格的佈局、響應動畫與過渡、填充、深度效果(如光線和陰影)。android
它是一種設計規範,是設計人員應該去學習的,無關乎用什麼開發語言,你們不要搞混了!api
推出 Material Design
後,Google 在 Android 5.0 上將自家的全部內置應用都使用了 Material Design
的風格來進行設計。樣式很是美觀。bash
雖然樣式很是美觀,可是推出後普及程度很是不理想,特別是在中國,因爲 MaterialDesign
只是一個設計規範,主要是面向 UI 設計師的,UI 設計師應該去學習這種設計風格,而後設計出屬於這種官方推薦的風格的 APP。咱們都知道國內的特殊狀況,Google 一直進不來,手機廠商又有許多,並且彼此不統一,沒有一個很好的管理者,所以碎片化十分嚴重,想要使用 Material Design
這種設計風格來統一全部的 android APP 那幾乎不可能。就如今而言,你問一個 UI 設計師什麼是 Material Design
他們可能都不知道,只知道照搬 iOS 上的 APP 的設計風格而後抄一遍。這裏說的只是國內的狀況。app
固然就算你的 UI 設計師真正懂了 Material Design
出了原型圖了,那麼對於開發者人員來講本身去實現 Material Design
的效果也是很難的。因而 Google 爲了解決這個問題在 2015 年的 I/O 大會上推出了 Design Support
庫,在這個庫將 Material Design
中一些表明性的控件和效果進行了封裝,來幫助開發者完成一個屬於 Material Design
設置風格的 APP佈局
好了,到此爲止 Material Design
的一段歷史就介紹完了,下面開始講下一段歷史了。學習
咱們都知道 Android 在 2008 年發佈了它的第一個正式版本,系統發佈後都是要不斷的進行迭代更新的,新的系統中會加入新的 API,可是這些新加入的 API 在老版本的系統中是沒有的,這個時候若是咱們的 APP 中使用了新版本中加入的 API,那麼運行在新版本系統的手機上是能夠的,若是在低版本的手機上就會出問題了,爲了兼容低版本手機。推出了 Android Support Library
庫,一些後來添加的 api或者補充的內容都會放到 support
庫中,注意 support
庫不是一個庫,它也有多個拆分,按需引入就能夠了。好比,若是你須要上面的 Material Design
一些風格的庫,就能夠引入 com.android.support:design
這個庫,這個裏面包括了全部與 Material Design
相關的控件內容。固然我還能夠單獨引入具體的某個控件。再好比:support-v4
supoprt-v7
這些庫都是屬於 Android Support Library
庫的。動畫
最初的時候 v4
v7
這些數字都是表示系統能夠兼容到 api
版本多少,好比 v4
表示能夠兼容到 api 4
對應的 Android 系統版本就是 1.6 。現現在這些早已過期了,從支持庫版本 26.0.0 (2017年7月)開始,對於大多數庫軟件包支持的最低 API 級別已經提高到 Android 4.0(API 14)了。因此 v4
這個數字的意義也不是原先的意義了。關於支持庫的更多內容:developer.android.com/topic/libra…google
須要注意一點的是支持庫也是有對應的版本號的spa
通常添加支持庫的時候格式都是這樣的 implementation 'com.android.support:xxxx:版本號'
設計
好比:
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:appcompat-v7:26.1.0'
複製代碼
爲了解決 support
上面的問題,在 2018 Google I/O 大會上推出了 AndroidX 來替換了 Android Support Library
。在 Android 9.0 (API級別 28) 正式發佈後,新版本的支持庫 AndroidX
就誕生了。它屬於 Jetpack,除了現有的支持庫之外,AndroidX 庫還包含了最新的 JetPack 組件,在 Api27及更早版本,依然可使用 Support Library
可是以後新開發的全部庫都將在 AndroidX 庫中進行了。
所以 AndroidX 庫是 Support Library
庫的替換,在 API 28 及之後就要使用 AndroidX 庫來完全替換 Support Library
庫了。注意千萬不要二者都出現,必定要作到統一 這裏重磅推出 com.google.android.material:material:1.1.0
這個庫,這個庫就對應了咱們上面介紹的 Material Design
的 design
支持庫了,爲何要單獨強調這個庫呢!由於這個新加的庫太強大了!能夠認爲是 design
庫的升級版,裏面的控件比以前design
中的使用起來更加的順手!好了上面介紹那麼多主要是爲了引入這個庫的。以後會詳細來講 material:material
這個庫的!
AndroidX 和 原先的 Support Library
都有對應的關係如上圖,具體看:developer.android.com/jetpack/and…
關於 AndroidX 的版本號查看:developer.android.com/jetpack/and…
最後注意:若是你的項目的 compileSdkVersion 是28的話,支持庫就別再用 Support Library 了,要換成 AndroidX 重中之重的是若是換成了 AndroidX 依賴後,裏面就千萬不要再出現 support 這樣的庫了