Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AndroidXに移行するために

syarihu
July 26, 2018

 AndroidXに移行するために

potatotips #53で発表した資料です。

syarihu

July 26, 2018
Tweet

More Decks by syarihu

Other Decks in Technology

Transcript

  1. Support Library • Android Framework の API に下位互換性 を保つために 7

    年以上前から開発されて いる • さまざまな機能が含まれている ◦ 端末固有の UX ◦ デバッグ ◦ テスト ◦ その他ユーティリティ
  2. Support Library • 現在ほとんどの Android アプリで Support Library が導入されている •

    長年のアップデートによるライブラリの成 長が開発者に混乱をもたらしている ◦ サポートされているのは v14 以降だけ ど、パッケージ名は v7 など
  3. AndroidXとは • Android の新しい拡張機能ライブラリ • Support Library は v28 で終了し、今後は

    AndroidX に移行する必要がある • AndroidX のバージョンは v1.0.0 から 新たに始まる ◦ 2018 年 7 月現在の最新は beta01 • パッケージ名も androidx になる
  4. android.*とandroidx.* • android.* ◦ プラットフォームにバンドルされている API • androidx.* ◦ すべての

    Android バージョンで可能な 限り一貫して動作する機能を提供する
  5. shortcuts.xml • App Shortcuts のための設定ファイル • Build Variants によってパッケージ名を分けてお り、

    shortcuts.xml 内に記述するパッケージ名をビ ルド後のファイルを replace することで動的に切り替 えられるようにしていた
  6. aapt2 • Android Asset Packaging Tool 2.0 • リソース処理の改善 •

    Android Gradle Plugin 3.0.0 からデフォルトで有効 ◦ android.enableAapt2=false で無効にできた • Android Gradle Plugin のアップデートにより enableAapt2 のプロパティが削除された
  7. aapt2 • リソースの出力が生の xml ファイルではなく、圧縮 された flat ファイルが生成される • そのため、

    shortcuts.xml を動的に変更することが できなくなった • パッケージごとに手動で shortcuts.xml を 作らないとダメそう …
  8. Migrate to AndroidX • Android Studio 3.2 Canary 14 以降で利用できる

    Android X への移行ツール • 今回は Android Studio 3.3 Canary 3 を使用
  9. * What went wrong: A problem occurred configuring project ':app'.

    > Could not resolve all files for configuration':app:xxxxxxxxxxCompileClasspath'. > Failed to transform file 'xxxxxxxxxx.aar' to match attributes {artifactType=processed-aar}using transform JetifyTransform > Failed to transform
  10. enableJetifier • AAR/JAR のマイグレーションツール • ライブラリ内部で使用されている Support Library などを AndroidX

    に置き換えてく れる • エラー出たライブラリ内部で利用されている Support Library がうまく置き換え出来なかったぽ い
  11. まとめ • Android X への移行には Android Studio の移行 ツールを使う •

    compileSdkVersion 28 以上必須なので、 27 以下のアプリはその対応も必要 ◦ 特に 25 -> 26 へ上げるのが大変なので早めに やっておいたほうがよい ◦ どちらにせよ今後のアップデートでは必須