Androidって何?
Androidは、オペレーティングシステム、ミドルウェアと鍵となるアプリケーションを含むモバイル端末のためのソフトウェアスタックです。
Android SDKのこの早めのリリースは、Javaプログラミング言語を使用しているAndroidプラットホームでアプリケーションを開発し始めるのに必要なツールとAPIを提供します。
特徴
コンポーネントの再利用と置き換えを可能にするアプリケーションフレームワーク
モバイル端末に最適化したダルヴィーク(Dalvik)ヴァーチャルマシン
オープンソース
WebKit
エンジンに基づく統合化されたブラウザー
カスタム2Dグラフィックライブラリによる最適化されたグラフィックス
3DグラフィックはOpenGL ES 1.0の仕様準拠(ハードウェアアクセラレーションは任意)
構造化されたデータ領域のためのSQLite搭載
一般的なオーディオ、ビデオと静止画フォーマットをサポート(MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF)
GSM通話(ハードウェア依存)
Bluetooth、EDGE、3G、WiFiに対応(ハードウェア依存)
カメラ、GPS、コンパス、加速度計(ハードウェア依存)
リッチな開発環境、端末エミュレーター、デバッグ、メモリー、パフォーマンスのプロファイリングのツール、およびEclipse IDE用のプラグイン
Androidのアーキテクチャ
以下は、Androidオペレーティングシステムの主要コンポーネント図です。各々のセクションの詳細は下記に続きます。
アプリケーション
Androidは電子メールクライアント、SMSプログラム、カレンダー、地図、ブラウザー、コンタクト(アドレス帳)、その他を含む一組のコアアプリケーションを搭載します。すべてのアプリケーションは、Javaプログラミング言語を使用して記述されます。
アプリケーションフレームワーク
開発者はコアアプリケーションに用いられるものと同じフレームワークAPIへ完全にアクセスできます。
アプリケーションのアーキテクチャは、コンポーネントの再利用を単純化するように設計されています。
どのようなアプリケーションでもその能力を公開することができます。そして、他のどのアプリケーションからもそれらの能力(フレームワークによって実施されるセキュリティ制約に制限される)を利用するかもしれません。このようなメカニズムにより、ユーザーによるコンポーネントの入れ替えを可能にします。
すべてのアプリケーションは、以下のサービスとシステムによって成り立っています。
ライブラリ
Androidは、Androidシステムの多様ななコンポーネントにより用いられるC/C++ライブラリのセットを含みます。
これらの能力は、Androidアプリケーションフレームワークを通して開発者に公開されます。
主なライブラリは以下の通りです。
システムCライブラリ
標準的なCシステムライブラリ(libc)。(組み込み向けLinuxベースのデバイスのために調整した)BSDから派生した実装です。
メディアライブラリ
PacketVideo社のOpenCOREをベースにしています。ライブラリは、多くの一般的なオーディオとビデオ形式(MPEG4、H.264、MP3、AAC、AMR、JPGとPNGのような静止画を含む)の再生とレコーディングをサポートします。
Surface Manager
表示サブシステムへのアクセスを管理して、複数のアプリケーションからシームレスに2Dと3Dグラフィックレイヤーを合成します
LibWebCore
Androidブラウザーと組み込み可能なウェブ表示を可能にする最新のウェブブラウザエンジン
SGL
下位層にある2Dグラフィックエンジン
3Dライブラリ
OpenGL ES 1.0のAPIに準拠しています。ライブラリはハードウェア3Dアクセラレーション(ハードウェア依存)、あるいは標準装備の高度に最適化された3Dソフトウェアラスタライザーを使用します。
FreeType
ビットマップとベクターフォントのレンダリング
SQLite
すべてのアプリケーションで利用可能な強力で軽量なリレーショナルデータベースエンジン
Androidランタイム
Androidは、Javaプログラミング言語のコアライブラリの機能の大部分を提供するコアライブラリを含んでいます。
あらゆるAndroidアプリケーションはDalvik VMのインスタンスをアプリケーション毎に生成することによって、独立したプロセスで動作します。
Dalvik VMはデバイスが効率的に複数のヴァーチャルマシンを走らせることができるように作られています。
Dalvik VMは、省メモリのために最適化されたDalvikで実行可能なフォーマット(.dex)を使用してファイルを実行します。
VMはレジスターに基づいた、Java言語コンパイラによってコンパイルされたクラスを付属の"dx"ツールを使用して.dexフォーマットに変換したものを実行します。
Dalvik VMは、Linuxカーネルの根底にある機能(例えばスレッディングと低レベルのメモリ管理)で成り立っています。
Linuxカーネル
Androidは、Linux 2.6のコアシステムサービス(セキュリティ、メモリ管理、プロセス管理、ネットワークスタックとドライバーモデル)で成り立っています。また、カーネルはハードウェアと残りのソフトウェアスタックの間の抽象レイヤーの働きもしています。
最終更新:2007年11月21日 13:16