Android(アンドロイド)は、Googleが主導して開発する汎用モバイルオペレーティングシステム(OS)。Linuxカーネルやオープンソースソフトウェアをベースにしており、主にスマートフォンやタブレットなどのタッチスクリーンデバイス向けにデザインされている。最新バージョンは2026年6月16日にリリースされたAndroid 17。
2026年時点で約39億人のアクティブユーザーを抱える世界で最も使われているオペレーティングシステムであり、iPhoneと区別する際に、Androidスマートフォン全体をさす呼称としても使われる。テレビ用にはAndroid TV、ウェアラブルデバイス用にはWear OS、自動車用にはAndroid Automotive、VR用にはAndroid XR、PC用にはGoogleBook OSがある。
概要 Androidは無償で誰にでも提供されるオープンソースソフトウェアでありGoogleが携帯電話向けプラットフォーム「Android」を発表 |Impress Watch、サードパーティーのベンダーが独自にカスタマイズ出来るように、Apache License 2.0に基づいてAndroidオープンソースプロジェクト(AOSP)として公開されている。AOSPを基盤として端末メーカーや開発者が独自の製品を構築できる一方、Google ChromeやGoogle PlayなどのGoogle独自の一部アプリケーションは、AOSPとは別にGoogle Mobile Service(GMS)としてGoogleに認証された端末に提供される。Androidを搭載する製品はベンダー各社から発売されており、それぞれベンダー固有のブランド名が付けられている。これらはAndroidスマートフォンやAndroidタブレットといった総称で呼ばれる。
Androidは当初、携帯電話向けのプラットフォームとして開発され、その後、タブレット、テレビ、自動車、ウェアラブル、PCなどのデバイスに対応範囲が拡大した。主なデバイス製造元として、国内シェア順にGoogle、Samsung、SHARP、FCNT、OPPOなどが挙げられる。
バージョン
Androidでは主要なリリースごとにバージョン番号が付けられている。歴代のコードネームのうち、Android 1.5から9までは頭文字をCからPまでのアルファベット順に菓子の名称が付けられた。Android 10から12まではアルファベット1文字のみに変更された。また、Android 16からは再度Bからアルファベット順となっている。 バージョンコードネームリリース 1.0 − 2008年9月23日 1.1 − 2009年2月9日 1.5 Cupcake 2009年4月27日 1.6 Donut 2009年9月15日 2.0 - 2.1 Eclair 2009年10月26日 2.2 Froyo 2010年5月20日 2.3 Gingerbread 2010年12月6日 3.0 - 3.2 Honeycomb 2011年2月22日 4.0Ice Cream Sandwich2011年10月18日 4.1 - 4.3Jelly Bean2012年7月9日 4.4 - 4.4WKitKat2013年10月31日 5.0 - 5.1Lollipop2014年11月12日 6.0Marshmallow2015年10月5日 7.0 - 7.1Nougat2016年8月22日 8.0 - 8.1Oreo2017年8月21日 9Pie2018年8月6日 10Q2019年9月3日 11R2020年9月8日 12 - 12LS2021年10月4日 13Tiramisu2022年8月15日 14Upside Down Cake2023年10月4日 15Vanilla Ice Cream2024年10月15日 16Baklava2025年6月10日 17Cinnamon Bun2026年6月16日
歴史 2003年 - アンディ・ルービンらが、カリフォルニア州パロアルトにAndroid社を設立。デジタルカメラOSを開発し、その後、携帯電話向けOSに方向転換する。 2005年 - GoogleがAndroid社を5000万ドルで買収。Googleが独自の携帯電話の開発を進めているという憶測が流れた。 2006年9月 - Googleがモバイル分野で複数の特許を出願。 2007年11月5日 - GoogleはAndroidと、Open Handset Alliance(OHA)を発表。OHAは、Googleを中心とした34社の企業や通信事業者によって設立された団体であり、HTC、T-Mobile、クアルコム、サムスン、モトローラ、NTTドコモ、KDDI、ソニーなどが含まれる。Androidは、携帯電話向けのオープンなソフトウェアプラットフォームとして位置付けられ、端末メーカーや半導体メーカーなどが共通の基盤を利用できるよう設計された。 2008年 9月23日 - Google、T-Mobile、HTCの幹部らがニューヨーク市の地下鉄駅での記者会見で、世界初の商用Android搭載端末としてHTC Dream (T-Mobile G1)を発表。OHAはソフトウェア開発キット(SDK)の正式版「Android 1.0 SDK, Release 1」を発表。OHAはAndroidの全ての動作環境を、2008年中にオープンソースライセンスの1つであるApacheライセンス Ver.2.0の下で公開する方針だとしている。 10月22日 - 世界初のAndroid搭載スマートフォンのT-Mobile G1がT-Mobile USAから全米向けに発売。同時に、Googleはアプリケーションを販売するためのマーケット「Android Market」を開設。 12月9日 - 新たにソフトバンクモバイル、ボーダフォン、東芝、ソニー・エリクソン・モバイルコミュニケーションズ、華為技術、エリクソン、オムロン、ASUS、ガーミン、ARMなどの14社がOHAに加わるOpen Handset Alliance announces 14 new members(英語)Android推進組織OHAにソフトバンクモバイルほか14社が新たに参加。 2009年 6月24日 - ソフトフロント、Android上で双方向VoIP通話に成功。 9月 - 「Android 1.6 SDK」の提供を開始。 10月23日 - HT-03AでAndroid 1.6が提供開始。 11月8日 - アメリカのベライゾン・ワイヤレスからモトローラ製Android 2.0搭載のスマートフォン、「Motorola Droid」がアメリカで販売。 2010年 1月5日 - GoogleからAndroid 2.1を搭載したNexus Oneが発売。 12月16日 - GoogleからAndroid 2.3を搭載したNexus Sがアメリカで発売。 2011年 2月24日 - モトローラ・モビリティからAndroid 3.0を搭載したMotorola Xoomがアメリカで発売。 11月17日 - GoogleからAndroid 4.0を搭載したGalaxy Nexusのグローバルモデル(GT-i9250)がヨーロッパで発売。 2012年 7月10日 - Android 4.1が公開。最初にGalaxy Nexus、Motorola Xoom、Nexus Sのグローバルモデル向けにアップデートを開始。 11月13日 - Android 4.2が公開。Nexus 4とNexus 10に標準搭載されて発売Google、Android 4.2(Jelly Bean)を搭載した「Nexus 4」、「Nexus 7(32GBと3G対応モデル)」、「Nexus 10」を正式発表、11月13日に発売開始、Nexus 7 32GBモデルとNexus 10は日本でも発売。 2013年11月1日 - GoogleからAndroid 4.4を搭載したNexus 5が発売。 2014年 3月18日 - スマートウォッチ向けにカスタマイズされたAndroid Wearをリリース。 6月25日 - カーナビゲーションシステムのAndroid Autoと、Android TVを発表。 9月15日 - Googleから新興国市場向け低価格帯スマートフォンのAndroid Oneを発表。 2016年10月4日 - GoogleはNexusの次世代シリーズであるPixelシリーズを発表。 2017年3月 - GoogleがAndroid Automotiveを発表。 2019年5月 - 米中貿易摩擦により米国がファーウェイに経済制裁をし、Googleサービスの使用を制限した。2019年夏、ファーウェイはAndroidに代わる独自のオペレーティングシステムであるHarmonyOSを開発すると発表し、グローバル市場で知的財産権を申請。 2023年9月6日 - ロゴを刷新。 2024年12月12日 - GoogleはAndroid XRを発表。SamsungとQualcommとの共同開発で構築された。 2026年 5月12日 - GoogleはChromebookの後継機であるGooglebookを発表。オペレーティングシステムはAluminum OS (後のGooglebook OS)とされており、最終的にChrome OSと置き換えられるとされている。 9月21日、Googlebook OSが正式に公開。 9月30日 - Google PlayにてGoogleによる本人確認と認証を受けた開発者の署名がないアプリのインストールを規制。 10月20日 - Googleウォレット上で「Androidのマイナンバーカード」の提供が正式に開始。
特徴 この節では、Android Developersから発表されている標準のAndroid (AOSP) について記述する。サードパーティーが独自に追加(カスタマイズ)した機能は含まない。 ユーザインタフェース
Androidのユーザインタフェース(UI)はサードパーティーの端末メーカーによるカスタマイズが許可されており、通例メーカーごとに独自のUIが搭載されている。カスタマイズが施されていない標準のAndroidは通称AOSP版と言われ、Android Open Source Projectのソースコードから直接ビルドしたものを指す。また、メーカーやサードパーティーが開発したものはカスタムROMと言われている。
Androidの基本操作はタッチインタフェースとなっており、指を使って直感的な操作ができるようになっている。表示されたボタン類を押すタップ、長押しタップ(つまむ)、画面端からタップスライドしてメニュー類を表示するスワイプ、マルチタッチによるピンチや回転などができるようになっているInput Technical Information。画面をタップした際に、ボタンを押したという感覚を起こさせるために、本体をバイブで振動させる機能を持ち合わせる。ジャイロスコープやGPS、加速度センサーなどのハードウェアをサポートしておりSensors Overview、アプリケーション側からそれらにアクセスして活用する事もある。ジャイロスコープは端末を縦向きから横向きに変更する際に使われる事が多い。ゲームの例ではレースゲームで車をハンドル操作する際、端末を傾けてハンドル操作に当てはめるものがあるReal Racing 2 Speeds Into The Android Market – Leaves Part 1 In The Dust。
ホームスクリーン上には、パソコンのデスクトップ画面のようにアプリケーションのアイコンが並び、アプリをインストールするとホームスクリーン上に自動的に配置される。また長押しタップでアイコンを移動したり、フォルダを作成して格納する機能を持つ。これに加えてウィジェットを配置できるようになっている。ウィジェットは、天気予報やニュースなどのライブ情報などがあり、ホームスクリーンから直接見ることができる。ホームスクリーンは画面外にも複数用意されており、画面を左右にスワイプすることで複数のホームスクリーン間を移動できるAndroid instructions。
画面上部にはステータスバーが配置されているステータスバーを非表示にする | Android デベロッパー | Android Developers。ステータスバーは、通知やシステムの状態情報を表示するためのシステムUIである。ステータスバーには通信状態やシステムサービス(Google Mobile Serviceなど)の稼働状況、バッテリー残量、時刻などが表示される。ステータスバーを下方にスワイプすることでクイック設定パネルが表示され、頻繁に使われる機能や各種システム設定(例えばWi-Fi/Bluetooth/機内モード/画面自動回転のON/OFFボタンなど)に素早くアクセスすることができる。クイック設定パネルの下部には通知ドロワーが表示され、通知の詳細を確認したり、各通知からのアプリ操作につなげたりすることができる通知の概要 | Android デベロッパー | Android Developers。通知はステータスバーにもアイコンとして表示され、例えば新着のメールやSMSを受信したりデバイスを接続したりしたときに、ユーザーに作業を中断させることなく知らせることができる。
画面下部には、ハードウェアキー(物理ボタン)方式が廃止されてからは「戻る」ボタン/「ホーム」ボタン/「タスク管理」ボタンによる各操作を実行できる3ボタンナビゲーションバーが、Android 3.x、および4.0以降から配置されているナビゲーション バーを非表示にする | Android デベロッパー | Android Developers。Android 9 Pieではスワイプジェスチャーと、2ボタンナビゲーションが追加され、従来の3ボタンナビゲーションと切り替えられる様になったAndroid 9 Pieの新「ナビゲーションバー」 普及なるか? - ITmedia Mobile。Android 10では2ボタンナビゲーションが削除された「Android 10」使ってみて気づいたいくつかのこと - ITmedia NEWS。初起動時に、3ボタンナビゲーションかスワイプジェスチャーかを選択でき、いつでも設定で切り替えられる。
文字の入力 Androidには文字入力のためのIMEを搭載しており、テキストボックスや検索ボックスなどの入力エリアをタップするなどしてフォーカスを当てると画面上に仮想キーボードが表示される。この仮想キーボードを、タップやスワイプ操作することによって文字を入力できるようになっている。IMEはサービスアプリケーションとして動作し、エンドユーザーが自由にサードパーティー製のIMEをインストールすることも可能になっている。IMEとハードウェアが対応していれば、BluetoothやUSB接続の外付けキーボードを接続して入力することができる。また発声によって文字入力を行う音声入力システムも備える。Googleあるいはサードパーティー製の手書き入力アプリを利用して、指やスタイラスペンなどで書いた文字を認識させることもできる。
なお2018年現在、Androidには標準で日本語入力用のIMEが搭載されていない。そのため、日本語入力を行うには、Google 日本語入力やATOKなどのサードパーティー製IMEをインストールする必要がある。日本国内で販売されている端末は、最初から日本語入力できるようにiWnn、POBox Touch、S-Shoin、ATOK、FSKARENなどが、メーカーによって搭載されている。一部のAndroidデバイスでは、Google純正の新たなIMEであるGboardが最初から搭載されておりGboard の設定 - Android - Gboard ヘルプ、また2017年11月にはGboardが日本語に対応し、追加の言語およびキーボードレイアウトをダウンロードするだけで日本語入力ができるようになった。
アプリケーション Googleの認可を受けた端末には、アプリケーションマーケットとしてGoogle Play(旧:Androidマーケット)がインストールされているAndroid Compatibility。多くの端末では、このGoogle Playからアプリコンテンツをダウンロードして使えるようになっている。2019年9月時点のGoogle Play内では、280万本を超えるアプリケーションが提供されている。
GoogleはGoogle Playを経由しないアプリ配布も認めており、APKファイルから直接インストールできるようになっておりIndependent App Stores Take On Google's Android Market、それらのアプリは野良アプリと呼ばれる。ただし一見普通のアプリに見える悪質なアプリ(マルウェア)も存在するため、公式マーケット以外からのダウンロードには細心の注意が必要であるAndroid OSを標的とした不審なアプリに関する注意喚起 - 情報処理推進機構(IPA)。
ホーム画面管理アプリケーションであるランチャー(Launcher)によって他のアプリケーションを起動することができる。
構成 Androidは、カーネルからミドルウェア、ユーザインタフェース、ウェブブラウザ、電話帳などの標準的なアプリケーション・ソフトウェア群までを1つのパッケージにして提供されている。
AndroidのカーネルにはLinuxが使われているが、その他の部分にはさまざまな技術が採用されている。たとえば、標準Cライブラリ(libc)にはGoogleがAndroid向けに開発したBionicが使われており、これはGNU C Library(glibc)とは異なり、メモリや処理能力が限られたデバイス向けに設計されている。BionicはFreeBSD、NetBSD、OpenBSDのコードと新たに書かれたコードを組み合わせて作られており、BSDライセンスのもとで提供されている。
thumb|550px|left|Androidのアーキテクチャ蓬田宏樹、他著「Androidの野望」日経エレクトロニクス2007年12月17日号 p.47-69。
+ 機能携帯電話網への対応GSM、UMTS、CDMA2000、EV-DO、LTE、3G、4G、5Gその他のネットワーク対応Bluetooth、無線LAN、NFC各種ハードウェアへの対応衛星測位システム、加速度センサ、磁気センサ、2D/3D描画支援ハードウェア(GPU)などウェブブラウザChromiumベースのブラウザが組み込まれている(4.3まではWebKitベース)。この機能は、他のアプリケーションからも利用可能である。メールショートメッセージサービス(SMS)及びマルチメディアメッセージングサービス(MMS)が利用可能である。その他のアプリケーションJavaで作成されたアプリケーションを独自のDalvik仮想マシン/Android Runtime上で動かすことができる。Android 5.0以降では標準の仮想マシンがAndroid Runtime(ART)に変更された。Dalvik/ARTは通常のJava仮想マシンとは異なり、メモリの消費が低く抑えられているなど、モバイル向けに最適化された設計となっている。アプリケーションマーケットGoogleにより、Android用アプリケーションを配布、販売するGoogle Play Storeが運営されている。マルチタッチネイティブに対応しており、HTC Heroなどの機種でサポートされている。ただし、Appleによる特許訴訟を避けるため、2010年2月までは、初期的にはカーネルレベルで無効化されていた。データストレージAPIデータ保存用にSQLiteが組み込まれている。マルチメディアAPIMedia Frameworkと呼ばれる映像と音声用のライブラリにより、H.263、H.264(3GPP/MP4コンテナ)、H.265、 MPEG-4 SP、WebM、AMR、AMR-WB(3GPPコンテナ)、AAC、HE-AAC(MP4/3GPPコンテナ)、MP3、MIDI、Vorbis、WAV、JPEG、PNG、HEIF、GIF、BMP、WebPなどに対応している。フォントFreeTypeフォントライブラリGot CFF? | Google Open Source Blogにより、TrueType、Type1、OpenTypeなどのフォント形式に対応している。その他のライブラリOpenGL ES、Vulkan、OpenSL ES、OpenMAX AL、Skia(SGL)、SSL、zlib、標準Cライブラリ(Bionic)、標準C++ライブラリ(libstdc++/libc++)など
プログラミング言語 カーネルとライブラリ、ランタイムはほとんどがC言語またはC++で記述されているが、2021年から新規コードのデフォルト言語をRustにしており、2022年12月現在では新規コードのRustの占める割合が21%に達している。アプリケーションとアプリケーション・フレームワークは、Google独自に構築した仮想マシンであるDalvik仮想マシンまたはAndroid Runtime(ART)上の「Java Platform, Standard Edition(Java SE)のサブセット+Android拡張」環境で記述する。プリインストールされたアプリ、エンドユーザーが後からインストールするアプリを問わず、共通の仮想マシンおよびフレームワークを使用する。
対応CPU Googleが公式サポートしているCPUはARM(ARMv5以降)、MIPS、x86である。ARM以外の環境はAndroid 2.3から対応した。端末シェアの多くはARMv7とARMv8が占めているが、日本においては2014年3月に大手家電量販店のビックカメラが自社ブランド製品としてIntel Atom搭載のタブレットを発売ビックカメラ、Intel Atom搭載の7.9型Androidタブレット - マイナビニュースするなど、x86による製品もあった。
また、ChromeOSにはAndroidアプリケーションの実行環境としてAndroid Runtime for Chrome(ARC)が搭載されており、x86ベースやARMベースのCPUを搭載するChromebook端末上でAndroidアプリケーションを動作させることもできる。
Microsoft Windows 11では、専用のAndroidサブシステム(Windows Subsystem for Android:WSA)をインストールすることで、x86ベースやARMベースのCPUを搭載するWindows PC上にて、Amazon Appstore経由で入手したAndroidアプリケーションを動作させることもできる(2025年3月5日にサポート終了に伴い非推奨になっている)Android™️ 用 Windows サブシステム |Microsoft Docs。
Androidアプリケーションのパッケージ(APK)には、各種プロセッサのアーキテクチャ固有命令を含むネイティブライブラリを複数含めることができる。エミュレーションにより、x64プロセッサ上でARM32/ARM64ネイティブライブラリのみを含むAndroidアプリケーションを動作させることもできるが、オーバーヘッドを伴う。
カーネル AndroidのカーネルではLinuxカーネルに独自パッチを当てたAndroid共通カーネル(ACK)が使われているカーネルの概要 AOSP。
ACK 5.4より前は各プロセッサーベンダー毎にACKを派生したベンダーカーネルがあり汎用カーネル イメージ AOSP、製品メーカーは製品毎にベンダーカーネル派生のプロダクトカーネルを用意していたが、ACK 5.4以降は外部モジュールを読み込むためのカーネルモジュールインタフェース(KMI)を提供する汎用カーネルイメージ(GKI)となり、各プロセッサーベンダーはベンダーモジュールを提供する形となった。
種類カーネルのURLAndroid共通カーネル(ACK)https://android.googlesource.com/kernel/common/CodeLinaroのカーネル関連コード(Code Aurora Forumの後継CodeAurora.org is now archived. Code Aurora Forum 2023年)https://git.codelinaro.org/clo/la/kernel/
ハードウェア寄りでは開発組織 がベンダー固有コードの本家Linuxカーネルへの還元(アップストリーミング)を続けているLinaro and the Linux Kernel Linaro 2020年11月9日。
またAndroid共通カーネルも少しずつ本家Linuxカーネルへの還元が進んでおり、本家Linuxで受け入れられなかった独自機能もだんだん標準機能やユーザー空間への置き換えが進んでいる。 機能過去のAndroidカーネルAndroidカーネル 6.1現在(太字はAndroidカーネル独自機能)プロセス間通信(IPC)BinderBinder(./drivers/android/内)匿名共有メモリashmemashmem(./drivers/staging/android/内)又は memfd(ashmemは本家Linuxで削除されたLinux 5.18 Linux Kernel Newbiesstaging: remove ashmem kernel.org 2022年3月15日もののアプリの一部で必要となるHow to Get Ashmem Out of Staging - Linux Plumbers Conference 2018 pp.10-11 FERNANDES, Joel 2018年)ログLoggerユーザー空間デーモン(logd)早期OOMlow memory killerPSIモニター+ユーザー空間デーモン(lmkd)ローメモリ キラーデーモン AOSP連続メモリアロケータCMEM/NVMAP/PMEM→IONThe Android ION memory allocator LWN.net 2012年2月8日DMA-BUFTransitioning from ION to DMA-BUF Heaps AOSPデータ使用量モニタリングxt_qtaguideBPFベースeBPF use in Android Networking(and Android Networking vs Linux Kernel in general) Maciej Żenczykowski、Lorenzo Colitti 2019年9月10日ネットワーク権限Paranoid networkeBPFベースリモート操作(ADBのデバイス側)adb USB gadgetThe LPC Android microconference LWN.net 2013年10月17日FunctionFS gadget+ユーザー空間デーモン(adbd)adbd AOSP
仮想マシン