Android(アンドロイド)は、Googleによってスマートフォンやタブレットなどの携帯情報端末を主なターゲットとして開発されたプラットフォームである。カスタマイズ版Linuxカーネル、ライブラリやフレームワークその他のミドルウェア、ART仮想マシン、主要なアプリケーションからなるソフトウェアスタック(集合)パッケージで構成されている。2015年現在、スマートフォン用のオペレーティングシステム (OS) としては、世界シェア1位である。2003年にアンディ・ルービン、リッチ ・マイナー、ニック・シアーズ、クリス・ホワイトがアメリカカリフォルニア州パロアルトに携帯電話向けソフトウェアプラットフォームを開発するAndroid社を設立した。2005年にGoogleがAndroid社を買収し、一時はGoogleが「gPhone」という独自の携帯電話端末の開発を進めているという憶測が流れた。2007年11月5日 携帯電話用ソフトウェアのプラットフォームであるAndroidを、Google 蓬田宏樹、他著「Androidの野望」日経エレクトロニクス 2007年12月17日号 p.47-69、米クアルコム、独通信キャリアのT-モバイル (T-Mobile International) などが中心となり設立した規格団体 「Open Handset Alliance」(オープン・ハンドセット・アライアンス、OHA)が発表した。無償で誰にでも提供されるオープンソースであり、Apache v2ライセンスで配布される。2008年10月からは対応する携帯電話が多数販売されている。Androidのロゴには緑色のロボットのキャラクター「Bugdroid」が使われており、日本では「ドロイド君」の愛称で呼ばれている。競合するモバイル向けプラットフォームは、マイクロソフトのWindows Phone、アクセンチュアのSymbian OS、クアルコムのBrew MP、アップルのiOS、ブラックベリーのBlackBerry、Linux FoundationのTizenなどがある。Googleはスマートフォン・タブレット・腕時計以外にもゲーム機・冷蔵庫といった領域にもAndroidを搭載させる考えである。この節では、Android Developersから発表されている標準のAndroid(AOSP)について記述する。サードパーティーが独自に追加(カスタマイズ)した機能は含まない。Androidのユーザインタフェース (UI) はメーカーごとに異なり、それぞれが独自のUIを開発している。カスタマイズが施されていない標準のAndroidは通称AOSP版と言われ、Android Open Source Projectのソースコードから直接ビルドしたものを指す。また、メーカーやサードパーティーが開発したものはカスタムROMと言われている。Androidの基本操作はタッチインタフェースとなっており、指を使って直感的な操作ができるようになっている。表示されたボタン類を押すタップ、長押しタップ(つまむ)、画面端からタップスライドしてメニュー類を表示するスワイプ、マルチタッチによるピンチや回転などができるようになっている。画面をタップした際に、ボタンを押したという感覚を起こさせるために、本体をバイブで振動させる機能を持ち合わせる。ジャイロスコープやGPS、加速度計などのハードウェアをサポートしており、アプリケーション側からそれらにアクセスして活用する事もある。ジャイロスコープは端末を縦向きから横向きに変更する際に使われる事が多い。ゲームの例ではレースゲームで車をハンドル操作する際、端末を傾けてハンドル操作に当てはめるものがある。ホームスクリーン上には、パソコンのデスクトップ画面のようにアプリケーションのアイコンが並び、アプリをインストールするとホームスクリーン上に自動的に配置される。また長押しタップでアイコンを移動したり、フォルダを作成して格納する機能を持つ。これに加えてウィジェットを配置できるようになっている。ウィジェットは、天気予報やニュースなどのライブ情報などがあり、ホームスクリーンから直接見ることが出来る。ホームスクリーンは画面外にも複数用意されており、画面を左右にスワイプすることで複数のホームスクリーン間を移動出来る。画面上部にはステータスバーが配置されている。ステータスバーは、新着メールやSMSを受信したりデバイスを接続した時に、ユーザーに作業を中断させることなく知らせるシステムとして使われる。また、多くのAndroid端末には、通信の切り替え、機内モード、システム設定など、頻繁に使われる機能も、この通知バーに格納されているものが多くある。日本国内では通称として通知バーと呼ばれている。画面下部には「戻る」、「ホーム」、「アプリケーションリスト」の操作を実行できるナビゲーションバーが、Android 3.x、及び4.0以降から配置されている。これ以前のバージョンでは、主にハードウェアキーが主流であった。Androidには文字入力のためのIMEを搭載しており、テキストボックスを開くと画面上に仮想キーボードが表示される。この仮想キーボードを、タップやスワイプ操作する事によって文字を入力できるようになっている。サードパーティ製のIMEをインストールする事も可能になっている。IMEとハードウェアが対応していれば、BluetoothやUSB接続の外付けキーボードを接続して入力することができる。また発声によって文字入力を行う音声入力システムも備える。なお2014年現在、Android OSには標準で日本語入力用のIMEが搭載されていない。その為、日本語入力を行うには、Google 日本語入力やATOKなどのサードパーティー製IMEをインストールする必要がある。国内販売されている端末は、最初から日本語入力できるようにiWnn、POBox Touch、ATOKなどが、メーカーによって搭載されている。Googleの認可を受けた端末には、アプリケーションマーケットとしてGoogle Playがインストールされている。多くの端末では、このGoogle Playからアプリコンテンツをダウンロードして使えるようになっている。2013年7月時点のGoogle Play内では、100万本を超えるアプリケーションが提供されている。GoogleはGoogle Playを経由しないアプリ配布も認めており、APKファイルから直接インストールする事ができるようになっており、それらのアプリは野良アプリと呼ばれる。ただし一見普通のアプリに見える悪質なアプリ(マルウェア)も存在するため、公式マーケット以外からのダウンロードには細心の注意が必要である。Androidは、カーネルからミドルウェア、ユーザインタフェース、ウェブブラウザ、電話帳などの標準的なアプリケーション・ソフトウェア群までを1つのパッケージにして提供されている。カーネルにはLinuxの関連技術が使用されているが、その他の部分は様々な技術が用いられており、例えば標準Cライブラリ (libc) のBionicはNetBSDのlibcとLinuxのlibcを組み合わせたものをベースにしている。カーネルとライブラリー、ランタイムはほとんどがC言語またはC++で記述されている。アプリケーションとアプリケーション・フレームワークは、Google独自に構築した仮想マシンであるDalvik仮想マシン上の「Java Platform, Standard Edition (Java SE) のサブセット+Android拡張」環境で記述する。Googleが公式サポートしているCPUはARM(ARMv5以降)、MIPS、x86である。ARM以外の環境はAndroid 2.3から対応した。端末シェアの多くはARMv7が占めているが、日本においては2014年3月に大手家電量販店のビックカメラが自社ブランド製品としてIntel Atom搭載のタブレットを発売するなど、x86による製品も徐々に広がっている。Android 4.4以前のバージョンで動作するアプリケーションは、基本的にはDalvik仮想マシン (VM) 上で動作する。Android OSは、プレ・インストール・アプリと、後からインストールするアプリを、公平に扱うのが特徴である。Apache HarmonyからSwingやAWTなどの一部のAPIを除去し、UIなどのAPIを追加したライブラリである。 Java CDCのAPIは、全てではないが、概ね含まれている。Sun Javaの互換性テストを通過していない。Googleから提供されているSDKでは、Javaプラットフォームによるプログラム環境と、C/C++による開発がサポートされている。Java以外にも、Javaプラットフォーム向けの複数の言語(Scala、Hecl)で書かれたプログラムがDalvik上で動作する。また、.NET Framework互換環境の1つであるMonoもDalvikに対応する計画がある。Android 4.4 (KitKat) からは、デベロッパー向けにART仮想マシンが実装された。ARTはAndroid Runtimeの略で、Dalvikよりもアプリケーションの動作効率などを向上させることを目的に開発された。Dalvikの場合、多様なハードウェアに対応できるよう、アプリを中間コードの状態で保管しておき、実行直前にネイティブコードに変換して動作させるJITコンパイル方式が採用されている。一方でART仮想マシンは、予め最初からネイティブコードに変換しておくため、実行速度や動作速度が向上する。なお、Android 4.4では依然としてDalvikが標準となっており、ARTを用いるためには開発者向けオプションで設定が必要である。ただし、アプリケーションによってはART上では正常動作しないものもあり、Dalvikとの完全互換は保障されていない。Android 5.0からは、ART仮想マシンが標準となった。5.0に搭載されたバッテリー改善システムと、ARTの効率性の良さという組み合わせによって、バッテリー持続時間がAndroid 4.4と比較して1.37倍と大幅に伸びた。ブートローダー (bootloader) とは、デバイスの電源を入れた際にフラッシュメモリ上にインストールされたLinuxカーネルを読み込み、そこからAndroidを起動させるシステムである。パソコンで例えると、BIOSという部分に相当する。ブートローダーのインタフェースは、一部の端末でアクセス可能である。多くの場合は、電源ボタンと音量ダウンボタンを同時押ししながら電源を入れて起動させる事ができる。起動後に表示されるインタフェースは、fastbootモードとも呼ばれる。アプリケーション開発用にはAndroid SDK (Software Development Kit) が、ランタイムとライブラリの開発用にはAndroid NDK (Native Development Kit) が無償提供されている。Android SDKによって、Android携帯電話機とホストPCとをUSBで接続して、アプリケーションプログラムを携帯電話機上で実行しながらPC上でデバッグすることができる。Googleが有償で提供するSIMロックフリーの開発専用携帯電話機や他社の専用の携帯電話機エミュレータでないと、低レベルのランタイムとライブラリーを書き換えることは出来ない。対応しているオペレーティングシステムはLinux(Ubuntu 8.04以降など)、Mac OS X v10.5.8以降 (Intel Mac)、Windows XP以降である。開発環境には、Android Studioが推奨されている。Visual Studio、IntelliJ IDEAなど他の統合開発環境も対応している。Googleは、2013年5月15日に開催されたGoogle I/OでAndroid Studioと称する新たな統合開発環境を開発中であることを表明した。これはIntelliJ IDEAをベースにしたオープンソースによるAndroid専用の開発環境であり、ビルドツールとして従来のApache AntではなくGradleを採用している。また、レイアウトのデザインもよりグラフィカルで端末実機のイメージに近くなるとされる。2014年12月8日に正式版1.0がリリースされた。Android SDKでは、Android Virtual Device (AVD) と呼ばれるPC上で動作する仮想デバイスを用いることができる。対応CPUと同様にARM、MIPS、x86の3種類のアーキテクチャをエミュレーションするソフトウェアがSDKに同梱されており、これにロードされるシステムイメージもAndroidバージョンごとにそれぞれ提供されている。ユーザーがこれらを選択をして、任意のAndroidバージョンとCPUエミュレーターの組み合わせによるAVDを作成する。ただし、一般的なエミュレーターと同様に他のコンピューターシステムをエミュレーションするために動作が非常に重く、快適なデバッグを行うことは難しい。これをカバーするため、仮想化支援機能をサポートしているx86アーキテクチャのCPUが搭載されたホストマシン上では、x86システムイメージによるAVDを高速化することができる。WindowsおよびMac OSにおいては、インテルが提供するIntel Hardware Accelerated Execution Manager (HAXM) によってIntel VTによるサポートを有効にすることができる。また、Linux版のSDKにおいては、x86エミュレーター自体がKVM上で動作させることが可能となっており、Intel VTまたはAMD-Vによるサポートによって高速化することができる。ほとんどのAndroid端末には、プロプライエタリ・ソフトウェアのGoogle Mobile Service (GMS) アプリがプリインストールされている。Google Play 、マップ、ギャラリー、カレンダー、Gmail、トークなどが含まれる。GMSアプリの搭載は互換性テストのCompatibility Test Suite (CTS) を通過し、Googleにライセンスを与えられた端末のみ認められている。オープンソースのAndroidから派生して、これらのアプリが入っていない場合は、CyanogenMod Gapps などからroot権限で /system フォルダにコピーしてインストール可能。基本ハードウエアを「goldfish」と定義しており、SDKのQEMUエミュレータはそれを踏襲している。サポートしているスペックは下記の通り。ただし、2007年10月当時のスペックである。歴代のコードネームのうち、1.5からは頭文字がバージョンの発表順にCからのアルファベット順で始まる菓子の名前が付けられており、それぞれに前述のマスコットのロボットがコードネームの菓子に扮している。ガートナーの調査によると、世界でのスマートフォンの販売台数のシェアの推移は以下の通り。日本国内でのスマートフォンの利用者数(契約者数)の推移は以下の通り。世界のタブレット出荷台数(電子書籍端末を除く)日本国内のタブレット出荷台数(電子書籍端末を除く)Google Play Storeへのアクセス統計によるバージョンごとの世界シェア。Androidのソースコードは、アプリケーション・フレームワークから標準ライブラリ、ランタイム、カーネルまでのすべてが公開され、改変も自由である。基本的にAndroidのソースコードのライセンスは、Apache 2.0に準じる。ただし、WebKitのライセンスはLGPLであり、カーネルとそのライブラリなどのLinux部分のライセンスはGPLである。Androidのライセンスでは、Androidのオープンソースを採用した企業・個人が改変部や付加部分をGPLのように公開する必要がない。しかし、カーネル部とそのライブラリはLinuxに基づくので、GPL系オープンソースのライセンスが採用され、公開が求められる服部武、藤岡雅宣編著『HSPA+/LTE/SAE教科書』、インプレスR&D、2009年、ISBN 978-4-8443-2738-7。Gmail、Google Talk、Google Maps、Google Play Storeなどの一部のGoogleアプリケーションは、Androidと密に連携しているがプロプライエタリなライセンスで提供されている。したがってカスタマイズしたAndroidに、これらのアプリケーションを載せるためには、Googleの許諾を得るか、アプリケーションをGoogle提供のファームウェアからバックアップし、権利を侵害していないカスタム版に再インストールする(カスタム版にはアプリケーションをバンドルしない)必要がある(CyanogenModの項を参照)。タブレット向けのバージョンであるAndroid 3.xはスマートフォンへの対応が不完全であるということを理由としてソースコードの公開が見送られていたが、4.0.1から再度公開に戻った。ただし、3.xのソースコードはgitの履歴の中に存在するだけで、gitのタグとしては割り振られていない。2005年にGoogleの、アンディ・ルービンが設立したプラットフォームベンダーである米Android社を買収したことから一時はGoogleが「gPhone」と呼ばれる独自の携帯電話端末の開発を進めているという憶測が流れた。2007年11月に「Open Handset Alliance」(オープン・ハンドセット・アライアンス、以下OHAと表記)を通じて新規プラットフォームの概要のみが発表される結果となった。2007年11月5日、携帯電話用ソフトウェアのプラットフォームであるAndroidを、米検索最大手Google、米クアルコム、独通信キャリアのT-モバイル(T-Mobile International)などが中心となり設立した規格団体 OHAが発表した。Androidのアプリケーションは、スーパーユーザー権限(root)を要求する一部のアプリを除き、システムの重要領域やユーザー情報にアクセスできないようサンドボックスで動作する。権限に関してはユーザーに視覚的にわかるように、アプリをインストールする際、必要な権限のリストを表示する機能がある。例えば「Google マップ」の場合は、位置情報の読み取り(GPSへのアクセス)があり、「カメラ」だと撮影、マイクによる録音などの権限がリストに表示される。この機能によって、アプリケーションに無関係な怪しい権限を要求された際には、ユーザーが確認できる。
Android 4.3ではアプリ毎に権限を設定できる機能が実験的に追加されたが、アプリケーションの互換性を損なう恐れがあるという理由で4.4では無効になった。端末をスリープ解除する際には、ロック画面にPINコードやパターンロックを割り当てる事もできる。これに加えてAndroid 5.0以降では、自宅にいる時、スマートウォッチが接続されている時などの条件に応じて自動でロック解除できるスマートロック機能もある。盗難などで不正にファクトリーリセットされた端末は、Android Device Protection(アンドロイド デバイスプロテクション)という保護機能が働く。デバイスプロテクションが作動すると、直前オーナーのGoogleアカウントにログインしなければ全ての機能が使えないようロックされる。その他に、端末の位置を逆探知したりリモートロックできるAndroid デバイス マネージャー(ADM、スマートフォンを探す)も提供されており、盗難や置き忘れの対応策のひとつとされている。トレンドマイクロ社によると、2012年(平成24年)1月から3月の間に、Androidの不正アプリが約5,000種発見されたとしている。また、同社では、2012年(平成24年)4月に人気アプリである写真共有サービス「Instagram」や、アクションパズルゲーム「Angry Birds Space」などの偽アプリ配布サイトが存在し、特定のWebサイトにアクセスし、モバイル端末に他のファイルをダウンロードするなど、不正な動作を行う偽アプリがダウンロード出来るようになっていたことを確認している。「Google Play(旧Android Market)」などの公式サイトにおいて偽アプリが確認されるケースもある。このような課題に早急に対応していくために、日本は、2011年(平成23年)10月に「スマートフォン・クラウドセキュリティ研究会」を設置し、スマートフォンを狙うマルウェア等に対する事業者等における対策の在り方や、利用者への情報セキュリティ対策の啓発の必要性について検討を進めてきた。同研究会では、同年12月の中間報告で、スマートフォン利用者が最低限取るべき情報セキュリティ対策として、「スマートフォン情報セキュリティ3か条」33を提唱し、2012年(平成24年)6月に最終報告を取りまとめた。また、2011年(平成23年)12月に「利用者視点を踏まえたICTサービスに係る諸問題に関する研究会」において「スマートフォンを経由した利用者情報の取扱いに関するWG」が開催され、スマートフォンにおける利用者情報が安心・安全な形で活用され、利便性の高いサービス提供につながるよう、諸外国の動向を含む現状と課題を把握し、利用者情報の取扱いに関して必要な対応等の検討が進められている。2012年(平成24年)4月には、スマートフォンを巡るサービス構造、利用者情報の取扱いに関する現状、利用者情報の管理等の在り方及び利用者に対する周知の在り方等の今後の論点を取りまとめた中間取りまとめ及び利用者自身が注意すべき事項を整理した「スマートフォンプライバシーガイド」34が公表された。(参照:平成24年総務省「情報通信白書」)"Open Embedded Software Foundation"(OESF) がAndroidを基に、機能を追加した組み込み用プラットフォームを開発中である。OESFのWebには2005年からのタイムスタンプがある。日本のOESFはWebによると2009年2月12日に設立された。2011年3月現在のバージョンは、Android 2.2を基にしEM3(OESF Embedded Master 3)と呼ばれる。2011年3月にオープンソースとして一般向けに公開された。IP電話、デジタルテレビ、マルチメディア、DLNA、Bluetooth、リモートコントロール、ポインティング・デバイス、ネットワーク管理、ユーザインタフェース、SDKなどの機能拡張を行ってアプリケーション・フレームワークより上位のAPIから使用する。EM1の機能拡張は全てではないと推測されるが、Linuxカーネル部分と同じ深さでハードウェア上に直接載る低レベルで実装される。EM2は、Android 2.0を元に開発され、2010年10月に公開された。Androidそのものが軽量化を意図して設計されているが、OESF版ではさらに基本コンポーネントだけに絞り、必要な機能を選んで追加できる 道本健二 『組み込み向けAndroidは2010年2月に公開 OESFがロードマップを発表』 日経エレクトロニクス 2009年9月21日号 p.33。2011年04月、ウォール・ストリート・ジャーナル(Web版)が、Androidは個人情報(Android利用者の氏名や場所、付近のWi-Fiネットワークの信号強度や位置情報)を取得・蓄積し、Googleに送信していると報じた。セキュリティ専門家が台湾HTC製のAndroidスマートフォンを調べた際に、これらの情報を少なくとも1時間に数回、Googleに送信していたことが確認されたという。この報道に対し、GoogleはAndroid搭載端末から位置情報を収集していることは認めたが、すべてあらかじめユーザーの同意を得た上で行っており、また収集したデータは匿名化された形でGoogleのサーバーに送られていることから、プライバシー上問題はないと主張している。2011年05月、韓国の警察は、Android利用者の位置情報を無断収集した疑いで、米Google韓国法人のGoogleコリアを家宅捜索し、位置情報の収集に関するデータを押収した。警察関係者は「携帯電話向け広告を扱うGoogle子会社のアドモブが、利用者の同意なくスマートフォン向けアプリケーションを通じて個人の位置情報を収集した疑いがある。押収物を分析し、個人情報の収集量や収集方法を把握する」と話している。Androidではセキュリティ等の理由からユーザーやアプリケーションがある階層以上にしかアクセスできないように制限がなされている。その制限を解除し最低階層にアクセスできるようにすることを、"root化"(rooting)、"root権を取る"という。これにより、より高度な動作をするソフトウェアが実行可能になるが、ほとんどの場合販売元との規約に反するため、サポートを受けられないなどのデメリットが生じる。iOSでのjailbreakに近い。ただ、AndroidセキュリティチームのNick Kralevichによれば、Googleはroot化を認めている。root化はユーザーの権利の一つであり、一方でユーザーの責任でそれに伴う不利益を受けることは仕方ないという見解を示している。またroot化によってアプリケーションや各種コンテンツの開発者、キャリア会社の権利は侵害されないとしている。Androidのアップデートは、このブートローダーを経由してアップデートされるが、大半の端末ではブートローダーがロックされている。ブートローダーがロックされていると、メーカーの電子署名が入ったアップデートしか受け付けないようになっている。これに対して、ユーザーが自由にカスタムROMをインストール出来るように、一部の端末ではブートローダーをアンロックする方法がGoogleによって公開されている。
通常これらは改造行為となり保証外になるのが通常だが、中にはこの行為前提で初めからブートローダーがアンロックされた状態で出荷される端末もある。fastbootモード(ファーストブートモード)とは、PC側のコマンド操作によってシステム領域の書き換えやパーティション操作を行うための機能である。fastbootのコマンド機能は前述に加え、ブート、リブート、アプリのアンインストール、ファイルの転送、システムのバックアップ、ブートローダのアンロックなど様々なコマンドに対応する。Android 2.3 Gingerbread以降からは、ジョークの画像やアニメーションを表示する機能が隠されている。いわゆるイースターエッグと呼ばれるものである。この機能にアクセスするには、端末の設定情報から端末情報を開き、一覧にあるAndroidのバージョンを3回連続でタップすると表示される。なおAndroidのバージョンによって、表示される内容が異なる。
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。