Help us understand the problem. What is going on with this article?

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

keidroid
主にスマホ周り(Kotlin/Swift/Unity/Flutter)の記事を書きます。 YouTubeにはんぶん移行中です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away