理解AndroidX


理解AndroidX

剛剛看到自己加的一個Android群里有人問AndroidX,還是Google自己的,竟然沒聽說過,慌的一匹。趕緊去看了下官方文檔和一些博客,對AndroidX有了如下理解

Android X 是 Jetpack 的一個項目,解決了原來support 包在第三方依賴時的問題。

第三方依賴問題具體案例如下:

假如現在工程A,使用了依賴庫b,在b中依賴了support包 appcompat-v7並且該版本為26; 如果我想不做任何修改的在A中使用appcompat-v7,我只使用版本26。

此時A又依賴一個庫c,該庫使用了appcompat-v7的版本為27,這回作為程序員的我們該哭了吧,沒辦法了,還好gradle在引入庫的時候有個exclude 關鍵字,能夠將依賴庫中指定的代碼(或文件)刪除,因此我們在b或者c庫中選中一個exclude 即可。

使用exclude有一個大前提:兩個版本的appcompat-v7接口是相同的(雖然正常情況下確實是相同的)! 做一個假設,假如v26中有個接口api26.api,並且在b中使用了; v27中直接刪除了api26.api(不是標記了@Deprecated,而是直接刪除了接口代碼),加了api27.api,並且c庫中又好巧的使用api27.api,這樣及時通過exclude 成功打包,我們的apk也是運行不成功的。

AndroidX的出現就解決了上述依賴問題,通過嚴格的 語義化版本控制 ,每個版本的庫都是向下兼容的,並且配合gradle 直接在構建時將v26 v27修改為 當前最新的v28,這樣我們就可以無憂無慮的使用最新版的Jetpack庫了。

更多參考
官方文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM