Google Androidの構成を調べてみた

Androidアーキテクチャについては以下のページに書いてある。英語が・・。
Android Platform  |  Android Developers
http://developer.android.com/images/system-architecture.jpg

  • Applications
    • ま、見たまんま私たちが作るアプリケーションの層です。
  • Application Framework
  • Android Runtime
    • Androidのランタイム。VMにはDalvik VMというのが使われてるらしい。
  • Liblaries
    • C/C++で書かれたライブラリらしいです。SQLiteなんかもあるらしい。
  • Linux Kernel

アプリケーションフレームワークについて

  • View
    • アプリケーションのGUIコンポーネント。テキストボックスやグリッドやボタンといったものがある。あと、組み込みWebブラウザなんてのもあるらしい。
  • Content Providers
    • 他のアプリケーションのデータにアクセスすることができるらしい。
  • Resource Manager
    • 画面に表示するテキスト等の値を外部に定義することで、コードの変更なしに英語や日本語に対応させることができるらしい。
  • Notification Manager
    • すべてのアプリケーションはステータスバーに独自のアラートを表示させることができるらしい。
  • Activity Manager
    • アプリケーションのライフサイクルを管理し、ナビゲーションのbackstackを提供ってあるけど、バックスタックてなんだろw

ランタイムについて

上にも書いたように、DalvikというVM上でアプリケーションは動作します。
Andoroidの全てのアプリケーションは一つ一つ別々のLinuxのプロセスとして実行され、あるアプリケーションがクラッシュしても他のアプリケーションに影響を与えないようになっているらしい。(Dalvik、Androidのバーチャルマシーンが激しい論議を巻き起こす)これは、Google Chromeとかと同じ考え方なんだろうね。

ライブラリについて

Cでかかれたライブラリたち。Javaからアクセスするのかこれから調査。SQLiteとかは分かるんだけどね。

ブラウザについて

ブラウザには、WebKitというオープンソースのエンジンをベースとした物が載っているらしい。WebKitってのはAppleとかが開発しているWebブラウザエンジンのことらしい(WebKit - Wikipedia)