Open11

これまでの Android リリースバージョンを追う

Kotaro666Kotaro666

Android 5 Lollipop

  • Delvik VM から ART に変更された
  • Material Design をサポートするようになった
  • アプリ上でスクリーンキャプチャとスクリーンシェアが実行できるようになった
  • Camera2 API が導入された
    • CameraX との違い
      • Camera2 は低レベルの領域までカスタムできる一方で、CameraX はカメラ周りをより簡単に実装できる API を用意した Jetpack ライブラリ
  • JobScheduler が導入された

参考資料

Kotaro666Kotaro666

Android 6.0 Marshmallow

  • ランタイムパーミッションが導入された
    • システムが dangerous 規制レベルと設定しているエリアに対するアクセスがアプリ実行中に発生する場合に必要な処理
  • バッテリー消費量削減を目的に、Doze と StandBy モードが導入された
    • Doze: 充電状態ではない端末の画面がオフになっている状態で一定期間経つと、Doze モードに入る。この状態ではネットワーク接続やCPU集中処理を遅延させ、定期的なメンテナンスモード時間中に遅延させた処理を実行させる
    • App Standby: ユーザーがアプリを活発に使用していないとシステムが判断した場合に、App Standby モードに入る。システムはアプリをアイドリング状態にする。端末が充電状態ではない場合、ネットワーク接続を無効にし、同期やジョブを中断する
    • Doze と AppStandby 中でも動作する Firebase Cloud Messaging を利用して、アプリとのメッセージのやり取りすることを推奨されている
  • 通知作成処理として、Notification.Builder クラスが追加される
  • テキスト選択(カット、コピー、ペースト)のツールバー表示が可能になった

参考資料

Kotaro666Kotaro666

Android 7.0 Nougat

  • マルチウィンドウをサポートするようになった
    • スマホやタブレットにて、2 つのアプリケーションを左右/上下に画面を分割して同時に実行できるようになった
    • 2 つのアプリケーション間で、ドラッグ・アンド・ドロップができる仕様
    • 詳細な情報はこちら
  • 通知デザインを変更されるなど、機能が強化された
    • 通知テンプレートが更新された
    • 通知上からSMSなどの返答ができる Direct Reply が追加された
    • 詳細な情報はこちら
  • ART に JIT(Just In Time)コンパイラが追加された
    • ART はこれまで AOT(Ahead Of Time)コンパイラのみを使用していた
    • JIT コンパイラの導入により、アプリ実行とともに動的に最適化されることで、アプリのパフォーマンスの向上、ストレージの節約、アプリやシステムアップデート速度の向上などの恩恵が生まれる
      • AOT コンパイラによる最適化後のアプリやシステムアップデートに数分の時間がかかっていたものが、あっという間に完了するようになった
  • Android 6.0 で導入された Doze が強化された
  • Project Svelte(バックグラウンドの最適化)が進行する
    • Android 5.0 から導入された JobSchedulerGCMNetworkManger の拡張が行われている
    • 詳細はこちら
  • SurfaceView の導入
    • TextureView よりもバッテリーのパフォーマンスが良い
    • Starting with Android 7.0, we strongly recommend that you save power by using SurfaceView instead of TextureView.
  • Data Saver モードの導入
    • 設定画面で Data Saver モードの ON/OFF を切り替えられる
    • Data Saver モードの場合、バックグランドでのデータ使用のブロックし、フォアグラウンドでのデータ使用の制限(ストリームのビットレート制限や画像の質を落とす、プリキャッシュの遅延など)を行う
    • ConnectivityMangaer を利用して、データ使用制限の設定を確認できる
    • 詳細はこちら
  • 3D レンダリング の Vulkan API が Android に導入された
  • Quick Settings Tile API が追加された
    • Quick Settings Tile をカスタマイズできる
  • マルチローカルサポートが導入された
  • Network Security Config が導入された

参考資料

Kotaro666Kotaro666

Android 8 Oreo

  • Android TV で導入されていた picture-in-picture(PIP)がモバイルにも導入された
    • PIP モードに入ると、アプリのライフサイクルは pause 状態になるが動画再生を続ける必要がある
    • この理由で、動画再生の中断は onPause ではなく、onPause で中断し、onResume で再開するように実装する必要がある
  • 通知デザインが変更された
  • Autofill framework が追加された
  • Font をリソースとして管理できるようになった
    • Android 8.0以前では、フォントの管理は比較的制限されており、フォントファイルをアプリに含めるか、サードパーティのライブラリを使用する必要があった(ChatGPT情報)
    • Font リソースの導入は、こちら
  • Autosize Textview が導入された
    • 横と高さに応じて、テキストサイズを柔軟にあわせてくれる
  • Adaptive icons が追加された
  • marginVertical や paddingHorizontal などが追加された
  • App Category が追加された
  • Activity 生成後にどの View がフォーカスを当てられるかを設定できるようになった

参考資料

Kotaro666Kotaro666

Android 9 Pie

  • Wi-Fi RTT(Round-Trip-Time)がリリースされた
    • 室内の位置情報をより精密に測定するための機能
  • ディスプレイカットアウト(ステータスバーやんナビゲーションバー)のサポートが追加された
  • 通知機能が強化された
    • 通知からのメッセージ返信機能(Android 7.0 でリリース)が強化された
    • Notification Channel(Android 8.0 でリリース)の設定項目が簡単になった
  • 画像関係
    • ImageDecoder が追加されて、画像のデコードが現代的になった
    • GIF と WebP のアニメーション画像表示を担当する AnimatedImageDrawable が追加された
  • 端末のオリエンテーションを固定することができるモードが追加された

参考資料

Kotaro666Kotaro666

Android 10

  • Android 10 のリリースノートから、「Migrating your apps to Android 10」ページが表示されている
    • 2 つのフェーズごとの手順がまとめらている
      • Phase 1: Basic compatibility
      • Phase 2: Build with Android 10

Behavior changes: all apps

https://developer.android.com/about/versions/10/behavior-changes-all

Behavior changes: apps targeting API 29+

https://developer.android.com/about/versions/10/behavior-changes-10

  • Foldable 端末のサポートが開始された
    • マルチディスプレイモード上にスタックされて表示されているアプリは Resume された状態である
    • ただし、topmost resumed されたアプリだけが focus を持っていることになる
      • ユーザーが最期に接触したアプリが topmost resumed として設定される
      • onTopResumedActivityChanged() コールバックで判定できる
    • Learn about foldables: https://developer.android.com/guide/topics/large-screens/learn-about-foldables

Privacy changes in Android 10

https://developer.android.com/about/versions/10/privacy/changes

  • 外部ストレージに対するスコープアクセスが追加された
    • アプリごとに作成されたディレクトリ内に設置されたファイルにのみアクセスできる
    • スコープアクセスに対しては、ユーザーからのパーミッションをもらう必要はない
  • バックグラウンド上のアプリが端末 GPS にアクセスする場合には、パーミッションが必要になった
    • ACCESS_BACKGROUND_LOCATION
  • WiFi を有効/無効にするアクションを制限するようになった
    • WifiManager.setWifiEnabled() は非推奨となり、常に false を返すようになった

Android 10 for Developers

https://developer.android.com/about/versions/10/highlights

  • Foldable 端末のサポートを開始した
  • 5G ネットワークのサポートを開始した
  • 通知に対して、スマートリプライ(返信の候補表示)機能が追加された
  • システムにダークモードが追加された
  • Gesture navigation が導入された
  • Sharing shortcuts が導入された

参考資料

Kotaro666Kotaro666

Android 11

Behavior changes: all apps

https://developer.android.com/about/versions/11/behavior-changes-all

  • プライバシーの制限に変更が追加された
    • ワンタイムパーミッション
      • ロケーションやマイク、カメラへの一時的なアクセスを許可するオプションがユーザーに付与された
    • パーミッションへの度重なる拒否アクションは「Don't ask again」を意味するようになった
  • Exposure Notifications が追加された
  • Android エミュレータに 5G のサポートが追加された
  • Map v1 共有ライブラリが除去された

Behavior changes: Apps targeting Android 11

https://developer.android.com/about/versions/11/behavior-changes-11

  • Permission auto-reset
    • ユーザーが数カ月間アプリを使用していなかった場合、システムがアプリのランタイム・パーミッションを自動でリセットする
  • バックグラウンドから送られる Toast は表示されなくなった
  • Media intent actions は事前にインストールされたカメラのみに対応する
    • android.media.action.VIDEO_CAPTURE
    • android.media.action.IMAGE_CAPTURE
    • android.media.action.IMAGE_CAPTURE_SECURE

Privacy in Android 11

https://developer.android.com/about/versions/11/privacy

WIP

Features and APIs Overview

https://developer.android.com/about/versions/11/features

WIP

参考資料

Kotaro666Kotaro666

android 12

Behavior changes: all apps

https://developer.android.com/about/versions/12/behavior-changes-all

  • ネイティブの SplashScreen API が追加された
  • 没入モード(immersive mode)時にシステムバーを隠しやすくなるコマンドができた
  • すべてのアプリがマルチウィンドウモード対象となった
    • android:resizeableActivity=false に設定することで、システムが自動でマルチウィンドウモードに対応させないようにはできる
  • GPS 機能でユーザーが大体のロケーション情報を提供するパーミーッションを許可できるようになった
  • ルート Activity が表示されている状態でバックキーを押下しても、Activity は destroy されない仕様となった

Behavior changes: Apps targeting Android 12

https://developer.android.com/about/versions/12/behavior-changes-12

  • Activity などに android:exported を宣言することが義務化された

Features and APIs Overview

https://developer.android.com/about/versions/12/features

  • Material You が導入された

参考資料

Kotaro666Kotaro666

andriod 13

Behavior changes: all apps

https://developer.android.com/about/versions/13/behavior-changes-all

  • 通知一覧に Task Manager が表示されるようになった
    • Task Manager 内でフォアグラウンドで起動しているアプリを停止できる
    • Stop を押下すると、システムはアプリをメモリから削除し、アプリ全体が停止する
    • Stop 押下時にシステムはアプリにコールバックを何も送信しない
  • バッテリーの最適化運用に変更があった
    • Restricted Buckets: 最も優先度が低いアプリが格納される bucket
    • Android 12 で 45 日、Android 13 で 8 日間に渡りユーザーがアプリを操作しなかった場合に Restricted Bucket に格納される
  • アプリ通知へのランタイムパーミッション POST_NOTIFICATION が必要になった
    • Andorid 13 からインストールされたアプリは、本パーミッションでユーザーから許可を受けないと、デフォルトでアプリ通知がオフに設定される
    • 詳細はこちら
  • マッチしない intent-filter がブロックされるようになった

Behavior changes: Apps targeting Android 13 or higher

https://developer.android.com/about/versions/13/behavior-changes-13

  • PlaybackStateからメディアコントロールを反映して、リッチなコントロールコンポーネントを表示できるようになった
  • アプリ内のテーマカラーが自動的に WebView のコンテンツに反映される
  • 広告IDを使用するためにパーミッションを追加する必要ができた

Features and APIs Overview

https://developer.android.com/about/versions/13/features

  • Adaptive Icons が導入された
  • アプリごとに使用言語を設定できるようになった
  • Predictive Back Gesture が追加された

参考資料

Kotaro666Kotaro666

android 14

Behavior changes: all apps

https://developer.android.com/about/versions/14/behavior-changes-all

  • SCHEDULE_EXACT_ALARM パーミッションがデフォルトで拒否となる
  • targetSdkVersion が 23 以下のものはアプリがインストールできなくなる
  • 写真や動画への一部のみにアクセスする許可を求めるダイアログを出せるようになる
    • 対応方法はこちら
    • READ_MEDIA_VISUAL_USER_SELECTED
      • This permission will be automatically added to an app's manifest if the app requests READ_MEDIA_IMAGES, READ_MEDIA_VIDEO, or ACCESS_MEDIA_LOCATION regardless of target SDK.

Behavior changes: Apps targeting Android 14 or higher

https://developer.android.com/about/versions/14/behavior-changes-14

WIP

Features and APIs Overview

https://developer.android.com/about/versions/14/features

WIP

参考資料