最近Android Studio 更新到4.0版本后,在構建項目時使用
- android.support.v7.XX
- android.support.v4.XX
發現在xml文件中,原先我最常使用的DrawerLayout變紅了。同時在andriod虛擬機上運行時,發現軟件竟然閃退了。
我不禁陷入了思考。在網絡上沖浪好幾天后,發現原來是android X搞的鬼。
現在在新版本中構建的時候,默認選用android X的形式。
具體情況,可以在app中的build.gradle中查看。
例如你可以看到這些新的依賴:
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'androidTestImplementation
'androidx.test.espresso:espresso-core:3.2.0'
去Google android研發網站查找到了關於Android X的解釋:
AndroidX 對原始 Android 支持庫進行了重大改進,后者現在已不再維護。
androidx 軟件包完全取代了支持庫,不僅提供同等的功能,而且提供了新的庫。
此外,AndroidX 還包括以下功能:
- AndroidX 中的所有軟件包都使用一致的命名空間,以字符串 androidx 開頭。支持庫軟件包已映射到對應的 androidx.* 軟件包。有關所有舊類到新類以及舊構建工件到新構建工件的完整映射,請參閱軟件包重構頁面。
- 與支持庫不同,androidx 軟件包會單獨維護和更新。從版本 1.0.0 開始,androidx 軟件包使用嚴格的語義版本控制。您可以單獨更新項目中的各個 AndroidX 庫。
- 版本 28.0.0 是支持庫的最后一個版本。我們將不再發布 android.support 庫版本。所有新功能都將在 androidx 命名空間中開發。
怎么使用Android X呢?
例如:
把原先的
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
改為
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
就可以了
原先的很多都要去替換。包括在build.gradle、xml文件、java文件中。
具體詳細的替換,請前往谷歌開發者網站查看。
https://developer.android.com/jetpack/androidx/migrate/class-mappings