beryuのチラシの裏

新米エンジニアの個人的なメモ

Androidとは

Androidとは

Androidとは、スマートフォンタブレット端末など、携帯情報端末のために開発されたオペレーションシステム(プラットフォーム)のこと。
Linuxをベースとしたオペレーションシステムを土台に、ハードウェアにアクセスするためのライブラリやアプリを動作するためのソフトウェア、ブラウザーや電話、カメラなどのアプリが集合体がAndroidAndroidを搭載した端末そのもののことをAndroidと呼ぶこともある。

Androidは、アメリカのAndroid社によって開発が進められていたプラットフォーム。
2005年にGoogleに買収され、Google社が中心に設立した業界団体OHA(Open Handset Alliance)によって、オープンソースとして発表された。
Androidは、特定のハードウェアに依存しないことを目標としており、Androidを搭載しているデバイスでは異なるハードウェアであっても、同じアプリが動作する。
Androidの普及は目覚ましく、世界のスマートフォンOSのシェア率では、Androidが約75%を占めている。(日本ではiOSが人気なのでAndroidは約30%)

Androidアーキテクチャ

Androidの内部は様々なコンポーネントで構成されており、大きく分けて5つのレイヤーに分類できる。

1.Linuxカーネル

Androidは、Linuxをベースとしている。
ただし、一般的なLinuxカーネルをそのまま利用するのではなく、モバイルデバイスでの用途が合うように変更を加えている。
主にメモリー管理、電源管理、デバイス(ハードウェア)管理などを担当している。

2.HAL

HAL(Hardware abstraction layer)は、Androidの上位レイヤー(標準ライブラリ)が、下位レイヤー(デバイスドライバーなど)の実装にとらわれることなく機能を提供できようにするための橋渡しを行う層。
ハードウェア抽象化レイヤーと呼ばれることもある。

3-1.標準ライブラリ

Linuxカーネル上で動作するネイティブなライブラリ。
ハードウェアを制御するためのライブラリをはじめ、データベース機能を提供するSQLiteWebブラウザの描画を司るWebKitなどが含まれる。
C言語C++などで書かれており、アプリ開発者がこのレイヤーのライブラリを直接利用することはない。

3-2.Androidランタイム

Androidアプリを実行するための環境。
Java仮想マシンJavaコアライブラリで構成されている。

4.アプリケーションフレームワーク

アプリケーションフレームワークとは、文字通り、アプリを開発するための「枠組み」。
アプリを開発するために必要な機能を提供すると共に、画面の生成/破棄、データ共有や位置情報、通話、通知などを管理する。

アプリケーションフレームワークの主なコンポーネント
  • Activity Manager・・・アクティビティ(画面)の生成〜破棄を管理
  • Window Manager・・・ウィンドウを管理
  • Content Provider・・・アプリ同士のデータ共有を管理
  • Package Manager・・・Androidにインストールされたアプリを管理
  • View System・・・UIを表示し、ユーザーによる操作をアプリに伝達
  • Resource Manager・・・リソース情報を管理
  • Location Manager・・・位置情報を管理
  • Notification Manager・・・ステータスバーへの通知を管理

Androidアプリの開発はこのレイヤーを利用して行う。
アプリとネイティブな標準ライブラリとの橋渡し的な役割を担う。
Androidアプリを学ぶということは、これらのアプリケーションフレームワークを理解することとも言える。

5.アプリ

ブラウザーや電話、カメラ、連絡帳、メールクライアントなど、エンドユーザーが利用するアプリが属するレイヤー。

Androidランタイムとは

続く