Androidとは

Androidとは

AndroidはGoogleによって開発されたオープンソースのOSです。仕様が公開されており、開発ツールも無償で入手できます。 このため、各社から多くのAndroid端末が発表され、Androidは急速に普及しました。
Androidアプリは、PCとAndroid SDK等があれば開発可能です。必要なソフトウェアはすべて無償で手に入るため、アプリ開発の敷居は低いといえます。そのため、Androidの理解が不足している開発者も一定数いると推測します。
ここではAndroid OSの特徴について説明しながら、開発者がおかれている状況について学習して行きます。

特徴1:頻繁にリリースされるOS

Android OSは2009年9月に1.6がリリースされてからの約4年間で30回のリリースが行われています。機能追加やバグ修正が頻繁に行われている状況が続いています。

Android OSのバージョンアップ履歴
1.6 〜 3.0 3.1 〜
Android1.6, Rev.1 (September 2009) Android3.1, Rev.1 (May 2011)
Android1.6, Rev.2 (December 2009) Android3.1, Rev.2 (May 2011)
Android1.6, Rev.3 (May 2010) Android3.1, Rev.3 (July 2011)
Android2.0, Rev.1 (October 2009) Android 3.2, Rev.1 (July 2011)
Android2.0.1, Rev.1 (December 2009) Android4.0, Rev.1 (October 2011)
Android2.1, Rev.1 (January 2010) Android4.0, Rev.2 (December 2011)
Android2.1, Rev.2 (May 2010) Android4.0.3, Rev.1 (December 2011)
Android2.1, Rev.3 (July 2011) Android4.0.3, Rev.2 (January 2012)
Android2.2, Rev.1 (May 2010) Android4.0.3, Rev.3 (March 2012)
Android2.2, Rev.2 (July 2010) Android4.1, Rev.1 (June 2012)
Android2.2, Rev.3 (July 2011) Android4.1, Rev.2 (July 2012)
Android2.3, Rev.1 (December 2010) Android4.1, Rev.3 (October 2012)
Android2.3.3, Rev.1 (February 2011) Android4.2, Rev.1 (November 2012)
Android2.3.3, Rev.2 (July 2011) Android4.2, Rev.2 (February 2013)
Android2.3.4, Rev.1 (May 2011) Android4.3, Rev.1 (July 2013)
Android3.0, Rev.1 (February 2011) Android4.3, Rev.2 (August 2013)
Android3.0, Rev.2 (July 2011) Android4.4, Rev.1 (October 2013)
Android4.4, Revision 2 (December 2013)

開発者が注意しなければならないのは、必ずしも上位バージョンが下位バージョンに対して完全な互換性を保っている訳ではないことです。 APIの廃止や動作仕様の変更などがあり、OSがアップデートされることによって今まで動作していたアプリが動作しなくなる事も発生しています。
開発者は、新しいバージョンのOSがリリースされる毎に機能や仕様の変更点などを確認しましょう。また、自分のアプリに影響がないかどうか確認しましょう。

特徴2:様々なバージョンの端末が存在

高い頻度でOSがアップデートされることにより、様々なバージョンの端末が市場に並存しています。
以下は、Googleが公開している、2014年1月14日時点の端末のOS分布です。

Google Playに接続した端末のOSバージョンの内訳
出典:Dashboards(http://developer.android.com/about/dashboards/index.html)

これを見ると、Android4.0と4.1が約半数を占めていますが、Android2.3もまだ2割程度存在している事が分かります。それぞれのOSで動作するアプリを開発する場合、2.3と4.0ではAPIの振舞いに大きな違いがあるため、開発者は注意が必要です。

開発者がおかれている状況

現在のアプリ開発では、複数のOSバージョンをサポートしつつ、さらにバージョン毎の変更点を把握しなければならない状況のため、実装対象と無関係な機能の調査は後回しとなりがちです。セキュリティに関する機能の調査も例外ではないと思われます。
しかし、Androidアプリでセキュリティを維持するにはAndroid OSの仕組みを理解する必要があります。事実、Android OSの理解不足が原因と見られる脆弱性がいくつかIPAに届出られています。


『Androidアプリの脆弱性』に関するレポートでは、2012年までに届け出られたAndroidアプリの脆弱性42件の内、31件がアクセス制限の不備に関するもので、全体の70%を占めています。 分析の結果、これらはAndroid OSの仕組みを理解し、適切にアクセス制限を行っていれば防ぐ事のできる脆弱性である事がわかっています。
2013年になると、Androidアプリの脆弱性の届出は117件となり、ソフトウェア製品における届出の約半数を占めるようになっています。初めて届出のあった2011年からの経年で比較すると、2012年までは全体の2割に満たなかったAndroidアプリの脆弱性届出が2013年は急激に増えていることが見て取れます。



開発者は、利用者が安心してアプリを利用できるように、セキュリティについても配慮をしてアプリを作成しましょう。