Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AndroidXに移行するために
Search
syarihu
July 26, 2018
Technology
5
17k
AndroidXに移行するために
potatotips #53で発表した資料です。
syarihu
July 26, 2018
Tweet
Share
More Decks by syarihu
See All by syarihu
Recap #io25 What's new in Google Play
syarihu
0
81
[DroidKaigi 2024] Android ViewからJetpack Composeへ 〜Jetpack Compose移行のすゝめ〜 / From Android View to Jetpack Compose: A Guide to Migration
syarihu
4
4.5k
[shibuya.apk #46] Composableの枠を超えてアニメーションする / Animation beyond Composable
syarihu
0
82
[shibuya.apk #41] Jetpack Composeでグリッドに柔軟にスペースを入れたい
syarihu
0
3.5k
[DroidKaigi 2022] 詳解Google Playの新しい定期購入 ~オファーの活用や実装例を添えて~
syarihu
0
3.9k
5分で分かるGoogle Playの新しいサブスクリプション / Google Play new subscription 2022
syarihu
1
1.9k
[DroidKaigi 2021] Google Play 定期購入 比例配分モード完全攻略ガイド / Google Play Subscription Proration Mode Complete Guide
syarihu
1
8k
[Money Forward Tech Drive] What's new in Google Play [Recap #io21]
syarihu
0
600
[Android 11 Meetups] Google Play Commerce からのアップデート / Android 11 Meetups Google Play Commerce
syarihu
4
2.9k
Other Decks in Technology
See All in Technology
スクラムを一度諦めたチームにアジャイルコーチが入ってどう変化したか
kyamashiro73
0
120
スクラムマスターが スクラムチームに入って取り組む5つのこと - スクラムガイドには書いてないけど入った当初から取り組んでおきたい大切なこと -
scrummasudar
0
1k
Everything As Code
yosuke_ai
0
480
RALGO : AIを組織に組み込む方法 -アルゴリズム中心組織設計- #RSGT2026 / RALGO: How to Integrate AI into an Organization – Algorithm-Centric Organizational Design
kyonmm
PRO
3
480
AI時代のアジャイルチームを目指して ー スクラムというコンフォートゾーンからの脱却 ー / Toward Agile Teams in the Age of AI
takaking22
9
2.5k
戰略轉變:從建構 AI 代理人到發展可擴展的技能生態系統
appleboy
0
180
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.4k
Master Dataグループ紹介資料
sansan33
PRO
1
4.2k
Keynoteから見るAWSの頭の中
nrinetcom
PRO
1
160
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
290
AWS re:Invent2025最新動向まとめ(NRIグループre:Cap 2025)
gamogamo
0
150
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.6k
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
160
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
37
New Earth Scene 8
popppiees
0
1.3k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
0
990
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.9k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
400
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
120
It's Worth the Effort
3n
187
29k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
0
50
We Have a Design System, Now What?
morganepeng
54
8k
The SEO Collaboration Effect
kristinabergwall1
0
320
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
58
Transcript
AndroidXに移行するために 2018/07/26 (Thu) potatotips #53 @syarihu
Taichi Sato (@syarihu) • Money Forward, Inc. ◦ Android Engineer
• TechBooster
Support Library
Support Library • Android Framework の API に下位互換性 を保つために 7
年以上前から開発されて いる • さまざまな機能が含まれている ◦ 端末固有の UX ◦ デバッグ ◦ テスト ◦ その他ユーティリティ
Support Library • 現在ほとんどの Android アプリで Support Library が導入されている •
長年のアップデートによるライブラリの成 長が開発者に混乱をもたらしている ◦ サポートされているのは v14 以降だけ ど、パッケージ名は v7 など
AndroidX
AndroidXとは • Android の新しい拡張機能ライブラリ • Support Library は v28 で終了し、今後は
AndroidX に移行する必要がある • AndroidX のバージョンは v1.0.0 から 新たに始まる ◦ 2018 年 7 月現在の最新は beta01 • パッケージ名も androidx になる
android.*とandroidx.* • android.* ◦ プラットフォームにバンドルされている API • androidx.* ◦ すべての
Android バージョンで可能な 限り一貫して動作する機能を提供する
AndroidXへの移行
AndroidXへの移行 • AndroidX への移行には移行ツールが 用意されている • 試しに Money Forward の
Android アプリ を AndroidX に移行してみる
build.gradle buildscript { dependencies { classpath "com.android.tools.build:gradle:3.3.0-alpha03"
app/build.gradle android { compileSdkVersion 28 buildToolsVersion "28.0.0"
いざビルド!
None
None
None
shortcuts.xml • App Shortcuts のための設定ファイル • Build Variants によってパッケージ名を分けてお り、
shortcuts.xml 内に記述するパッケージ名をビ ルド後のファイルを replace することで動的に切り替 えられるようにしていた
aapt2 • Android Asset Packaging Tool 2.0 • リソース処理の改善 •
Android Gradle Plugin 3.0.0 からデフォルトで有効 ◦ android.enableAapt2=false で無効にできた • Android Gradle Plugin のアップデートにより enableAapt2 のプロパティが削除された
aapt2 • リソースの出力が生の xml ファイルではなく、圧縮 された flat ファイルが生成される • そのため、
shortcuts.xml を動的に変更することが できなくなった • パッケージごとに手動で shortcuts.xml を 作らないとダメそう …
とりあえず動的変更部分を 修正することで回避…
Migrate to AndroidX
Migrate to AndroidX • Android Studio 3.2 Canary 14 以降で利用できる
Android X への移行ツール • 今回は Android Studio 3.3 Canary 3 を使用
Refactor -> Migrate to AndroidX…
None
None
いざビルド!
* 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
android.useAndroidX=true android.enableJetifier=true gradle.properties
enableJetifier • AAR/JAR のマイグレーションツール • ライブラリ内部で使用されている Support Library などを AndroidX
に置き換えてく れる • エラー出たライブラリ内部で利用されている Support Library がうまく置き換え出来なかったぽ い
とりあえずエラー出たライブラリを 使わないようにして回避…
もう一回ビルド!
/app/build/generated/source/kapt/xxxxx/xxxxx/DeepLinkDelegate.java:8: エラー : シンボルを見つけられません import android.support.v4.app.TaskStackBuilder; ^ シンボル : クラス
TaskStackBuilder 場所 : パッケージ android.support.v4.app
DeepLinkDispatch • このライブラリが自動生成する java ファイルが Support Library のクラスを出力してしまっていたた めにエラーが発生していた
https://github.com/airbnb/DeepLinkDispatch/issues/222
https://github.com/airbnb/DeepLinkDispatch/pull/223
PRは上がってたけどCI周りの問題が あるっぽく、6月から何も動いてなかった…
\(^o^)/
AndroidX移行差分 • 今回ビルドは通せませんでしたが、参考程度に …
まとめ • Android X への移行には Android Studio の移行 ツールを使う •
compileSdkVersion 28 以上必須なので、 27 以下のアプリはその対応も必要 ◦ 特に 25 -> 26 へ上げるのが大変なので早めに やっておいたほうがよい ◦ どちらにせよ今後のアップデートでは必須
まとめ • 移行ツールを使っても、手直しはだいたい 必要になる
まとめ • 特に OSS をたくさん利用している プロジェクトは注意! ◦ 今回紹介した以外にも問題はたくさん出てくる と予想できる ◦
利用している OSS が AndroidX 対応していない 場合はコントリビュートの機運 … ?
まとめ • 正式リリースはまだだが、 Beta が出ているためそろそろ準備をしておいたほ うがよさそう ◦ 少なくとも、とりあえず試しにやってみて、どれく らい工数がかかりそうかは見ておいたほうがよさ そう
コントリビュートもできるらしい • AOSP AndroidX Contribution Guide ◦ https://android.googlesource.com/platform/framewo rks/support/+/androidx-master-dev/README.md https://twitter.com/yuichi_araki/status/1021607877801168896?s=21
参考資料 • Google Developers Japan: AndroidX の紹介 https://developers-jp.googleblog.com/2018/05/hello-world-androidx.h tml
ありがとうございました