Sl4a-android-architecture

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

SL4A-Androidアーキテクチャ

Androidソフトウェアスタックはさまざまなレイヤーで構成され、各レイヤーは明確に定義された動作を明示し、その上のレイヤーに特定のサービスを提供します。 次の図は、Androidの広範なアーキテクチャとその主要コンポーネントを示しています。

Androidアーキテクチャ

Linuxカーネル

Androidは、従来のLinuxシステムに対して組み込みシステムで実行するように変更されたLinuxカーネルコードに基づいて構築されています。 多くの一般的なデバイスのハードウェアドライバーがカーネルに組み込まれているため、デバイスの移植性が確保されます。 安全なユーザーベースの許可モデルに基づいており、あるアプリケーションが別のアプリケーションの情報を読み取ったり、その実行に干渉したりするのを防ぎます(例: CPU、メモリ、デバイスなど)。

ネットワークおよびBluetooth機能、ロガー、アラーム、電源管理、低メモリキラー、バインダーIPCメカニズムへのグループIDベースのアクセスは、カーネルのいくつかの注目すべき機能強化です。

ライブラリとランタイム

これは、アーキテクチャの2番目の層を形成します。 ハードウェアに最適化されたC、C ++ライブラリのセット(ネイティブレイヤーとも呼ばれます)が含まれています。 例には、メディアライブラリ、SQLite、SSL、Bionic、WebKitなどが含まれます。

Androidランタイムは、Dalvik VMとCore Librariesの2つの異なるコンポーネントで構成されています。 Dalvik VMは、Androidプラットフォーム上のアプリケーションに実行環境を提供します。 コアライブラリのセットは、Java APIで使用可能な機能のほとんどを提供します。

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

この層は、アプリケーションへのサービスとしてライブラリを利用可能にします。 このレイヤー内の最も重要なコンポーネントには、ロケーションマネージャー、リソースマネージャー、アクティビティマネージャー、通知マネージャーがあります。

アプリケーション

デフォルトでは、Androidにはブラウザー、SMSプログラム、カレンダー、連絡先マネージャー、地図などの豊富なアプリケーションセットが付属しています。 ユーザーが希望する場合、Google Playはこれらのアプリケーションの代替手段を提供します。

ビルディングブロック

アプリケーションは、4つの機能ブロックでシステムとインターフェイスできます。 彼らは次のとおりです-

  • アクティビティ-アクティビティは、ユーザーが視覚的に表示または対話する単一の画面を表します。 たとえば、メールアプリには、新しいメールのリストを表示する1つのアクティビティ、メールを作成する別のアクティビティ、およびメールを読むための別のアクティビティがあります。
  • サービス-処理の大部分は、アプリケーションのこれらのサービスによって行われます。 これは、ユーザーインターフェイスの背後にあるロジックです。 たとえば、サービスがユーザーが別のアプリを使用しているときにバックグラウンドで音楽を再生したり、ユーザーのアクティビティとの対話をブロックせずにネットワーク経由でデータを取得したりできます。
  • Broadcast Receivers -システムまたはアプリケーションイベントをリッスンし、それに関する通知を発行するために登録できるコンポーネント。 システムから発信されるブロードキャストのインスタンスは「ローバッテリー通知」であり、アプリケーションレベルのブロードキャストは「ダウンロード成功」通知です。
  • コンテンツプロバイダー-コンテンツプロバイダーは、複数のアプリケーション間でデータを管理および支援します。 例えば コンテンツプロバイダーを使用して、連絡先データを共有できます。

これらのコンポーネントは、 Intents と呼ばれるメッセージを通じて相互に作用します。