Android
読み:アンドロイド
外語:Android
Google
が開発した、
スマートフォン向けオペレーティングシステム
およびタブレットコンピューター向けオペレーティングシステム。
目次
概要
情報
特徴
由来
カーネル
CPU
仕様
iOSとの差異
ボタン
ボタンの種類
ホームボタン
電源ボタン
パターンロック
壁紙
ホーム
通知バー
開発
ソフトウェア
シェルログイン
スクリーンショットの撮影
Androidから
PCから
root
技術
階層構造
ライブラリ
単位
対応メディアフォーマット
ヘッドホン類
バージョンアップ
リリース
APIレベル
コードネーム
バージョン
Android 2.2(Frozen Yogurt)
Android 2.3 (Gingerbread)
Android 3.x (Honeycomb)
Android 4.0 (Ice Cream Sandwich)
Android 4.1 (Jelly Bean)
Android 4.2 (Jelly Bean)
Android 4.3 (Jelly Bean)
Android 4.4 (KitKat)
Android 5.0 (Lollipop)
Android 5.1 (Lollipop)
Android 6.0 (Marshmallow)
Android 7.0 (Nougat)
Android 7.1 (Nougat)
Android 8.0 (Oreo)
Android 8.1 (Oreo)
補足
Java
派生品
概要
Androidは、
オペレーティングシステム
(OS)としてLinuxカーネルを用い、この上に
ミドルウェア
、主要アプリケーションを組み合わせて構成されている、
スマートフォン
や
タブレットコンピューター
用の
プラットフォーム
である。
オペレーティングシステムとプラットフォームを分けて考える場合は、Androidはプラットフォームということになるが、一般的には周辺環境すべて含めてオペレーティングシステムと呼ばれることが多い。
情報
開発元: Open Handset Alliance、Google
系統:
Linux
初出: Android 1.0 (2008(平成20)年)
最新:
Android 8.1 Oreo
プラットフォーム:
ARM
、
MIPS
、
POWER
、
x86
カーネル種別:
Linux
ライセンス: Apache License 2.0 (カーネル以外)、GPLv2 (カーネル)、その他
特徴
由来
Apple
の
iOS
の対抗として発表された。
元々は2003(平成15)年10月に発足した携帯電話向けソフトウェア開発会社であるアメリカの新興企業Android社が開発していたと見られるが、2005(平成17)年8月、創設間もないこの会社をGoogleが密かに買収した。買収金額は不明。
このため様々な憶測が流れたが、2007(平成19)年11月、GoogleからOpen Handset Alliance(OHA)の設立、OHAからアンドロイド・プラットフォームがそれぞれ発表された。
Androidとは具体的には、
Linuxカーネル
上で動作するアプリケーションフレームワークである。ただ、カーネル自体はLinuxだが、その上で動作するミドルウェア層との結合は弱く、比較的変更自由度が高い。例えばXperiaのカスタムROMでは、Linuxカーネルは純正カーネルではなくソニーエリクソン製のものが流用され、その上でAndroid 2.xが動作している。
また、アプリケーションは全て「Java言語」で開発される。但しAndroidランタイムは
Dalvik
という独自の仮想マシンを使用しており、一般的なJava環境とは異なる。Java言語は使用するが、通常の
JVM
環境ではない。
カーネル
現時点でのAndroidのカーネルは、手軽に使用できた
Linuxカーネル
が採用されている。
結果、Androidは
Linuxカーネル
の上にミドルウェアが搭載された環境となっている。機器を制御するのに
デバイスドライバー
が必要になるが、このような環境であるため、どのレイヤーで開発するかで、次の二種類が存在する。
HAL
Linuxドライバー
しかしながら、
Dalvik
の仮想マシンが走ればカーネルは何でもよい(CPUすら何でも良い)という状況をGoogleは目指しており、これがある程度成功しているように見受けられる。
機構上、理論上はカーネル差し替えが可能だが、しかし現時点でLinuxカーネル以外の選択肢はない。LinuxカーネルはGPLv2で、
GPLv3
ほどではないにせよ
GPL
という問題点と欠点を抱えている。対して、例えば
BSDライセンス
の
FreeBSD
のカーネルに差し替えることも不可能ではなく、成功すればより自由度が増す。
そこで例えば、AndroidをBSDカーネル上で動作させようという移植プロジェクトは複数存在する/した。以下のようなものが知られるが、まだ成果が上がっていない。
BSDroid
FreeBroid
CPUがARMであるので
NetBSD
などの方が適しているように思われるが、実際にはユーザーが多いFreeBSD(のうちの
FreeBSD/ARM
)に移植しようとする人が多いようである。
CPU
Androidは、アプリケーションはほぼ全て
仮想計算機
(仮想マシン)で動作する。このため、CPUは何でも良い。
しかし現在、性能やコストなどから、ほぼ全ての
Android端末
はCPUに
ARMアーキテクチャ
を用いている。他の主力の選択肢として
MIPS
や
x86
などがあるが、主力にはなっていない。Googleは現在、MIPS対応にも力を入れている。
モバイル分野でARMに完敗したIntelは現在、起死回生のために
x86
で動作するAndroidと、組み込み向けのx86である
Atom
に力を入れている。一方でAMDはx86を捨て、組み込み向けの
AMD Fusion APU
でARMコアを採用した製品を投入し始めた。
またかつて国内では
SuperH
対応という動きもあったようである。
仕様
iOSとの差異
Androidは、誰がみても
iOS
のパクリである。
しかしながら、多くの企業が様々なアイディアを持ち寄って作っていることもあり、様々な人々の感覚(センス)が次々と導入された結果、Android独特の機能というものも数多く産み出されることとなった。
結果として、Androidの機能をiOSがパクる、という状況にもなっている。
ボタン
ボタンの種類
Androidスマートフォン
では、かつては操作用の物理的なボタンが3つ搭載されていた。Android 2.3までは「戻る」「ホーム」「メニュー」があり、Android 4.0以降は「メニュー」ボタンが廃止され、他の目的で使用されてるようになった。また一部の機種では物理的なボタンではなくセンサーを用いていることもあった。
現在では、殆どの機種でOSの機能である画面最下段に基本3ボタンまたは一つ多い4ボタンを表示する「仮想ボタン」機能を用いており、ボタンといえども画面タップと何も変わらなくなっているが、いずれにせよこの3つの基本的なキーを「Androidキー」という。
この他に機種により、音量増減のボタンや、電源のボタン、PTT用のボタンなどが付いている。つまり、合わせて6個程度が標準的であると言える。
最大の問題は、このたった最小3個しか無いボタンも機種ごとに配置がバラバラだったことだが、仮想ボタン普及後はこれも統一されることとなった。
ホームボタン
中央の画面に戻るか、または「ホーム画面切替」ツールの選択画面が表示されるキーである。
Android 2.3
では、ホーム画面中にホームボタンを長押しすると「最近使用したアプリケーション」と「タスクマネージャ」を起動するボタンが表示され、タスクマネージャで、不要な実行中アプリケーションを終了させることもできる。
電源ボタン
電源ボタンを短く押すと、画面が消える。もう一回押すと画面が表示されるが、通常はロック画面となる。使用を終えたら電源ボタンで画面を消してからしまうと、省エネになるほか、誤作動も避けられ、またセキュリティ上もよい。
ホームで電源ボタンを長押しすると、携帯電話オプションが表示される。内容は機種ごとに異なるが、マナー(サイレント)、公共モード、機内モードの各ON/OFFのほかに、電源を切ることも出来る。
パターンロック
ロックされた画面から、ホーム画面に戻るためのセキュリティの一つが「
パターンロック
」である。
3×3で計9個の点があり、これを4個以上9個以下で、好きな順序で点をなぞり記憶させておき、記憶させた順序でなぞれば利用者であるとして認証される技術である。
単純に見えて、意外と強固なセキュリティらしい。ただ、画面は時々拭いて掃除しないと、なぞった跡を解析されてしまう可能性がある。
壁紙
ケータイの場合「
待ち受け画像
」などと呼ばれていたが、Androidの場合はWindowsなどのパソコンと同様、壁紙という。
この壁紙はホーム(詳細後述)と呼ばれるアプリケーションで使用され、左右2画面ずつ、計5画面程度にスクロールして表示される。
ホーム
iPhoneなどの場合、ホームボタンを押せばアプリケーション一覧が表示され、右に左にと画面を切り替えながら目的にアプリケーションを「探す」。iPhoneは、何にしても「探す」作業が多い。
Androidの場合、同様にアプリケーション一覧は存在するが、通常表示される画面は「ホーム」と呼ばれるアプリケーションである。左右含めて5画面程度に、色々なアプリケーションのショートカットやウィジェットを貼り付けたり、壁紙を付けたりといった作業ができるが、これは実はアプリケーションとして動作しているのである。
従って標準の「ホーム」以外に様々なものを作ったり使ったりすることができ、Google Playにも様々なものが公開されている。
一つしか「ホーム」を使っていないなら、ホームボタンを押せば真ん中の画面に戻るが、複数のホームアプリが導入されている場合、ホームボタンに「ホーム画面切替」ツールが割り当てられ、どのホームにするかを選択できる。複数のうち通常はどれか一つしか使わない場合、この「ホーム画面切替」ツールを停止することも可能。
通知バー
Androidの画面上部にある、端末の状態や通知情報が表示される場所を、通知バーやステータスバーなどと呼ぶ。
ここには、通信状態(3GやWi-Fi)、電池残量、現在時刻、などの情報が表示されるが、その他に様々な通知がここに表示される。メールが届いたりした場合、メーラーはここにアイコンを表示する。
この領域の下中央に▼のアイコンがある。これを下にフリックすると、通知領域が現われる。メニューボタン→通知、でも同様の画面になる。この画面も機種ごと様々だが、例えば
Wi-Fi
/
Bluetooth
/
GPS
、サイレントモードのON/OFFがワンタッチで可能な機種もある。
開発
ソフトウェア
Androidのソフトウェア開発は、フリーソフトだけで、ただで出来る。
USBケーブル
でPCと繋ぐので、次のようなソフトウェアが必要。基本的には全てフリーで入手できる。
Android SDK (Google提供)
USBデバイスドライバー (メーカー提供)
Eclipseなどの開発環境
JDK
(Java実行・開発環境)
インストール後、Android SDKの
adb
のあるフォルダーにパスを通しておくと、adb shellでAndroidにログインできるので便利である。
機種によっては、USBデバイスドライバーのインストールが難しいものがある。
シェルログイン
adb shellでログインすると、署名されてない
apk
ファイルを自由に実行できる。また、rootになれればシステム内部に触れることもできる。
但し通常は一般ユーザー権限であり、システム内部は変更できない。unameすらパーミッションが無いため実行できず、ましてや、システムに関するファイルを書き換えたり消したりなどは不可能で、特にカメラのシャッター音のファイルなどは簡単には削除できない。が、root権限を得て、それなりのUNIX知識を持っていれば、それも不可能では無い。
スクリーンショットの撮影
Androidから
Android 4.0以降は、標準でスクリーンショット撮影機能が搭載されたため、それ以前は必要だった撮影ソフトが不要である。
方法は、音量を下げるボタンと電源ボタンを同時に長押しすることで動作する。撮影した画像は、標準でインストールされている「ギャラリー」ですぐに閲覧できるため、共有も簡単に行なえる。
PCから
パーソナルコンピューター等からの操作でスクリーンショットを撮影する方法としては、Android SDKを用いる方法がある。他のツール無しで、
Android端末
すべての画面を、そのまま画像化できる。
Android SDKインストール後、32ビットのWindows XPなら「C:\Program Files\Android\android-sdk\tools」、他のWindowsでも似たような所を開くと、中に「ddms.bat」というファイルがあるので、これを実行する。
端末一覧が左にあるのでこれを選択し、しばし待つ。次に、メニューの「Device」→「Screen Capture」を選択すると、端末のスクリーンショットが表示される。ここで「Save」をクリックすれば、
PNG
でファイルが書き出される。
root
Androidのroot権限を取る方法は存在するが、どの方法にしても、安全ではない。失敗すれば、二度と起動しなくなる「
文鎮化
」もありうる。全て自己責任で出来る技術者のみが、root権限を得ることを許されるのである。
壊した場合でも責任は自分にあると断言出来る者は、
DooMLoRD_v4_ROOT-zergRush-busybox-su.zip
などのRooting Toolkitを利用できる。
但し、このインストールも、機種ごとに様々な手順が必要である。インストール前に一時的にrootを得る必要があり、その手法は機種ごとに様々である。
技術
階層構造
Androidとはプラットフォーム全体を指す名であり、下はOSから上はアプリケーションまで、様々なものを含む。
Androidの階層構造(上位→下位)は次の通り。
アプリケーション
フレームワーク
Java層 ↑これより上はJava
↓これより下は
C/C++
/
アセンブリ言語
JNI層
ライブラリ・ランタイム
SQLite
など、さまざまなライブラリと、
Dalvik
仮想マシン
libcはこの層にあるが、
Bionic libc
という独自の実装で、Linuxで一般的なGNU libcとは異なる。
HAL
(Hardware Abstraction Layer) Linuxの
デバイスドライバー
などを含め、ハードウェアを抽象化する層
Linuxカーネル
ドライバー、デーモンなどのシステム内部
ハードウェア
JNI層以下はネイティブコード(非仮想コード)で記載されており、Linuxと同様の構成である。マルチプロセッサー構成では、REX-OSなど他のプロセッサー用コードが含まれる。
ライブラリ
Androidで動作しているライブラリとしては、次のようなものがある。
Surface Manager
Media Framework
SQLite
WebKit
libc (
Bionic libc
)
OpenGL ES
Audio Manager
FreeType
SQL
単位
Androidデバイスは様々なメーカーから、多種多様な画面サイズ、画面密度の機種が販売されている。
これらに対応するために、物理的な単位のほか、抽象的な単位も用意されている。
px ‐ ピクセル、ドット数
dp = dip ‐ 画面の解像度に合わせて変化する単位。レイアウトは通常これを用いておこなう
sp ‐ フォントサイズの単位
対応メディアフォーマット
Androidは、機種ごとにエンコーダーとデコーダーに差があり、「作成可能なデータ形式」や「再生可能なデータ形式」に意外と差がある。
何に対応できるかは、そのAndroid端末のメーカーの気分次第とも言える。
Androidで広く再生可能なメディア形式(デコーダーがあるメディア形式)は、以下のとおりであり、以下を選択すれば未知の機種であっても利用できる可能性が高い。
音楽コーデック
AAC LC/LTP (Android 3.1以降) ‐ 3GPP(
.3gp
)、MPEG-4(.mp4、
.m4a
)、
ADTS
AAC(.aac) ※
ADIF
不可
HE-AAC
HE-AACv1
HE-AACv2
AMR-NB ‐ 3GPP(.3gp)
AMR-WB ‐ 3GPP(.3gp)
FLAC
(Android 3.1以降) ‐ FLAC(.flac) ※
Ogg FLAC
等は不可
mp3
‐ CBRまたはVBRのmp3(.mp3)
MIDI
(演奏用シーケンス) Format 0とFormat 1の
標準MIDIファイル
(.mid)、XMFとモバイルXMF(.xmf、.mxmf)
(リングトーン) RTTTL/RTX(.rtttl、.rtx)、OTA(.ota)、iMelody(.imy)
Vorbis
‐
Ogg Vorbis
(.ogg、.oga)
PCM/WAVE ‐ 8ビットまたは16ビットのリニアPCM(.wav)
画像フォーマット
BMP
JPEG
PNG
GIF
ビデオコーデック
H.263 ‐ 3GPP(.3gp) と MPEG-4(.mp4)
H.264/AVC
(Android 3.0以降) ‐ 3GPP(.3gp) と MPEG-4(.mp4)、MPEG-TS
MPEG-4 SP ‐ 3GPP(.3gp)
VP8
(Android 2.3.3以降) ‐
WebM
(.webm)
大雑把な結論としては、音楽は
Ogg Vorbis
、静止画は
JPEG
か
PNG
、動画は
MP4
か
WebM
が無難ということになる。
ヘッドホン類
イヤホン・ヘッドホン・ヘッドセットなど呼称は様々あるが、接続方法も様々である。
ステレオミニ
(3.5mmイヤホンジャック)
microUSB
Bluetooth
Nordic独自2.4GHzデータ通信方式
microUSBからの出力は、専用に対応した端末でないとイヤホンと同等には扱われない。
欧州向け低コスト機では、ステレオミニ(3.5mm)もmicroUSBも対応せず、Nordic独自方式を採用する機種もある。
バージョンアップ
Androidは不定期にバージョンアップされるため、既に発売されたスマートフォンなどでも新しいAndroidへの更新需要が生じる。しかし、これは難しいことが多い。
Androidというシステムは、上位のAndroid層から下位のLinuxカーネルまで広範囲に及ぶが、AndroidはWindowsなどとは違ってデバイスドライバーを追加するような対応ではなく、各機種専用にプログラムを直接書き換えて機種専用のシステムを作り上げる。
ゆえに、Androidが更新されたとなると、その間に書き換えたものを新しいAndroidに対して適用する必要があり、非常に手間隙が掛かってしまう。
Androidの開発では一般的に
Git
が使われているので、その間に
コミット
したものを新しいAndroidのクリーンな環境に対して
git cherry-pick
するのがバージョンアップの主たる作業になるが、仕様が変わっていたりコンフリクトが発生したりするため、単純作業では終わらない。
このため、古い機種や、不人気機種では、新しいAndroidに更新されないということがしばしば発生することになる。
リリース
APIレベル
Androidは、アプリケーションに
Android API
を提供する。
バージョンの細かい違いではAPIに変化がないこともある。そこで、実際のAPIの違いごとに、APIレベルと呼ばれる番号が振られている。
27 ‐ Android 8.1.0
26 ‐ Android 8.0.0
25 ‐ Android 7.1‐7.1.2
24 ‐ Android 7.0
23 ‐ Android 6.0
22 ‐ Android 5.1.0‐5.1.1
21 ‐ Android 5.0‐5.0.2
20 ‐ KitKat Wear
19 ‐ Android 4.4‐4.4.4_r2
18 ‐ Android 4.3
17 ‐ Android 4.2‐4.2.2
16 ‐ Android 4.1‐4.1.2
15 ‐ Android 4.0.3‐4.0.4
14 ‐ Android 4.0‐4.0.2
13 ‐ Android 3.2
12 ‐ Android 3.1
11 ‐ Android 3.0
10 ‐ Android 2.3.3‐2.3.7
9 ‐ Android 2.3‐2.3.2
8 ‐ Android 2.2
7 ‐ Android 2.1
6 ‐ Android 2.0.1
5 ‐ Android 2.0
4 ‐ Android 1.6
3 ‐ Android 1.5
2 ‐ Android 1.1
1 ‐ Android 1.0
コードネーム
Googleは、各コードネームに対応する像を、毎度毎度、Googleの本社前に建立している。
なお、1.0がAstro(鉄腕アトム)、1.1がBender(フューチュラマのベンダー)などという根拠不明な噂が流布されているが、公式にこのような発表がされたことはない。仮説では、当初はAndroidという名前にふさわしくアンドロイドやロボットの名前を付ける予定だったが、商標などの問題を回避するため、あきらめてC以降はお菓子の名前にしてAとBは封印されたのだとされている。
また、AはApple Pie、BはBanana BreadやButter Cookieなどの名前が噂されるようにもなっているが、これらも公式に発表されたことはない。
最も有力な説では、そもそも1.0と1.1には名前がなく、1.0はAplha、1.1はBetaであり、正式版の1.5からCから始まるお菓子の名前を付け始めた、とされている。
A ??? (一説ではApple Pieとも、Alpha versionとも)
B ??? (一説ではBanana Breadとも、Beta versionとも)
C
Cupcake
(Android 1.5)
D
Donut
(Android 1.6)
E
Eclair
(Android 2.0/Android 2.1)
F
Frozen Yogurt
(Android 2.2)
G
Gingerbread
(Android 2.3)
H
Honeycomb
(
Android 3.0/Android 3.1/Android 3.2
)
I
Ice Cream Sandwich
(
Android 4.0
)
J
Jelly Bean
(
Android 4.1
/
Android 4.2
/
Android 4.3
)
K
KitKat
(
Android 4.4
)
L
Lollipop
(
Android 5.0
/
Android 5.1
)
M
Marshmallow
(
Android 6.0
)
N
Nougat
(
Android 7.0
/
Android 7.1
)
O
Oreo
(
Android 8.0
/
Android 8.1
)
現在は洋菓子から取られている。途中で和菓子などが使われることがあるのか、あるいはZまで一巡したあとに使われ始めるのか、などは一切不明である。
バージョン
開発コードネームを併記。頭文字がA〜Zの順で選ばれている。基本的にお菓子の名前だが、Honeycomb(蜂の巣)のように、とてもお菓子とは思えないものも。
AとBに対応するAndroid 1.0と1.1のコードネームは発表されておらず不明。
Android 1.5 (
Cupcake
)
Android 1.6 (
Donut
)
Android 2.0/Android 2.1 (
Eclair
)
Android 2.2
(Froyo、
Frozen Yogurt
)
Android 2.3
(
Gingerbread
)
Android 3.x
(
Honeycomb
)
Android 3.0
Android 3.1
Android 3.2
Android 4.0
(
Ice Cream Sandwich
)
Android 4.x (
Jelly Bean
)
Android 4.1
Android 4.2
Android 4.3
Android 4.4
(
KitKat
)
Android 5.x (
Lollipop
)
Android 5.0
Android 5.1
Android 6.0
(
Marshmallow
)
Android 2.2
(
Frozen Yogurt
)
JITコンパイラー
「Dalvik JIT」搭載で高速化
V8 JavaScriptエンジン搭載で高速化
Android Cloud
OpenGL ES 2.0
Adobe Flash 10.1
Linuxカーネル 2.6.32
Android 2.3
(
Gingerbread
)
2010(平成22)年12月6日発表。
近距離無線技術NFC
(おサイフ機能)
対応マルチメディアフォーマット追加 (
VP8
、
WebM
、
AAC
)
前面カメラ
SIP
(Session Initiation Protocol)
Linuxカーネル 2.6.35
初の対応機種は、Sumsung製造、Google自社ブランドで販売されるNexus Sである。
Android SDK 2.3 (2010(平成22)年12月6日)
Android SDK 2.3.1 (2011(平成23)年1月26日)
Android 2.3.2 (2010(平成22)年12月16日発売、Nexus S搭載)
Android SDK 2.3.3 (2011(平成23)年2月9日) NFC APIの拡張
Android 2.3.4 (2011(平成23)年4月28日) Open Accessory Libraryに対応
Android 2.3.5 (2011(平成23)年7月25日) 地震速報(CellBroadcastReceiver)に対応
Android 2.3.6 (2011(平成23)年9月2日) 音声検索の修正
Android 2.3.7 (2011(平成23)年9月20日)
Android 3.x
(
Honeycomb
)
タブレット向けのUIを特徴とするバージョン。
Fragment
と呼ばれる
ユーザーインターフェイス
のコンポーネントが登場したのは、このバージョンからである。
このバージョン(3.x)はタブレット専用
マルチコア
CPU対応
SVG対応
USB On-The-Go対応 (3.1から)
Linuxカーネル 2.6.36
初の対応機種は「Motorola XOOM」、日本国内初のAndroid 3.0搭載機はNTTドコモから販売された「Optimus Pad L-06C」である。
Android 3.0
Android 3.1
Android 3.2.1 (2011(平成23)年10月頃)
Android 3.2.2 (2011(平成23)年8月30日、Motorola XOOM 4G搭載)
Android 4.0
(
Ice Cream Sandwich
)
スマートフォン向けUIとタブレット向けUIが統合されたバージョン。
GPUを使った画面描画など、最近の潮流を導入
Linuxカーネル 3.0
最初に発売された搭載機は、香港Ainol Electronicsの「NOVO7」という7型タブレットで、支那で2011(平成23)年12月5日に発売された。価格は99US$という意欲的な製品となっていた。
Android SDK 4.0 (2011(平成23)年10月18日)
Android 4.0.1 (2011(平成23)年11月14日)
Android 4.0.2 (2011(平成23)年11月29日)
Android 4.0.3 (2011(平成23)年12月16日)
Android 4.0.4 (2012(平成24)年3月28日)
Android 4.1
(
Jelly Bean
)
Android 4.0のUIで生じた問題点の改善を特徴とするバージョン。
高速化
ユーザーインターフェイス
の改善
国際化 (双方向テクストへの対応)
Adobe Flashの廃止
Linuxカーネル 3.4
最初の端末は、ASUSのタブレット端末「Nexus 7 [2012]」と、Googleが開発した球形のメディアプレーヤー「Nexus Q」である。
Android SDK 4.1 (2012(平成24)年6月28日)
Android 4.1.1 (2012(平成24)年7月10日)
Android 4.1.2 (2012(平成24)年10月9日)
Android 4.2
(Jelly Bean)
様々な機能の改良を特徴とするバージョン。
最初の端末は、サムスン製のハイエンドタブレット「Nexus 10」と、LG製スマートフォン「Nexus 4」である。
Android SDK 4.2 (2012(平成24)年11月13日)
Android 4.2.1 (2012(平成24)年11月27日)
Android 4.2.2 (2013(平成25)年2月11日)
Android 4.3
(Jelly Bean)
OpenGL ES 3.0や
Bluetooth Low Energy
への対応を特徴とするバージョン。
Android SDK 4.3 (2013(平成25)年7月24日)
Android 4.3.1 (2013(平成25)年10月23日) Nexus 7 LTEのバグ修正
Android 4.4
(
KitKat
)
多くの新機能追加と改良がなされたバージョン。システム全般のメモリー使用量削減も実施されている。
また、
インスタントメッセンジャー
(IM)として「
ハングアウト
」を搭載した。
Android 4.4 (2013(平成25)年10月31日)
Android 4.4.1 (2013(平成25)年12月5日)
Android 4.4.2 (2013(平成25)年12月9日)
Android 4.4.2_r2 (2014(平成26)年2月14日) ‐
Verizon
の
LTEバンド13
対応
Android 4.4.3 (2014(平成26)年6月2日)
Android 4.4.4 (2014(平成26)年6月19日)
Android 4.4.4_r2 (2014(平成26)年7月) ‐ ニュージーランド、オーストラリア、インド向け
Android 5.0
(
Lollipop
)
Android L Developer Preview (LPV79) (2014(平成26)年6月26日)
Android L Developer Preview (LPV81C) (2014(平成26)年8月7日)
Android 5.0 SDK (2014(平成26)年11月3日)
Android 5.0.1 (2014(平成26)年12月3日)
Android 5.0.2 (2014(平成26)年12月19日)
Android 5.1
(Lollipop)
Android 5.1.0 (2015(平成27)年3月9日)
Android 5.1.1 (2015(平成27)年4月21日)
Android 6.0
(
Marshmallow
)
Android 6.0.0 (2015(平成27)年10月5日)
Android 6.0.1
Android 7.0
(
Nougat
)
Android 7.0.0 (2016(平成28)年8月23日)
Android 7.1
(Nougat)
Android 7.1.0 (2016(平成28)年10月4日)
Android 7.1.1 (2016(平成28)年12月5日)
Android 7.1.2 (date[2017年4月4日};)
Android 8.0
(
Oreo
)
Android 8.0.0
Android 8.1
(Oreo)
Android 8.1.0
補足
Java
Androidアプリのプログラムを書くための公式なプログラミング言語は
Java
である。
Javaにも様々なバージョンがあるが、どのバージョンまで使えるかはAndroid用のJava仮想マシンである
Dalvik
または
ART
の実装による。つまりAndroidのバージョンによる、とも言える。
Android 4.0以降で考えると、概ね次までが利用できると言える。
Java 6(Java 1.6) ‐ Android 4.3(APIレベル18)まで
Java 7(Java 1.7) ‐ Android 4.4(APIレベル19)以降、Android 6.0(APIレベル23)まで
Java 8(Java 1.8) ‐ Android 7.0(APIレベル24)以降
コンパイラー等により、Java 8の機能のうち、ラムダ式、メソッド参照、タイプ アノテーションについてはAPIレベル23以前でも利用できる(例えばAndroid Studio 2.4以降)。ただしこれは、desugarと呼ばれるツールによりJava 8の言語機能をJava 6水準のバイトコードに変換するため、古いOSでも動作を可能としているものである。
この場合でもJava8言語APIつまり標準ライブラリー(stream、optional等)までは利用できないので、ここまでを求めるのであればAPIレベル24以降対応とせざるをえない。但しかなりユーザーを選ぶことになり、2018(平成30)年現在では、普及率を考えるとあまり現実的な選択とは言えない。
なお、APIレベル24時点では、Java 8の全言語機能にはまだ対応できていない。今後Java 8の言語機能への対応が強化されることがあり、それを使いたいとなれば、その時はそのAPIレベル以上向けのアプリとせざるを得なくなるだろう。
派生品
順不同。
IcedRobot: GNU Classpathと
OpenJDK
でAndroidを実装することを目標とする
Baidu Yi: 支那「百度(Baidu)」のスマートフォン「Streak Pro」で採用
Fire OS
‐ AmazonのKindle FireやFire Phoneなどで採用。Androidに独自カスタマイズを加えたもの
Yun OSまたはAliyun OS (大陸簡体:云OS/阿里云OS、台湾正体:雲OS/阿里雲OS) 雲=クラウドベースOSであるため
China Operating System (COS)
再検索