Android-アーキテクチャ

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

Linuxカーネル

レイヤーの最下部にはLinuxがあります-Linux3.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 ES3DグラフィックスレンダリングAPIへのJavaインターフェイス。

  • android.os −メッセージ、システムサービス、プロセス間通信などの標準オペレーティングシステムサービスへのアクセスをアプリケーションに提供します。

  • android.text −デバイスディスプレイ上のテキストをレンダリングおよび操作するために使用されます。

  • android.view −アプリケーションユーザーインターフェイスの基本的な構成要素。

  • android.widget −ボタン、ラベル、リストビュー、レイアウトマネージャー、ラジオボタンなどの構築済みのユーザーインターフェイスコンポーネントの豊富なコレクション。

  • android.webkit −Webブラウジング機能をアプリケーションに組み込むことを目的としたクラスのセット。

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

Androidランタイム

これはアーキテクチャの3番目のセクションであり、下から2番目のレイヤーで使用できます。このセクションでは、Dalvik Virtual Machine これは、Android用に特別に設計および最適化されたJava仮想マシンの一種です。

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

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

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

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

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

  • Activity Manager −アプリケーションのライフサイクルとアクティビティスタックのすべての側面を制御します。

  • Content Providers −アプリケーションがデータを公開して他のアプリケーションと共有できるようにします。

  • Resource Manager −文字列、色設定、ユーザーインターフェイスレイアウトなどのコード以外の埋め込みリソースへのアクセスを提供します。

  • Notifications Manager −アプリケーションがアラートと通知をユーザーに表示できるようにします。

  • View System −アプリケーションのユーザーインターフェイスを作成するために使用される拡張可能なビューのセット。

アプリケーション

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