「ドキュメント/Androidって何?」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
&topicpath(top=Top,notop)
*Androidって何?
Androidは、オペレーティングシステム、ミドルウェアと鍵となるアプリケーションを含むモバイル端末のためのソフトウェアスタックです。
Android SDKのこの早めのリリースは、Javaプログラミング言語を使用しているAndroidプラットホームでアプリケーションを開発し始めるのに必要なツールとAPIを提供します。
**特徴
-コンポーネントの再利用と置き換えを可能にするアプリケーションフレームワーク
-モバイル端末に最適化したダルヴィーク(Dalvik)ヴァーチャルマシン
-オープンソース[[WebKit>http://webkit.org/]]エンジンに基づく統合化されたブラウザー
-カスタム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オペレーティングシステムの主要コンポーネント図です。各々のセクションの詳細は下記に続きます。
#ref(system-architecture.png)
**アプリケーション
Androidは電子メールクライアント、SMSプログラム、カレンダー、地図、ブラウザー、コンタクト(アドレス帳)、その他を含む一組のコアアプリケーションを搭載します。すべてのアプリケーションは、Javaプログラミング言語を使用して記述されます。
**アプリケーションフレームワーク
開発者はコアアプリケーションに用いられるものと同じフレームワークAPIへ完全にアクセスできます。
アプリケーションのアーキテクチャは、コンポーネントの再利用を単純化するように設計されています。
どのようなアプリケーションでもその能力を公開することができます。そして、他のどのアプリケーションからもそれらの能力(フレームワークによって実施されるセキュリティ制約に制限される)を利用するかもしれません。このようなメカニズムにより、ユーザーによるコンポーネントの入れ替えを可能にします。
すべてのアプリケーションは、以下のサービスとシステムによって成り立っています。
-リスト、グリッド、テキストボックス、ボタンと組み込み可能ななウェブブラウザを含むアプリケーションを構築するのに用いることができる豊かで拡張可能な[[Views>ドキュメント/Views]]のセット
-アプリケーションが他のアプリケーション(例えばアドレス帳)のデータにアクセスするか、彼ら自身のデータを共有することを可能にする[[Content Providers>ドキュメント/Content Providers]]
-[[Resource Manager>ドキュメント/Resource Manager]](ローカライズされた文字列、グラフィックスとレイアウトファイルのような非コード資源を提供する)
-すべてのアプリケーションがステータスバーでカスタムメイドのアラートを表示することを可能にする[[Notification Manager>ドキュメント/Notification Manager]]
-アプリケーションのライフサイクルを管理して、共通のナビゲーション履歴を提供する[[Activity Manager>ドキュメント/Activity Manager]]
アプリケーションの詳細とウォークスルーについては[[Androidアプリケーションについて>ドキュメント/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のコアシステムサービス(セキュリティ、メモリ管理、プロセス管理、ネットワークスタックとドライバーモデル)で成り立っています。また、カーネルはハードウェアと残りのソフトウェアスタックの間の抽象レイヤーの働きもしています。
-[[次 → Androidことはじめ>ドキュメント/Androidことはじめ]]
-[[戻る>ドキュメント]]
&topicpath(top=Top,notop)
*Androidって何?
Androidは、オペレーティングシステム、ミドルウェアと鍵となるアプリケーションを含むモバイル端末のためのソフトウェアスタックです。
Android SDKのこの早めのリリースは、Javaプログラミング言語を使用しているAndroidプラットホームでアプリケーションを開発し始めるのに必要なツールとAPIを提供します。
**特徴
-コンポーネントの再利用と置き換えを可能にするアプリケーションフレームワーク
-モバイル端末に最適化したダルヴィーク(Dalvik)ヴァーチャルマシン
-オープンソース[[WebKit>http://webkit.org/]]エンジンに基づく統合化されたブラウザー
-カスタム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オペレーティングシステムの主要コンポーネント図です。各々のセクションの詳細は下記に続きます。
#ref(system-architecture.png)
**アプリケーション
Androidは電子メールクライアント、SMSプログラム、カレンダー、地図、ブラウザー、コンタクト(アドレス帳)、その他を含む一組のコアアプリケーションを搭載します。すべてのアプリケーションは、Javaプログラミング言語を使用して記述されます。
**アプリケーションフレームワーク
開発者はコアアプリケーションに用いられるものと同じフレームワークAPIへ完全にアクセスできます。
アプリケーションのアーキテクチャは、コンポーネントの再利用を単純化するように設計されています。
どのようなアプリケーションでもその能力を公開することができます。そして、他のどのアプリケーションからもそれらの能力(フレームワークによって実施されるセキュリティ制約に制限される)を利用するかもしれません。このようなメカニズムにより、ユーザーによるコンポーネントの入れ替えを可能にします。
すべてのアプリケーションは、以下のサービスとシステムによって成り立っています。
-リスト、グリッド、テキストボックス、ボタンと組み込み可能ななウェブブラウザを含むアプリケーションを構築するのに用いることができる豊かで拡張可能な[[Views>ドキュメント/Views]]のセット
-アプリケーションが他のアプリケーション(例えばアドレス帳)のデータにアクセスするか、彼ら自身のデータを共有することを可能にする[[Content Providers>ドキュメント/Content Providers]]
-[[Resource Manager>ドキュメント/Resource Manager]](ローカライズされた文字列、グラフィックスとレイアウトファイルのような非コード資源を提供する)
-すべてのアプリケーションがステータスバーでカスタムメイドのアラートを表示することを可能にする[[Notification Manager>ドキュメント/Notification Manager]]
-アプリケーションのライフサイクルを管理して、共通のナビゲーション履歴を提供する[[Activity Manager>ドキュメント/Activity Manager]]
アプリケーションの詳細とウォークスルーについては[[Androidアプリケーションについて>ドキュメント/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のコアシステムサービス(セキュリティ、メモリ管理、プロセス管理、ネットワークスタックとドライバーモデル)で成り立っています。また、カーネルはハードウェアと残りのソフトウェアスタックの間の抽象レイヤーの働きもしています。
-[[次 → Androidことはじめ>ドキュメント/Androidことはじめ]]
-[[戻る>ドキュメント]]
-[[原文>http://code.google.com/android/what-is-android.html]]