SL4A-Androidアーキテクチャ
Androidソフトウェアスタックはさまざまなレイヤーで構成されており、各レイヤーは明確に定義された動作を示し、その上のレイヤーに特定のサービスを提供します。次の図は、Androidの幅広いアーキテクチャとその主要コンポーネントを示しています。
Linuxカーネル
Androidは、従来のLinuxシステムとは異なり、組み込みシステムで実行するように変更されたLinuxカーネルコードに基づいて構築されています。多くの一般的なデバイスのハードウェアドライバーがカーネルに組み込まれているため、デバイスの移植性が保証されます。これは、安全なユーザーベースのアクセス許可モデルに基づいており、あるアプリケーションが別のアプリケーションの情報を読み取ったり、その実行(CPU、メモリ、デバイスなど)を妨害したりするのを防ぎます。
ネットワークおよびBluetooth機能、ロガー、アラーム、電源管理、低メモリキラー、バインダーIPCメカニズムへのグループIDベースのアクセスは、カーネルのいくつかの注目すべき拡張機能です。
ライブラリとランタイム
これは、アーキテクチャの第2層を形成します。これには、ハードウェアに最適化されたC、C ++ライブラリのセットが含まれており、ネイティブレイヤーとも呼ばれます。例としては、メディアライブラリ、SQLite、SSL、Bionic、WebKitなどがあります。
Androidランタイムは、DalvikVMとコアライブラリの2つの異なるコンポーネントで構成されています。Dalvik VMは、Androidプラットフォーム上のアプリケーションの実行環境を提供します。コアライブラリのセットは、JavaAPIで利用可能なほとんどの機能を提供します。
アプリケーションフレームワーク
このレイヤーは、ライブラリをアプリケーションへのサービスとして利用できるようにします。このレイヤー内の最も重要なコンポーネントには、Location Manager、Resource Manager、Activity Manager、NotificationManagerが含まれます。
アプリケーション
デフォルトでは、Androidには、ブラウザ、SMSプログラム、カレンダー、連絡先管理ツール、地図などの豊富なアプリケーションセットが付属しています。ユーザーが希望する場合、GooglePlayはこれらのアプリケーションの代替手段を提供します。
ビルディングブロック
アプリケーションは、4つの機能ブロックを使用してシステムとインターフェースできます。それらは次のとおりです-
Activities−アクティビティは、ユーザーが視覚的に表示または操作する単一の画面を表します。たとえば、電子メールアプリには、新しい電子メールのリストを表示する1つのアクティビティ、電子メールを作成するための別のアクティビティ、および電子メールを読むための別のアクティビティがある場合があります。
Services−処理の大部分は、アプリケーションのこれらのサービスによって実行されます。これは、ユーザーインターフェイスの背後にあるロジックです。たとえば、サービスは、ユーザーが別のアプリを使用しているときにバックグラウンドで音楽を再生したり、ユーザーのアクティビティとのやり取りをブロックせずにネットワーク経由でデータをフェッチしたりする場合があります。
Broadcast Receivers−システムまたはアプリケーションのイベントをリッスンし、それらに関する通知を発行するために登録できるコンポーネント。システムから発信されたブロードキャストのインスタンスは 'low battery notification'アプリケーションレベルのブロードキャストは'download successful' お知らせ。
Content Providers−コンテンツプロバイダーは、複数のアプリケーション間でデータを管理および共有するのを支援します。たとえば、コンテンツプロバイダーを使用して連絡先データを共有することができます。
これらのコンポーネントは、と呼ばれるメッセージを介して相互作用します Intents。