Android概要
■公式サイト
http://www.android.com/(英語)
■Developer Announcements(開発者向けサイト)
http://developer.android.com/(英語)
Androidとは
AndroidはNTTドコモ、HTC、Googleなどが参画するOHAによって提供される携帯端末向けのオープンプラットフォームです。
オペレーションシステム、ミドルウェア、キーモバイルアプリケーションを含むモバイル端末のソフトウェアスタックです。
Android上で作成したアプリケーションはAndroidが搭載されている機器ならば、どこでも動作します。
Androidの特徴
・コンポーネントの再利用と再配置を可能にするアプリケーション・フレームワーク
・モバイル機器のために最適化されたDalvik仮想マシン
・WebKitエンジンをベースとした統合ブラウザ
・カスタム2Dグラフィックスライブラリによって最適化されたグラフィックス。OpenGL ES1.0仕様に基づく3Dグラフィックス(ハードウェアアクセラレーションは任意)
・構造化データストレージとしてSQLiteがある
・メディアは一般的なオーディオ、ビデオ、および静止画像フォーマットをサポート(MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF)
・GSM電話(ハードウェア依存)
・Bluetooth、EDGE、3G、とWiFiに対応(ハードウェア依存)
・カメラ、GPS、コンパス、そして加速度計に対応(ハードウェア依存)
・デバイスエミュレータ、デバッグツール、メモリおよびパフォーマンスプロファイリング、およびEclipse IDEのためのプラグインを含む豊かな開発環境
Androidのアーキテクチャ図
アプリケーション(Applications)
すべてのアプリケーションは、 Javaプログラミング言語を使用して書かれています。
アプリケーションフレームワーク(Application Framework)
開発者はコアアプリケーションと同じようにフレームワークAPIにフルアクセスが可能です。
アプリケーションアーキテクチャは、コンポーネントの再利用を簡素化するように設計されています。
あるアプリケーションが公開されている場合、そのアプリケーションの機能を公開でき、別のアプリケーションからそのアプリケーションの機能を活用することが可能です。(フレームワークによるセキュリティ制約に準じる)
これと同じメカニズムでコンポーネントをユーザによって置き換えることが可能です。
ライブラリ(Libraries)
様々なコンポーネントでC/C++ライブラリが利用されているため、AndroidにはC/C++ライブラリが含まれています。
これらの機能はAndroidのアプリケーションフレームワークを通して、開発者に提供されます。
ランタイム(Android Runtime)
AndroidにはJava言語のコアライブラリの大部分の機能を提供するコアライブラリが含まれています。
全てのAndroidアプリケーションは独自のプロセスとして動き、このプロセスはDalvik仮想マシンの独自のインスタンスとなっています。
Dalvikは複数のVMを効果的に動作できるように書かれています。
Dalvik VMは最小メモリのために最適化されたDalvik実行ファイル(.dex)を実行します。
VMはベースレジスタであり、Java言語コンパイラでコンパイルされ、dxツールによって.dexフォーマットに変換されたクラスを実行します。
Linuxカーネル(Linux Kernel)
Androidはセキュリティー、メモリー管理、プロセス管理、ネットワークスタック、そしてドライバーモデルなどのコアシステムサービスをLinuxのバージョン2.6に依存しています。
カーネルは、ハードウエアとソフトウェアスタック間の抽象レイヤーの役目も務めます。
※Android SDK ドキュメントより


