「すべてのアプリがバックグラウンドで動作する」は本当か? 改良されたiOS 7のマルチタスキング機能に迫る【吉川英一の「スマホのちょっと深いとこ」】
画面ではバックグラウンドでアプリが動いているように見えるが実際は? |
米国時間9月18日(日本時間9月19日未明)に配信が開始され、9月20日発売の「iPhone 5s」「iPhone 5c」にも標準搭載されたApple製スマートフォンおよびタブレットなど向けの新OS「iOS 7」。
数ある新機能の1つに改良されたマルチタスキング(マルチタスク)機能があります。当初「従来の制限が緩和されすべてのアプリがバックグラウンドで動作する」ようなことが言われていましたが、実際のところはちょっと様子が違うようです。
iOS 7のマルチタスキングでは何ができて何ができないのか? 今回の「スマホのちょっと深いとこ」は、そんな話題をAppleの資料を手掛かりにしながら紹介していきたいと思います。
【iOSのマルチタスキングとは?】
最初にiOSのマルチタスキング(*1)について概要を説明します。iPhoneの初期のOSでは、ホームボタンを押すと必ずアプリが終了するため複数のアプリを同時に実行できない仕様でしたが、2010年にリリースされた「iOS 4」からはマルチタスキングに対応したことで、ホームボタンを押すとアプリが終了するのではなく、裏側で待機するようになりました。ホームボタンを2度押しすることでアプリの一覧が表示され、複数のアプリを切り替えて使うことができます。
従来のiOSにおけるマルチタスキングでは、裏側に回ったアプリはOSにより動作を停止されるため「画面表示されていないアプリが裏で勝手に処理を継続する」ことは原則として許されず(*2)、位置情報の取得など特定の機能のみがバックグラウンドでの動作を許可されます。
これがiOS 7では、マルチタスキングの制限が緩和され、「すべてのアプリがバックグラウンドで動作する」という記事が、iOS 7の発表当初は各所で散見されました。
*1: 複数のアプリを並列で利用できる機能について、Appleは一貫して「マルチタスキング」(Multitasking)という用語を用いています。
*2: アプリが裏側に回っても特定の処理が完了するまで処理を継続するようOSにリクエストすることができますが、永久的に処理を続けることはできない仕様になっています。
【マルチタスキングに関するAppleの説明を再確認】
では、実際のところ、iOS 7で「すべてのアプリがバックグラウンドで動作する」のでしょうか。Appleによる公式の説明を確認してみます。
まず、iOS 7が発表された2013年6月開催の「WWDC 2013」における説明では、確かに「Multitasking for all apps with great battery life(素晴らしいバッテリー寿命を実現する、すべてのアプリのためのマルチタスキング)