さまざまなデバイス上での動作を求められるモバイルアプリケーション開発において,Androidエコシステムに内在するフラグメンテーションが開発者にとって最大の開発期間およびコスト要因である,という指摘は少なくない。OpenSignalのレポートが示すように,フラグメンテーションは2つのカテゴリに分類することができる:
- ハードウェア・フラグメンテーション: 2013年現在で12,000近くが確認されているAdnroidデバイスは,その画面サイズもハードウェア能力もさまざまだ。
- ソフトウェア・フラグメンテーション:現時点で,8種類のバージョンのAndroidオペレーティングシステムが使用されている。例えば2011年始めにリリースされたAPIバージョン2.3.3~2.3.7は,現在でも確認済みデバイスの約30%を占めている。
Ron Amado氏がArs Technicaに寄せた記事で概説されているように,Googleは現在,ソフトウェア・フラグメンテーションの問題に取り組もうとしているようだ。
記事によると,Androidオペレーティングシステムのバージョンが断片化しているのは,OSバージョンをロールアウトする際の基本的なプロセスがおもな原因だ。Androidの新バージョンが完成すると,それがOEM先に提供される。受け取ったOEM先は,自分たち特有のUIを新バージョンに移植する。その後,それがキャリアにロールアウトされ,最終的にエンドユーザに回線経由で配布される。このプロセスには通常,数ヶ月という期間と相当な労力を要する。そのため,あまり人気のないデバイスは,結局アップデートされずに終わってしまうことが多いのだ。
Androidのアップデートのロールアウトが遅いためGoogleは,Google Play Servicesと呼ばれるアプリケーションを通じたデバイスへの新機能インストールを多用するようになっている。
Play Servicesはシステムレベルのパワーを持っていますが,アップデートも可能です。Google appsパッケージの一部ですので,オープンソースではありませんし,OEMによる変更も許可されていません。すべてGoogleのコントロール下にあるのです。基本的にPlay Servicesは,一般のアプリとインストール済みのAndroid OSの間を埋める働きをします。現在のPlay Servicesは,Google Maps API, Google Account同期,リモートワイプ,プッシュメッセージ,Play Gamesのバックエンドなど,数多くの処理を行っています。
このコンセプトを用いることでGoogleは,新しい機能を発表した翌日,それをロールアウトすることが可能になる。さらにはMailやMaps, あるいはカレンダといったアプリケーションを,オペレーションシステムから切り離してPlay Storeに移動することによって,エンドユーザがそれらをアップデートできるようになる。
ハードウェアレベルのフラグメンテーション問題は残るものの,これによってソフトウェアのフラグメンテーションに関しては大きな進歩が見られるはずだ。アンドロイドシステムの中心部分がOEMやキャリアの介在なしでアップデートできるようになれば,開発者はアプリ開発のベースとするデバイス上でより広範に,最新のAPIサポートを受けられるようになるだろう。