パソコンのこと

Android 16対応とAndroid 17先回り確認

1 Mins read

Android 16対応とAndroid 17先回り確認

結論から言うと、targetSdkVersion を Google Play の要件より低いままアップデートを提出すると、アップロードの時点で拒否される。 ストアに更新を出せなくなるという意味だ。新機能の話ではなく、既存ユーザーへの配信継続とストア掲載維持のための義務対応である。

Google Play は毎年8月31日に targetSdkVersion の最低ラインを1段引き上げてきた。現行(2025年8月〜)では API 35(Android 15)未満のアップデートがすべて拒否される。

施行時期 要件 未対応の場合
2023年8月〜 API 33(Android 13)以上必須 アップロード拒否
2024年8月〜 API 34(Android 14)以上必須 アップロード拒否
2025年8月〜 API 35(Android 15)以上必須 アップロード拒否
2026年8月頃(予測) API 36(Android 16)以上必須 アップロード拒否

(出典:Google Play 対象 API レベル要件

このペースから API 36(Android 16)の強制化は 2026年8月頃が有力視されている。強制化される前に対応を完了させるため、2026年06月を社内の締め切りとして逆算したのがこの記事のスコープだ。Android 17 は Beta 3 で platform stability に到達しているので、同時期に別レーンで先回り確認を回しておくと正式版が来たときに慌てずに済む。

優先順位の整理

項目 期限 優先度 いまやること
targetSdkVersion 36(Android 16)対応 2026年06月まで 最優先 主要導線の回帰、CI 固定、リリース計画確定
Android 17 Beta 3 検証 今から前倒し 高・別レーン emulator と実機で互換性確認、behavior changes 棚卸し
Android 17 新機能採用 正式版以降 低め 影響範囲が小さい箇所から PoC

ツールの足場を先にそろえる

Android 16 対応でも Android 17 先行検証でも、最初に詰まるのは OS の API より build 周りのことが多い。足場を先に固める。

要素 基準 理由
Android Studio Panda 3 stable targetSdkVersion 36 対応の作業足場として安定している
AGP 9.1.0 R8 挙動差・lint 差分を吸収しやすい
JDK 17 AGP 9.1 の前提
Kotlin 2.3.20 安定版の基準をそろえる
plugins {
    id("com.android.application") version "9.1.0" apply false
    id("org.jetbrains.kotlin.android") version "2.3.20" apply false
}

CI の JDK 17 固定・AGP 更新・R8 差分の吸収は、Android 17 の準備を兼ねつつ Android 16 対応を通すための整地でもある。

補足:現場の Kotlin バージョン実態と移行コスト

表の「Kotlin 2.3.20」はあくまで推奨基準。実際の現場では 1.9.x 系がまだ多く残っている。日本の金融・公共・大規模案件は特に保守的で、「安定しているから上げない」判断が長く続きやすい。

下図は JetBrains の公開エコシステムデータおよびコミュニティ観察にもとづく 2026年初時点の推計

現場の Kotlin バージョン分布(2026年初・推計)

(推計値。正確な版別シェアは JetBrains Developer Ecosystem Survey の最新版を参照)

1.9.x から 2.x に上げる場合、Kotlin 単体ではなく Compose・Coroutines・AGP の一括更新になることが多い。K2 コンパイラへの切り替えで型推論の挙動が一部変わり、ビルドエラーが出るケースがある。「今の 1.9.x で動いているアプリを今すぐ上げる必要はない」という判断も現実的な選択肢。

現在の Kotlin Compose Compiler 方式 最低 AGP 升格時の主な注意
1.9.x 従来の compose_compiler_extension_version 8.x 現状維持可。ただし EOL 近い
2.0.x Compose Compiler Plugin(Kotlin plugin に統合) 8.4 以上 Plugin 方式への切り替え必須
2.1.x 同上 8.7 以上 K2 デフォルト化。Compose の安定度最良
2.3.x 同上 9.0 以上 2026年現在の最前線。AGP 9.1 前提

Android 17 で先に押さえたい動作変更

新機能より動作変更のほうが既存アプリへの影響が大きい。全アプリに効く変更に絞って先に確認する。

変更点 影響を受けやすいアプリ 先に確認するところ
usesCleartextTraffic 非推奨化の流れ HTTP を許可しているアプリ全般 検証環境・社内接続を network security config へ切り替え
URI 権限の暗黙付与廃止方向 共有・カメラ・添付ファイル渡しがあるアプリ 明示的な権限付与に書き直し
IME 可視性(回転後)の挙動変化 入力フォームを持つすべての画面 ログイン・申込・検索導線で回帰確認
バックグラウンドオーディオ制約強化 再生・通話・音声通知系アプリ フォアグラウンドサービス移行の要否確認

Android 16 ・17 同時対応のテスト優先度

Android 16 対応と Android 17 先行検証を並行するとき、「どちらの検証に何を必ず遭すべきか」が曖昧になりやすい。下表は「対応済みと見なせる条件」を紏展できるよう、テスト領域ごとの必須・優先度を定義する自分たちの QA 制御記刻として使う。

テスト領域 Android 16 本番 Android 17 先行
ログイン・会員導線 必須 必須
WebView 画面 必須 必須
push / 通知復帰 必須 優先
バックグラウンド処理 必須 優先
MDM / 企業端末制約 優先 優先
Android 16/17 の新機能採用(予測変換・Compose 新 API 等) 後回しでよい 余力があれば

日本の業務アプリに固有のリスク

海外発信の一般的な Android 対応記事ではほぼ触れられないが、日本の金融・公共・会員基盤系アプリには固有の引っかかりどころがある。「Android 16/17 が追加した新機能(通知チャネル変更・権限モデル刷新・Compose 新コンポーネント等)を積極的に取り込む」より「ログイン・決済・通知など既存の主要な画面フローが壊れていないか」を先に確認するプロジェクトは、下表の項目をチェックリストにして先に回すこと。

論点 詰まる理由 先にやる確認
WebView 会員・申込・決済導線でまだ多い 認証、Cookie、リダイレクト、表示崩れ
証明書・企業 Wi-Fi 社内・業務端末で詰まりやすい 通信失敗、証明書更新、社内 NW 動作
MDM 制約 企業配布アプリで影響大 権限、バックグラウンド、配布制御
push / バックグラウンド 会員・金融・運用通知に直結 復帰、遅延、強化後の動作確認
端末更改タイミング 利用者の OS バラつきが大きい 対応 OS 範囲、QA 端末計画の見直し

今やるならこの順番

  1. targetSdkVersion 36(Android 16)を含んだ更新を 2026年06月までにリリースする前提でリリース計画を確定する
  2. Android Studio・AGP・Kotlin・JDK の足場をそろえる
  3. Android 16 の主要導線テストと回帰を先に通す
  4. 並行で Android 17 専用ブランチを切って emulator と実機の検証レーンを立ち上げる
  5. behavior changes を security / media / connectivity から順に確認する
  6. targetSdk 37 を上げた CI を別で回す