推廣AndroidX,人人有責。

天星技術團隊發表於2019-03-02

作者:點先生 時間:2019.3.2

閒言

講道理,上個月26號我應該釋出一篇文章的,但是你懂的,過年嘛。一年才一次,多珍貴呀。於是就偷懶休息了。這篇遲來的文章,算是補上2月沒寫的。3月26依然會出新的文章。2月的,就這麼先水一下吧。 (悄悄話:我可比天星團隊裡面其他人好多了,2月他們也沒寫,但好歹我補上了呀!理直氣壯.jpg!)

推廣AndroidX,人人有責。

AndroidX是啥

過年我也不是一直閒著,就忙著複習,準備跳槽。途中瞭解到了AndroidX

推廣AndroidX,人人有責。

簡單的說,AndroidX是Android Support Library的改進版,以後新的東西只會更新再AndroidX中,support庫會逐漸被放棄。 這可能是個好訊息,不用再糾結用v4還是v7了,統統改為X。但現在並不推薦使用在商業開發中,自己玩玩就好。

如何使用AndroidX

  1. 確保你的AS在3.2版本或3.2之上;
  2. compileSdkVersion 至少28(android 9.0);
  3. 在gradle.properties中設定"android.useAndroidX=true", "android.enableJetifier=true" (useAndroidX:是否使用androidX的庫,false時使用support庫。 enableJetifier:是否讓第三方庫也自動使用androidX)
  4. 選單欄選擇Refactor > Migrate to AndroidX

注意事項:如果你正在使用Android KTX模組,請確保更新你的依賴項以避免遷移問題。有關每個模組的最新版本,請參見 Android KTX。 遷移成功後具體的包名參見官方文件

遷移後可能出現的問題

問題:在我將以前寫的demo遷移到androidX之後,發現有些包並匯入不進去。檢查了包名是正確的,但就是匯入失敗。
解決辦法:將要extends/implements的類裡面引用的包刪除一次,讓AS自動匯入。再將package包名刪除,儲存一下,再重新寫包名。這樣處理一次,就能被別的類引用了。

問題:不是所有第三方庫都支援anroidX。
解決辦法:不用擔心,現在常用的大多數庫都已經支援androidX了。使用androidX是一種趨勢,這還需要程式設計師們的共同推廣。全民androidX的時候,這個問題就不是問題了。

遷移後還有其他問題的同學歡迎在文章下留言,我會盡力解答

我的AndroidX專案

我之前有寫一篇關於Clean框架的demo,現在我將它升級成了androdX版本。
新版地址:AndroidXCleanDemo https://github.com/GuitarDian/AndroidXCleanDemo

相關文章