Software is Beautiful

第12回Androidに見るOSアップデートの難しさ

GALAXY SとGALAXY Tab

2011年12月22日に、日本ではNTTドコモが販売していた「GALAXY S」「GALAXY Tab」を、最新OSのAndroid 4.0に対応させないと開発元のSamsungが発表した。メモリ容量の不足を理由にしているが、ユーザの間には不満の声が高まっている。

Androidに関して言えば、これと似たような問題は以前にもあり[1]⁠、目新しいことではない。ソフトウェアの進化の早さのために、せっかく手に入れたハードウェアがすぐに陳腐化してしまうのである。

Androidのメジャーアップデート

Androidのメジャーアップデートがリリースされた時期は次のとおりである。

  • 2.0/2.1(Eclair⁠⁠─2009/10
  • 2.2(Froyo⁠⁠─2010/5
  • 2.3(Gingerbread⁠⁠─2010/12
  • 3(Honeycomb)─2011/2
  • 4(IceCream Sandwich⁠⁠─2011/10
  • タブレット向け

約半年に一度のペースである。Androidベースのデバイスを作っているメーカーも1~2回はバージョンアップに対応してくれるが[2]、ある時点で新しいOSへの対応は打ち切られてしまう。

GALAXY Sの場合、2010年6月に発売(日本市場向けは10月)された時点ではAndroid 2.1を搭載しており、その後2.2、2.3へのアップデートには対応したものの、4へのアップデートは非対応と発表されたのである。

2010年10月以降にGALAXY Sを入手した日本のユーザから見れば、発売後わずか14ヵ月でハードウェアが陳腐化してしまったことになる。

陳腐化の速度が緩やかなiOS

バージョンアップごとにOSが肥大化し、ある時点で古くなったデバイスのアップデートは見送らなければならない点はiPhoneなどのiOSデバイスに関しても同じだが、Androidほど問題視されていない。

私の場合、iPhone 3GSを2009年6月に入手したが、その時点でのiOSのバージョンは3.0であった。その後4.0(2010年6月)、5.0(2011年10月)と2つのメジャーアップデートをしたのち、2011年11月にiPhone 4Sに買い替えた。iPhone 3GSの購入時にAT&Tと交わした2年契約の期間も過ぎていたので、ちょうどよいと思ったのだ。

つまりiPhone 3GSは、私が所有していた2年5ヵ月の間、OSのアップデート対象から外されることにより陳腐化することはなかったのである。今までのリリーススケジュールから予測して2012年後半にiOS 6.0がリリースされ、iPhone 3GSがアップデート対象から外れたとしても、3年以上アップデート対象であったことになる。発売14ヵ月で陳腐化してしまったGALAXY Sとは大きな違いである。

各社が発売しているスマートフォンが、どのくらいのスピードで陳腐化していくかを目に見える形にした人がいるので、そちらも参照していただきたい

AndroidとiOSの違い

この違いはどこから来るのだろうか。一番の違いは、新しいハードウェアとOSのバージョンアップのリリースタイミングにある。

ソフトウェアとハードウェアの両方をコントロールするAppleの場合、約1年おきのiPhoneの新機種の発売のタイミングにあわせてiOSのメジャーアップデートをすることが可能である。そのため、OSのバージョンアップに合わせたハードウェアのリリースまでどうしても数ヵ月の遅れが生じてしまうAndroidとは違い、iPhoneの場合、新機種の発売までの遅れがまったくない。

それに加え、iOSのメジャーアップデートは約1年おきなので(Androidの場合は半年)、発売したデバイスが2回までOSのメジャーアップデートが行えるように作っていけば、購入後2~3年間はデバイスが陳腐化しないことを保証できるのだ。

OSのアップデートの難しさ

OSの開発はただでさえ簡単ではないが、それをさらに難しくしているのが互換性の維持である。互換性と言ってもいろいろとあるが、大きく分けると次の3つである。

  • ① 旧バージョンのOS向けに開発されたアプリケーションとの互換性
  • ② 異なるハードウェアとの互換性
  • ③ 旧バージョンのOSを搭載したハードウェアとの互換性

私がMicrosoftでWindowsの開発に関わったときに一番苦労したのは①である。OSを進化させるとき、単に機能を追加していくだけならばそれほど難しくない。しかし、システム側の作りを大きく変更する場合[3]、そのままでは旧バージョン向けのアプリケーションは動かなくなってしまうので、「互換レイヤ」のようなものを使って対応しなければならない。

②は、それぞれのメーカーが作る異なるハードウェア上でOSを動かすための仕事だが、Appleしかハードウェアを作っていないiOSと、さまざまなメーカーがハードウェアを作るAndroidやWindowsとでは難しさが大きく違う。特にAndroidの場合、PCのようにハードウェアの標準(PC/AT互換)すらないため、ハードウェアの違いの吸収は十分になされておらず、「すべてのAndroidデバイスで動くアプリケーション」を作ることは、iOSやWindows向けのそれと比べて莫大な手間がかかる。

③は、今回Androidで問題になっている、旧バージョンのOS向けに作られたハードウェアの上で新しいバージョンのOSを動かすという互換性問題である。

バージョンアップのたびに肥大化するOS

OSの場合、バージョンアップのたびに肥大化し、OSを走らせるのに最低限必要なメモリのサイズが増えていくのが常である。OSを作る側としては、バージョンアップごとに新機能を追加して価値をアピールしたいし、ユーザ側もそれを期待しているのが肥大化の一番の理由である。

①に挙げた「旧バージョンのOS向けに開発されたアプリケーションとの互換性」を維持するための「互換レイヤ」もOSの肥大化に拍車をかける。

原則としては、ソフトウェアとハードウェアは二人三脚のように足並みをそろえて進化していくことが望ましい。そのため、OSの開発者が最も重要視するデバイスは、当然ながら最新機種になる。最新の機種が備えたハードウェアを最大限に活かしたOSを作り、新機種の魅力を最大限に引き出すOSを作るのが彼らの一番の使命である。

PC用のOSであるWindowsの場合には、それが顕著であった。「OSをどんどんと進化させたい」と考えるMicrosoft、「最新のチップを売りたい」と考えるIntel、「コモディティ化してしまった旧モデルよりは、最新のチップと最新のOSを搭載した新機種の利益率のほうがはるかに高い」と考えるメーカーと、ユーザを除くステークホルダーすべてが「高機能なOSを搭載したより高性能で魅力的なPC」を作ることを望んでいた結果である。

少なくともPC市場においては、旧バージョンのOSを搭載していたデバイス(レガシーデバイス)の上で最新バージョンのOSを動かすこと(③)はあまり重視してこなかったというのが現状である。

従来のPC向けOSの場合

Windowsの場合、メジャーアップデートのサイクルは3年程度なので、OSのアップデートによりデバイスが陳腐化し、最新のOSを走らせることができなくなってしまうことはそれほど大きな問題にならなかった。

PCの実質的な寿命が3年程度であることはユーザ自身も納得していたし、新しいOSがリリースされるよりも2年も3年も前に発売されたPCの上で最新のOSが動くことはユーザも期待していなかった。

スマートフォンOSの進化するスピード

しかし、スマートフォンの時代になり、ハードウェアとソフトウェアの進化のスピードがさらに加速されると、この「デバイスの早すぎる陳腐化」が問題として顕在化するようになってきた。特に、日本や米国では、大半のユーザが通信事業者と「2年契約」を交わすことによりスマートフォンを割引価格で入手するため、デバイスの早すぎる陳腐化は、契約期間の間、陳腐化したデバイスを我慢して使い続けなければならないことを意味する。

それでも、新バージョンのOSリリースと新機種の発売が足並みをそろえて同時に行われるiPhoneはましなほうである。Apple側も2年契約のことを強く意識し、デバイスが発売されてから少なくとも2年間は陳腐化しないように、旧モデルに対するOSのバージョンアップをきちんと提供している。

問題は、GoogleからOSの提供を受け、ハードウェアの仕様も、新機種発売のタイミングもバラバラなAndroid端末である。

上にも書いたように、Googleから新しいAndroidがリリースされてから、それを搭載した新機種が発売されるまで数ヵ月間かかる。しかし、Androidのリリースサイクルは半年程度なので、タイミングによっては、発売当初から一昔前のOSを搭載した「生まれたときから陳腐化」しているモデルすらたくさんある。

オープンであるがゆえの問題点

また、Android陣営には、Androidを「とにかく安くスマートフォンを作り、薄利多売でマーケットシェアを確保する」ための道具ととらえているメーカーも少なくない。そういったメーカーにとっては、一度市場に出てしまったデバイスのOSをアップデートするためにコストをかけることは難しい。そもそも、少しでも安くするためにハードウェアの性能もぎりぎりまで絞り込んで作ってくるため、メモリ容量などの理由で最新のOSを走らせることが難しいのだ。

その結果、Androidデバイスの多くが、発売当初から加速度的に陳腐化していき、その多くが発売後数ヵ月でOSのアップデート対象から外されてしまうというのが現状なのである。本来ならば、Googleとメーカーが協調して、OSのアップデートと新機種のリリースの足並みをそろえるなどの対策が必要である。しかし、Androidというプラットフォームがオープンであることに魅力を感じてAndroidを選択しているメーカーも数多くいることを考えると簡単な話ではない。ある意味で、この状況がMicrosoftにつけいる隙を与えているとも言え、このバージョンアップ問題は、今後のスマートフォン市場の動向に大きな影響を与えるだろう。


次号からは、今まで何度か取り上げてきたエンジニアの生産性に関してさらに突っ込んで書いてみたいと思う。

おすすめ記事

記事・ニュース一覧