2021最新中高階Android面試題總結,附相關架構及資料

mb6126472a92b17 2021-09-19 14:35:35 阅读数:292

最新 中高 android

AndroidX的前世今生

Android系統在剛剛面世的時候,可能連它的設計者也沒有想到它會如此成功,因此也不可能在一開始的時候就將它的API考慮的非常周全。隨著Android系統版本不斷地迭代更新,每個版本中都會加入很多新的API進去,但是新增的API在老版系統中並不存在,因此這就出現了一個向下兼容的問題。

舉個例子,當Android系統發布到3.0版本的時候,突然意識到了平板電腦的重要性,因此為了讓Android可以更好地兼容平板,Android團隊在3.0系統(API 11)中加入了Fragment功能。但是Fragment的作用並不只局限於平板,以前的老系統中也想使用這個功能該怎麼辦?於是Android團隊推出了一個鼎鼎大名的Android Support Library,用於提供向下兼容的功能。比如我們每個人都熟知的support-v4庫,appcompat-v7庫都是屬於Android Support Library的,這兩個庫相信任何做過Android開發的人都使用過。

但是可能很多人並沒有考慮過support-v4庫的名字到底是什麼意思,這裏跟大家解釋一下。4在這裏指的是Android API版本號,對應的系統版本是1.6。那麼support-v4的意思就是這個庫中提供的API會向下兼容到Android 1.6系統。它對應的包名如下:

2021最新中高階Android面試題總結,附相關架構及資料_程序員

類似地,appcompat-v7指的是將庫中提供的API向下兼容至API 7,也就是Android 2.1系統。它對應的包名如下:

2021最新中高階Android面試題總結,附相關架構及資料_Android_02

可以發現,Android Support Library中提供的庫,它們的包名都是以**android.support.***開頭的。

但是慢慢隨著時間的推移,什麼1.6、2.1系統早就已經被淘汰了,現在Android官方支持的最低系統版本已經是4.0.1,對應的API版本號是15。support-v4、appcompat-v7庫也不再支持那麼久遠的系統了,但是它們的名字卻一直保留了下來,雖然它們現在的實際作用已經對不上當初命名的原因了。

那麼很明顯,Android團隊也意識到這種命名已經非常不合適了,於是對這些API的架構進行了一次重新的劃分,推出了AndroidX。因此,AndroidX本質上其實就是對Android Support Library進行的一次昇級,昇級內容主要在於以下兩個方面。

第一,包名。之前Android Support Library中的API,它們的包名都是在**android.support.*下面的,而AndroidX庫中所有API的包名都變成了在androidx.*下面。這是一個很大的變化,意味著以後凡是android.*包下面的API都是隨著Android操作系統發布的,而androidx.***包下面的API都是隨著擴展庫發布的,這些API基本不會依賴於操作系統的具體版本。

第二,命名規則。吸取了之前命名規則的弊端,AndroidX所有庫的命名規則裏都不會再包含具體操作系統API的版本號了。比如,像appcompat-v7庫,在AndroidX中就變成了appcompat庫。

資源分享

2021最新中高階Android面試題總結,附相關架構及資料_移動開發_03

2021最新中高階Android面試題總結,附相關架構及資料_移動開發_04

2021最新中高階Android面試題總結,附相關架構及資料_移動開發_05

 CodeChina開源項目:《Android學習筆記總結+移動架構視頻+大廠面試真題+項目實戰源碼》

網上學習 Android的資料一大堆,但如果學到的知識不成體系,遇到問題時只是淺嘗輒止,不再深入研究,那麼很難做到真正的技術提昇。希望這份系統化的技術體系對大家有一個方向參考。

2020年雖然路途坎坷,都在說Android要沒落,但是,不要慌,做自己的計劃,學自己的習,競爭無處不在,每個行業都是如此。相信自己,沒有做不到的,只有想不到的。祝大家2021年萬事大吉。

版权声明:本文为[mb6126472a92b17]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210919143534578u.html