Android-architecture

提供:Dev Guides
移動先:案内検索

Android-アーキテクチャ

Androidオペレーティングシステムは、ソフトウェアコンポーネントのスタックであり、以下のアーキテクチャ図に示すように、5つのセクションと4つのメインレイヤーに大まかに分けられています。

Androidアーキテクチャ

Linuxカーネル

レイヤーの下部にはLinux-Linux 3.6があり、約115のパッチがあります。 これにより、デバイスハードウェア間の抽象化レベルが提供され、カメラ、キーパッド、ディスプレイなどのすべての重要なハードウェアドライバーが含まれます。 また、カーネルは、ネットワーキングや周辺機器ハードウェアとのインターフェースの苦痛から解放される膨大な数のデバイスドライバーなど、Linuxが本当に得意とするすべてのことを処理します。

図書館

Linuxカーネルの上部には、オープンソースWebブラウザーエンジンWebKit、よく知られているライブラリlibc、アプリケーションデータの保存と共有に便利なSQLiteデータベース、オーディオとビデオを再生および記録するライブラリ、SSLを含むライブラリのセットがあります。インターネットセキュリティなどを担当するライブラリ

Androidライブラリ

このカテゴリには、Android開発に固有のJavaベースのライブラリが含まれます。 このカテゴリのライブラリの例には、ユーザーインターフェイスの構築、グラフィックス描画、およびデータベースアクセスを容易にするライブラリに加えて、アプリケーションフレームワークライブラリが含まれます。 Android開発者が利用できるいくつかの主要なAndroidライブラリの概要は次のとおりです-

  • android.app -アプリケーションモデルへのアクセスを提供し、すべてのAndroidアプリケーションの基盤です。
  • android.content -アプリケーションとアプリケーションコンポーネント間のコンテンツアクセス、公開、およびメッセージングを促進します。
  • android.database -コンテンツプロバイダーによって公開されたデータにアクセスするために使用され、SQLiteデータベース管理クラスが含まれます。
  • android.opengl -OpenGL ES 3DグラフィックスレンダリングAPIへのJavaインターフェイス。
  • android.os -メッセージ、システムサービス、プロセス間通信などの標準オペレーティングシステムサービスへのアクセスをアプリケーションに提供します。
  • android.text -デバイスディスプレイ上のテキストのレンダリングと操作に使用されます。
  • android.view -アプリケーションユーザーインターフェイスの基本的な構成要素。
  • android.widget -ボタン、ラベル、リストビュー、レイアウトマネージャー、ラジオボタンなど、事前に構築されたユーザーインターフェイスコンポーネントの豊富なコレクション
  • android.webkit -Web閲覧機能をアプリケーションに組み込むことを目的としたクラスのセット。

AndroidランタイムでJavaベースのコアライブラリについて説明したので、Androidソフトウェアスタックのこのレイヤーに含まれるC/C ++ベースのライブラリに注目しましょう。

Androidランタイム

これは、アーキテクチャの3番目のセクションであり、下から2番目のレイヤーで使用できます。 このセクションでは、Android用に特別に設計および最適化されたJava仮想マシンの一種である Dalvik Virtual Machine と呼ばれる主要なコンポーネントを提供します。

Dalvik VMは、Java言語に固有のメモリ管理やマルチスレッドなどのLinuxコア機能を利用します。 Dalvik VMを使用すると、Dalvik仮想マシンの独自のインスタンスを使用して、すべてのAndroidアプリケーションを独自のプロセスで実行できます。

Androidランタイムは、Androidアプリケーション開発者が標準のJavaプログラミング言語を使用してAndroidアプリケーションを作成できるようにするコアライブラリのセットも提供します。

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

Application Frameworkレイヤーは、Javaクラスの形式でアプリケーションに多くの高レベルのサービスを提供します。 アプリケーション開発者は、アプリケーションでこれらのサービスを利用できます。

Androidフレームワークには、次の主要なサービスが含まれています-

  • Activity Manager -アプリケーションのライフサイクルとアクティビティスタックのすべての側面を制御します。
  • コンテンツプロバイダー-アプリケーションが他のアプリケーションとデータを公開および共有できるようにします。
  • リソースマネージャー-文字列、色設定、ユーザーインターフェイスレイアウトなどの非コード埋め込みリソースへのアクセスを提供します。
  • Notifications Manager -アプリケーションがユーザーにアラートと通知を表示できるようにします。
  • View System -アプリケーションユーザーインターフェイスの作成に使用される拡張可能なビューのセット。

アプリケーション

すべてのAndroidアプリケーションは最上層にあります。 この層にのみインストールするアプリケーションを作成します。 そのようなアプリケーションの例としては、連絡帳、ブラウザ、ゲームなどがあります。