はじめに
AndroidX
AndroidXとは今までのSupport Libraryを代替するAndroid拡張機能ライブラリのオープンソースプロジェクトです。
Google I/O 2018の発表を見てみると"AndroidX"の読み方は"アンドロイドエックス"です。
注意点として、iPhone X (アイフォーン テン)のような新機種の名称ではありません。
テンでもありません。
また、Android-x86プロジェクトとは別物です。
細かい箇所ですが書くときはAndroid KTXのようなスペースはいれないようです。
(Android KTXはAndroidXの一部となるようです)
公式記事
公式ドキュメントは以下です。
AndroidX Overview
https://developer.android.com/jetpack/androidx/
Migrating to AndroidX
https://developer.android.com/jetpack/androidx/migrate
導入に関する公式ブログ記事は以下です。
Hello World, AndroidX
https://android-developers.googleblog.com/2018/05/hello-world-androidx.html
AndroidX の紹介 (上記の日本語版)
https://developers-jp.googleblog.com/2018/05/hello-world-androidx.html
移行してみた
2018年9月24日にAndroid Studio 3.2が公開されました。
Android Studio 3.2にはAndroidX移行機能があるのでこちらを使用します。
前提としてSDKのVersionは28以上にする必要があります。
:
compileSdkVersion 28
Jetpackを使用していないプロジェクトで移行したのですがBeforeのapp.gradleは以下のような状態です。
ボタン一発変換
Refactor > Migrate to AndroidX
で一発変換されました。
以下、変換後のapp.gradleです。support-v4などはlegacy扱いとなります。
また、gradle.properties
の更新も行ってくれました。
android.enableJetifier=true
android.useAndroidX=true
移行されなかったところ
移行後にテストしたところ、
excludeなどでサポートライブラリを指定している箇所は手作業で更新する必要がありました。
公式ドキュメントMigrating to AndroidXにてライブラリを照らし合わせて対応。
感想
移行自体はすぐ完了し、動作も現状問題なさげです。
Material Designだけandroidxパッケージではなくcom.google.materialなので手動で置換する場合は注意です。
旧 | 新 |
---|---|
android.support.** | androidx.@ |
android.databinding.** | androidx.databinding.@ |
android.design.** | com.google.android.material.@ |
android.support.test.** | (将来のリリース)androidx.test.@ |
とりあえずAndroidXの読み方だけ覚えると良さげ。