Edited at

AndroidXへの移行がすぐできたのでまとめ

More than 1 year has passed since last update.


はじめに


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以上にする必要があります。


app.gradle

:

compileSdkVersion 28

Jetpackを使用していないプロジェクトで移行したのですがBeforeのapp.gradleは以下のような状態です。

[Before]

スクリーンショット 2018-10-02 10.08.51.png


ボタン一発変換

Refactor > Migrate to AndroidX で一発変換されました。

スクリーンショット 2018-10-02 10.11.31.png

以下、変換後のapp.gradleです。support-v4などはlegacy扱いとなります。

[After]

スクリーンショット 2018-10-02 10.15.22.png

また、gradle.properties の更新も行ってくれました。

android.enableJetifier=true

android.useAndroidX=true

スクリーンショット 2018-10-02 10.17.47.png


移行されなかったところ

移行後にテストしたところ、

excludeなどでサポートライブラリを指定している箇所は手作業で更新する必要がありました。

公式ドキュメントMigrating to AndroidXにてライブラリを照らし合わせて対応。

スクリーンショット 2018-10-02 10.47.46.png


感想

移行自体はすぐ完了し、動作も現状問題なさげです。

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の読み方だけ覚えると良さげ。