Windows Phoneの「マルチタスク」は“8.1”でどうなったのか?鈴木淳也の「まとめて覚える! Windows 8.1 Update」(1/2 ページ)

» 2014年05月12日 14時30分 公開
[鈴木淳也(Junya Suzuki),ITmedia]
※本記事はアフィリエイトプログラムによる収益を得ています

Windows Phoneにおける「マルチタスク」動作の変遷

Windows Phone 8.1で最も注目の新機能といえば、パーソナライズ可能な電子アシスタントの「Cortana」(コルタナ)だが、今回は同OSで進化したアプリのマルチタスク動作について解説する

 前回は、Microsoftが新しいWindowsプラットフォームで実現した「Universal Windows Apps(ユニバーサルWindowsアプリ)」を通した、Windows Phone 8.1のアーキテクチャの概要を見てきた。今回はもう少しだけ踏み込んで、同OSで進化したマルチタスクやプッシュ通知の仕組みを見ていこう。

 スマートデバイスの高性能化とともに、モバイルOSでも重視されるようになったアプリのマルチタスク動作だが、バッテリー消費の問題からWindows Phone 7では制限されていた。

 具体的には、Windows Phone 7におけるマルチタスクは「高速アプリ切り替え」を目的としたものだ。「フォアグラウンド」にいないアプリはいったん動作が凍結され、次にアプリが呼び出されるまでメモリ上で待機している。同時にメモリ上に存在可能なアプリの数はOSのバージョンやメモリ容量によって制限されており、これを切り替えて使うことを「マルチタスク」と呼んでいたのだ。

 次の世代のWindows Phone 8ではマルチタスクの条件がある程度緩和され、「フォアグラウンド」から「バックグラウンド」へまわったアプリであっても、一定条件下で動作が可能になった。

 例えば「ネットワーク接続が確立される」「一定時間が経過する」「ファイル転送動作を継続する」といった特定条件をアプリがあらかじめ設定しておくことで、バックグラウンドでも動作できる。これによって、定期的にSNS等のアップデートがバックグラウンドで行われたり、アラーム時計のようなアプリを作成できるようになった。つまり、iOSにおけるマルチタスクの動作に近い仕様だ。

 それでは、最新のWindows Phone 8.1ではマルチタスク動作がどうなったのか? 答えをシンプルにいえば、「Windows 8/8.1のModern UIアプリ(WinRTランタイム)と同じ仕様」となる。

 基本的にはWindows Phone 8の延長線上にあるが、アプリがバックグラウンドでの動作を想定してタスクごとに「トリガー」を設定しておくことで、特定条件下でバックグランドでの動作が可能だ。Modern UIアプリの多くが、バックグラウンドにまわってから一定時間が経過すると「サスペンド(Suspended)」の状態へと自動的に移行するのは以前にも連載で解説した通りだ。

 ただ、常にサスペンド状態にあるわけではなく、何らかのトリガーによって定期的に復帰してバックグラウンドで作業を行い、また自動的にサスペンドへと戻っていく。バックグランドでのタスク内容はコンテンツの更新などさまざまだが、こまめにサスペンド状態へと移行していくのは消費電力節減のためだ。

Windows Phone 8(画像=左)と、WinRT、つまりWindows Phone 8.1(画像=左)におけるバックグラウンド動作の違い

 AppleがiOS 7でマルチタスクの動作要件(トリガー)を若干緩和したように(例えばプッシュ通知と連動したコンテンツ更新など)、Windows Phoneでは8.1になって以前よりもバックグラウンドでのアプリ動作を可能にするトリガーが増えている。「(8.0にあった)GPSによる継続的な位置追跡」のような機能は制限されているものの、おおむねWindows PCと同じ感覚でアプリを利用できるようになった、といえるかもしれない。

 ただ、Windows Phone 8.1ではデバイスの搭載メモリ容量によってアプリの動作に制限が加わる仕様となっており、512Kバイトメモリでは同時にバックグラウンド動作可能なアプリの数が限られてしまう。しかし、1Gバイト以上の搭載メモリの場合にはほぼ制限が緩和され、前述のPCライクなアプリ動作が可能になっているようだ。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

最新トピックスPR

過去記事カレンダー