GoogleがAndroid 17 Beta 3をリリース!Pixel 6以降で利用可能に

Googleは26日(現地時間)、スマートフォン(スマホ)やタブレットなど向けプラットフォーム「Android」の次期バージョン「Android 17(開発コード名:Cinnamon Bun)」( https://developer.android.com/about/versions/17 )における一般向けベータ版の第3弾「Android 17 Beta 3」を公開したとお知らせしています。

すでに同社が展開する「Pixel」ブランドの「Pixel 6」および「Pixel 6 Pro」以降のスマートフォン(スマホ)やタブレット「Pixel Tablet」にて「Android Beta Program」( https://g.co/androidbeta )からネットワーク経由によるソフトウェア更新(OTA)で導入できるほか、ファクトリーイメージやOTAイメージも配信開始されています。なお、Android 17 Betaについてはこれまで通りにPixelスマホ以外の他のメーカーの製品についても今後順次、各メーカーから提供される見込みです。

Android 17 Beta 3はビルド番号が各機種共通の「CP21.260306.017」で、Androidセキュリティーパッチレベルが「2026-03-05」となっています。またGoogle Play servicesも「26.02.35」となっているほか、APIレベルはAndroid 17 Beta 1に続いて「API Level 37」となっています。またPixel製品以外でもAndroidエミュレーターでも試せ、エミュレーターではx86(64bit)およびARM(v8-A)がサポートされています。

同社では昨年のAndroid 16から早めにリリースしてその年の後半に新たなAPIと機能を含むSDKを追加するマイナーバージョンアップを行うようにしており、今年も2026年第2四半期(Q2:4〜6月)にAndroid 17がリリースされ、2026年第4四半期(Q4:10〜12月)にマイナーバージョンアップをリリースする予定となっています。なお、以前はベータ版の前に開発者向けプレビュー版(Developer Preview)をリリースしていましたが、Androidではアルファ版として先行してリリースされるAndroid Canaryを提供開始しており、こちらに置き換えられています。

Android Canaryでは内部テストに合格するとすぐに導入されるため、四半期ごとのリリースを待たずに新しいAPIと機能を試せ、早期のテストによって新しいAPIと機能の変更が加わり、最終版に近づいたより洗練され、安定性の高いベータ版の体験が実現しているほか、ベータ版と同じようにネットワーク経由によるソフトウェア更新が提供されており、独立したアップデートチャネルとしてCIワークフローとの統合が容易で、今後の潜在的な変更に関する即時フィードバックを提供する最も早い機会が提供されるといったメリットがあります。

02

Android 17は現在の最新バージョンの「Android 16」の次のメジャーアップデートとなる予定のバージョンで、Googleでは2024年に正式版をリリースしたAndroid 15までは基本的に新しいAPIとSDKを伴う1年に1回のペースでメジャーアップデートを実施してきましたが、前述通りに昨年からSDKのリリースをより頻繁に行うことが明らかにされ、2025年は新しいAPIを備えたメジャーリリースとなるAndroid 16の正式版が2025年6月にリリースされ、追加のAPIや機能を含むマイナーリリースを2025年12月にリリースしました。

今年も同様に2026年Q2にAndroid 17の正式版がリリースされ、2026年Q4にマイナーリリースがリリースされる予定です。Android 17(API Level 37)ではアダプティブ ロードマップの次のフェーズに移行し、大画面機種(sw>600dp)での方向とサイズ変更の制限に関する開発者のオプトアウトが削除され、アプリがSDK 37をターゲットとする場合に適応性を備えていなければならず、例えば、タブレットでのマルチタスクやウィンドウなどの使用などで無駄なスペースを埋め、姿勢を尊重することが期待されます。

03
Android 17のベータ版および正式版の主なリリーススケジュール


04
Android 17の後に今年後半にはマイナーリリースも実施される見込み

Android 17では引き続いてプライバシーやセキュリティー、そして洗練されたパフォーマンスを最優先するプラットフォームの構築に向けた取り組みを継続しており、今回のAndroid 17 Beta 3は初の安定版(Platform Stability)となりました。これにより、APIがロックされ、最終的な互換性テストを実施してAndroid 17向けアプリをGoogle Playストアに公開できるようになります。さらにAndroid 17 Beta 3ではより優れた、より安全で高度に統合されたアプリの構築を支援する多数の新機能が追加されています。

<メディアとカメラの機能強化>
⚪︎写真選択ツールのカスタマイズオプション
Android 17ではアプリのユーザーインターフェイス(UI)に合わせて写真ピッカーの視覚的な表示をカスタマイズできるようになりました。新しいPhotoPickerUiCustomizationParams APIを活用することによってグリッドビューのアスペクト比を標準の1:1の正方形から9:16の縦長表示に変更できます。

05

この柔軟性は ACTION_PICK_IMAGES インテントと埋め込み写真ピッカーの両方に適用され、利用者がメディアを操作する際に統一感のあるデザインを維持できます。これはすべてプライバシー保護機能を備えたAndroidフォトピッカーをアプリ体験にシームレスに統合するための取り組みの一環で、フォトピッカーをアプリに直接組み込んで最もネイティブな体験を実現する方法については https://android-developers.googleblog.com/2026/01/httpsandroid-developers.googleblog.com202506android-embedded-photo-picker.html%20.html をご覧ください。

val params = PhotoPickerUiCustomizationParams.Builder()
.setAspectRatio(PhotoPickerUiCustomizationParams.ASPECT_RATIO_PORTRAIT_9_16)
.build()

val intent = Intent(MediaStore.ACTION_PICK_IMAGES).apply {
putExtra(MediaStore.EXTRA_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS, params)
}

startActivityForResult(intent, REQUEST_CODE)

・RAW14画像フォーマットのサポート:Android 17では新しいImageFormat.RAW14定数を介してハイエンドデジタル写真の事実上の業界標準であるRAW14画像フォーマットのサポートが導入されました。RAW14は1ピクセルあたり14ビットのシングルチャンネルフォーマットで、連続する4ピクセルごとに7バイトにパックされる高密度レイアウトを使用します。

・ベンダー定義のカメラ拡張機能:Android 17ではベンダー定義の拡張機能が追加され、ハードウェアパートナーがカスタムカメラ拡張モードを定義および実装して「スーパー解像度」や最先端のAI駆動型機能強化などの最高かつ最新のカメラ機能を利用できるようになります。これらのモードはisExtensionSupported(int) APIを使用して照会できます。

・カメラデバイスタイプAPI:Android 17の新しいAPIを使用すると、基盤となるデバイスタイプを照会してカメラが内蔵ハードウェア、外部USBカメラ、仮想カメラのいずれであるかを識別できます。

⚪︎Bluetooth LEオーディオ補聴器サポート
Android 17ではBluetooth Low Energy(BLE)オーディオ補聴器専用の製品カテゴリーが追加されました。AudioDeviceInfo.TYPE_BLE_HEARING_AID定数が追加されたことによってアプリは補聴器と通常のヘッドセットを区別できるようになりました。

val audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager
val devices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)
val isHearingAidConnected = devices.any { it.type == AudioDeviceInfo.TYPE_BLE_HEARING_AID }

⚪︎補聴器向けのきめ細かな音声ルーティング
Android 17では利用者が特定のシステムサウンドの再生場所を個別に管理できるようになりました。通知音や着信音、アラーム音を接続された補聴器または内蔵スピーカーのいずれかにルーティングするように選択できます。

⚪︎拡張HE-AACソフトウェアエンコーダ
Android 17ではシステム提供のExtended HE-AACソフトウェアエンコーダーが導入されました。このエンコーダーは統一された音声およびオーディオコーディングを使って低ビットレートと高ビットレートの両方をサポートします。またエンコーダーにはMediaCodec APIを使用して名前を指定するc2.android.xheaac.encoderか、audio/mp4a-latmMIMEタイプを照会することでアクセスできます。

val encoder = MediaCodec.createByCodecName("c2.android.xheaac.encoder")
val format = MediaFormat.createAudioFormat(MediaFormat.MIMETYPE_AUDIO_AAC, 48000, 1)
format.setInteger(MediaFormat.KEY_BIT_RATE, 24000)
format.setInteger(MediaFormat.KEY_AAC_PROFILE, MediaCodecInfo.CodecProfileLevel.AACObjectXHE)
encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)

<パフォーマンスとバッテリー性能の向上>
アイドル状態時のアラームを許可するリスナーサポートによってウェイクロックを削減します。Android 17ではAlarmManager.setExactAndAllowWhileIdleの新しいバリアントが導入され、PendingIntentの代わりにOnAlarmListenerを受け入れるようになりました。この新しいコールバックベースのメカニズムは、ソケット接続を維持するメッセージングアプリなど、定期的なタスクを実行するために継続的なウェイクロックに依存しているアプリに最適です。

val alarmManager = getSystemService(AlarmManager::class.java)
val listener = AlarmManager.OnAlarmListener {
// Do work here
}

alarmManager.setExactAndAllowWhileIdle(
AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 60000,
listener,
null
)

<プライバシーに関する最新情報>
⚪︎位置情報ボタンが導入
Android 17ではAndroid Jetpackライブラリを使用してアプリのレイアウトに直接埋め込むことができるシステムレンダリングされたシステム提供の位置情報ボタンが導入されます。利用者がこの位置情報ボタンをタップすると、アプリは現在のセッションのみ、正確な位置情報へのアクセス権を取得します。これを実装するにはUSE_LOCATION_BUTTON パーミッションを宣言する必要があります。

位置情報ボタンはJetpackライブラリとして提供されるため、他のJetpackビュー実装と同様に既存のアプリレイアウトに簡単に統合でき、正確な位置情報へのアクセス許可を求める方法も簡素化されます。さらにJetpackライブラリを使用して位置情報ボタンを実装すると、Android 16以前の製品で利用者がタップした際に既存の位置情報プロンプトがデフォルトで表示されるため、下位互換性も自動的に確保されます。詳細は https://android-developers.googleblog.com/2026/03/location-privacy.html をご参照ください。

06

⚪︎タッチキーボードと物理キーボードそれぞれに対応した個別のパスワード表示設定
この機能によって既存の「パスワードを表示」システム設定がタッチ操作による入力用と物理キーボード(ハードウェア)による入力用の2つの設定に分割されます。物理キーボードで入力された文字はデフォルトで即座に非表示になります。

val isPhysical = event.source and InputDevice.SOURCE_KEYBOARD == InputDevice.SOURCE_KEYBOARD
val shouldShow = android.text.ShowSecretsSetting.shouldShowPassword(context, isPhysical)

<セキュリティー>
⚪︎強制的な読み取り専用の動的コード読み込み
ードインジェクション攻撃に対するセキュリティーを強化するため、Android 17では動的にロードされるネイティブライブラリは読み取り専用にする必要があるようになりました。アプリがAndroid 17以降をターゲットとする場合にはSystem.load()を使用してロードされるすべてのネイティブファイルは事前に読み取り専用としてマークする必要があります。

val libraryFile = File(context.filesDir, "my_native_lib.so")
// Mark the file as read-only before loading to comply with Android 17+ security requirements
libraryFile.setReadOnly()

System.load(libraryFile.absolutePath)

⚪︎ポスト量子暗号(PQC)ハイブリッドAPK署名
量子コンピューティングの将来的な進歩に備えるため、Androidは新しいv3.2 APK署名スキームを通じてポスト量子暗号(PQC)のサポートを導入します。このスキームは従来の署名とML-DSA署名を組み合わせたハイブリッド方式を採用しています。

<ユーザーエクスペリエンス(UX)とシステムUI>
⚪︎外部ディスプレイ上のウィジェットのサポートを改善
この機能によってDPまたはSP単位を使用してピクセル密度が異なる接続済みディスプレイまたは外部ディスプレイにアプリウィジェットを表示する際の視覚的な一貫性が向上します。

val options = appWidgetManager.getAppWidgetOptions(appWidgetId)
val displayId = options.getInt(AppWidgetManager.OPTION_APPWIDGET_DISPLAY_ID)

val remoteViews = RemoteViews(context.packageName, R.layout.widget_layout)
remoteViews.setViewPadding(
R.id.container,
16f, 8f, 16f, 8f,
TypedValue.COMPLEX_UNIT_DIP
)

⚪︎ホーム画面に隠されたアプリラベル
Android 17ではホーム画面のワークスペースでアプリ名(ラベル)を非表示にする設定が利用できるようになりました。アプリのアイコンは他と区別しやすく、すぐに認識できるものにしてください。

07

⚪︎デスクトップインタラクティブピクチャーインピクチャー
従来のピクチャー・イン・ピクチャー(PiP)とは異なり、これらの固定されたウィンドウはデスクトップモードで他のアプリウィンドウの上に常に表示されたまま操作性を維持します。

val appTask: ActivityManager.AppTask = activity.getSystemService(ActivityManager::class.java).appTasks[0]
appTask.requestWindowingLayer(
ActivityManager.AppTask.WINDOWING_LAYER_PINNED,
context.mainExecutor,
object : OutcomeReceiver<Int, Exception> {
override fun onResult(result: Int) {
if (result == ActivityManager.AppTask.WINDOWING_LAYER_REQUEST_GRANTED) {
// Task successfully moved to pinned layer
}
}
override fun onError(error: Exception) {}
}
)

⚪︎画面録画ツールバーを再設計しました
画面録画ツールバーが新しくなります。

08

<コア機能>
VPNアプリの除外設定
新しいACTION_VPN_APP_EXCLUSION_SETTINGSインテントを使用することによってアプリはシステム管理の設定画面を起動し、利用者がVPNトンネルをバイパスするアプリケーションを選択できるようになります。

val intent = Intent(Settings.ACTION_VPN_APP_EXCLUSION_SETTINGS)
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
}

⚪︎OpenJDK 25および21のAPIアップデート
今回のアップデートではOpenJDK 21およびOpenJDK 25の多くの機能と改良点が盛り込まれており、最新のUnicodeサポートやTLSにおける名前付きグループに対する強化されたSSLサポートなどが含まれています。

その他、Android 17向けアプリをテストするにはGoogle Playなどを使って本番環境用アプリまたはライブラリやエンジンを利用したテスト用アプリをAndroid 17 Beta 3を実行している製品またはエミュレーターにインストールし、アプリのすべてのフローを確認して機能面またはUIの問題を探し、動作の変更点を確認してテストの焦点を絞ります。なお、Androidの各リリースにはプライバシーやセキュリティー、全体的なユーザーエクスペリエンス(UX)を向上させるプラットフォームの変更が含まれており、これらの変更はアプリに影響を与える可能性があります。注目すべき変更点をいくつか以下に示します。

・大画面でのサイズ変更:Android 17をターゲットにすると、大画面での向き、サイズ変更、アスペクト比の制約を維持するオプションを無効にすることはできなくなります。
・動的コード読み込み:アプリがAndroid 17以降をターゲットとしている場合、Android 14でDEXファイルとJARファイル向けに導入されたより安全な動的コード読み込み(DCL)保護機能がネイティブライブラリにも適用されるようになりました。System.load()を使用して読み込まれるすべてのネイティブファイルは読み取り専用としてマークする必要があります。そうでない場合、システムはUnsatisfiedLinkErrorをスローします。
・証明書の透明性(CT)をデフォルトで有効にする:証明書の透明性(CT)はデフォルトで有効になっています。Android 16ではCTは利用可能でしたが、アプリ側で有効化する必要がありました。
・ローカルネットワークの保護:Android 17以降を対象とするアプリではローカルネットワークへのアクセスがデフォルトでブロックされています。可能であればプライバシー保護機能付きのピッカーを使用するように切り替え、広範囲かつ永続的なアクセスには新しいACCESS_LOCAL_NETWORKを使用してください。

またAndroid 17のベータ版は開発者がAndroid 17に対応させるために導入するほか、新たにAndroid 17を早期に試したい人も導入して新機能などを体験でき、さまざまな変更が行われているため、それらの影響を完全に把握するには多くの人からフィードバックが不可欠だとし、Googleでは試した人はフォードバックを送るように要望しています。一方、開発者はAndroid 17で最高の開発体験を実現するには「Android Studio(Panda)」の最新プレビュー版の利用が推奨されています。Android Studio(Panda)の導入した場合には以下の点にご注意ください。

・新しいSDKに対してコンパイルしてCI環境でテストし、フィードバックページのトラッカーで問題を報告してください。
・現在のアプリの互換性をテストしてアプリがAndroid 17の変更によって影響を受けるかどうかを確認し、Android 17を実行している端末またはエミュレータにアプリをインストールして徹底的にテストしてください。



記事執筆:memn0ck


■関連リンク
エスマックス(S-MAX)
エスマックス(S-MAX) smaxjp on Twitter
S-MAX - Facebookページ
Android 17 関連記事一覧 - S-MAX
Android Developers Blog: The Third Beta of Android 17
Android Developers Blog: Redefining Location Privacy: New Tools and Improvements for Android 17
Android 17| Android Developers
このエントリーをはてなブックマークに追加

タグ :