#80 I/O 2024 - What's new in Android
Google I/O 2024の"What's new in Android"の動画をざっくり解説します。
What's new in AI in Android
Gemini nanoはモバイル向けのGemini。AndroidではAI Core搭載でAndroid 14以上の端末で利用可能。現時点(2024年5月16日時点)ではPixel 8 ProとGalaxy S24のみ。
AI CoreにアクセスするためのSDKがprivate previewなどで用さされている。一部のパートナーに提供されていて、オンデバイスでPDFの要約機能などに使われている。
- Google AI Edge SDK
- Google AI Client SDK
- Vertex AI for Firebase
アダプティブ
Material 3 Adaptive libraryが用意されている。リリース情報
- androidx.compose.material3:material3-adaptive-navigation-suite
- androidx.compose.material3.adaptive:adaptive
- androidx.compose.material3.adaptive:adaptive-layout
- androidx.compose.material3.adaptive:adaptive-navigation
Scaffoldも用意されている。
Android 15
Edge-to-edgeはデフォルトに。Android
14以下向けにenableEdgeToEdge()
をActivity
のonCreate()
で呼ぶようにする(公式の解説)。
Predictive backは開発者オプションから削除され、オプトインしているアプリで有効になる。オプトインしているの定義はAndroidManifestで以下の記述をいれているアプリ(公式ドキュメント)。
<application
...
android:enableOnBackInvokedCallback="true"
... >
...
</application>
ウィジェット
Jetpack Glanceを使って、Jetpack Composeの仕組みでウィジェットを作ろう(公式ドキュメント)
デザインガイドラインも更新された(リンク)。
メディア/カメラ
Android 15にはLow light boostが追加された(公式ドキュメント)。ナイトモードとは違う仕組みらしい。
Camera Xは1.4 beta
Jetpack Compose用のcamera-viewfinder-composeが1.0-alphaとして出た。本記事執筆時点では公式ドキュメントもなく、ソースコードのREADMEにもまだ何も書かれていない状態。今後に期待。
パフォーマンス
本動画だと概要のみだったので、各セッションを見たほうがよさそう。
Vulkan
将来的にOpenGL/ESはANGLE経由のみになる。

セキュリティ
targetSdkをAndroid 15にした場合、Intentの扱いがより安全になる。テストが大変になるのでStrictModeでテストするための機能が追加されている(公式ドキュメント)。
悪意のあるアプリは、他のアプリのアクティビティを「同じタスクで」起動しようとする(起動しているがオーバーレイして他アプリを隠す)。こうすることでバックグラウンドからのアクティビティ起動の制約を回避しようとする。これを阻止するため、UIDのチェックをさせるためのフラグが追加された(公式ドキュメント)。
Android 15ではtarget SDK 24以上でないとアプリのインストール自体が失敗する(Android 14は23以上だった)
アプリの機能として写真選択が必要な場合、パーミッションを取得してギャラリー機能を作るのではなく、Photo Pickerを使おう。クラウドに保存している写真も選択できる。Photo Pickerの使い方はこちら
Play integrity API
あとでかく。。。
Credential Manager API
パスキーはよい(弊社アプリでも使っているので体験してみてください。Android版 / iOS版
Wear OS 5にもCredential Manager APIがくる。
Wear OS 5
Wear OS 5はDeveloper Preview。
新しいComplication typeの追加
- Goal progress
- Weighted elements

Health connect
バックグラウンドでデータ取得するための権限と、履歴を読むための権限が追加された。
//read data from Health Connect while app in the background
<uses-permission
android:name="android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND" />
//access beyond 30 days of data written to Health Connect
<uses-permission
name="android.permission.health.READ_HEALTH_DATA_HISTORY"/>
Android TV
Compose for TVがbetaになった。
TV appのアイコンが丸になった。

Android for cars
Pixel Tablet用に、Android Automotiveが動くシステムイメージが用意された。ボスの説得用にどうぞ。
スタイラス
テキストフィールドに直接ペンでテキストを書けるようになった。この機能自体はAndroid 14から。以下の3つが対応。
- TextFieldコンポーザブル(1.7)
- EditText(View system)
- WebViewの中のテキストinput要素
インク機能を実現するため、低レイテンシ用のAPIが2つ追加された。
開発者向け(生産性向上)
ComposeコンパイラがKotlin 2からKotlinのリリースにバンドルされるようになった。Composeコンパイラのバージョン指定は今後不要になる。
Strong skip
modeの追加。ラムダ式を自動でremember
してくれたり、引数の比較が変わり、再コンポーズ時にスキップされるケースが増える(公式ドキュメント)。
LazyColumn等の要素用にModifier.animateItem()
が追加された。
View systemにあったShared Element transitionがようやくComposeにきた。
Flow
layoutも追加された。FlowRow
やFlowColumn
を使う(公式ドキュメント)。
TextFieldなどでリッチコンテンツ(gifなど)を受け取れるようになった。
Textで簡単なHTMLを解釈できるように。このためにTextView
を無理やり使ってた開発者も多いのでは?
アクセシビリティスキャナが強化された。アクセシビリティスキャナは公式ドキュメントをどうぞ。