ドキュメント > Androidって何?


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

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へ完全にアクセスできます。
アプリケーションのアーキテクチャは、コンポーネントの再利用を単純化するように設計されています。
どのようなアプリケーションでもその能力を公開することができます。そして、他のどのアプリケーションからもそれらの能力(フレームワークによって実施されるセキュリティ制約に制限される)を利用するかもしれません。このようなメカニズムにより、ユーザーによるコンポーネントの入れ替えを可能にします。

すべてのアプリケーションは、以下のサービスとシステムによって成り立っています。

  • リスト、グリッド、テキストボックス、ボタンと組み込み可能ななウェブブラウザを含むアプリケーションを構築するのに用いることができる豊かで拡張可能なViews?のセット
  • アプリケーションが他のアプリケーション(例えばアドレス帳)のデータにアクセスするか、彼ら自身のデータを共有することを可能にするContent Providers?
  • Resource Manager?(ローカライズされた文字列、グラフィックスとレイアウトファイルのような非コード資源を提供する)
  • すべてのアプリケーションがステータスバーでカスタムメイドのアラートを表示することを可能にするNotification Manager?
  • アプリケーションのライフサイクルを管理して、共通のナビゲーション履歴を提供するActivity Manager?

アプリケーションの詳細とウォークスルーについてはAndroidアプリケーションについて?を参照してください。

ライブラリ

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のコアシステムサービス(セキュリティ、メモリ管理、プロセス管理、ネットワークスタックとドライバーモデル)で成り立っています。また、カーネルはハードウェアと残りのソフトウェアスタックの間の抽象レイヤーの働きもしています。



ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル