以前ブログに書いた勉強計画からいきなり外れているのだが、
いやまぁ大きくは外れてはいないが。

リアルタイムOSや組み込みLinuxは友人に話が聞きたいので、
相談にのってくれるらしい日にちから勉強開始予定。

SEの基礎は現在進行形で勉強しているのだが、飽きてきた。眠い。
無論そんなことは言ってられないが、気分転換にAndroidのソフト制作の
勉強をすることにした。

実際に会社からは今後役立つだろうと確か言ってたし、無駄にはならない。

という訳で本を購入していたので、勉強開始である。

なるべく理解を深めたいので、
疑問に思った点はなるべく軽くでもいいので調べて行きたい。

というのも組み込みでも活かせると思っているからだ。
まぁ関係あるかないかなんて現時点で判断できる知識はないのだが…。

まずはじめにシステム・アーキテクチャなるものが出てきた。
ようはシステムの設計である。
それによると、
・アプリケーション
・アプリケーションフレームワーク
・ライブラリ
・Androidランタイム
・Linuxカーネル
にわかれるらしい。深追いはしないが、どういう違いがあるのだろうか?

Linuxカーネル
これはどうやらAndroidのOSはこれを利用して作っているということらしい。
メモリーやプロセス管理、セキュリティ、ドライバーの提供など。
まぁこの辺にしておこう。ようはOSの根幹と思えばいいはず。

Androidランタイム
コンポーネント(部品に意味)として、Dalvik仮想マシン、JAVAコアパッケージがあるらしい。
どうやらAndroidを実行するための機能らしい。
Dalvik仮想マシンはメモリ容量が小さい環境でも動くようにGoogleが開発した仮想マシンだそうだ。

ライブラリ
これがいまいちというか、フレームワークとの差を理解してないのが正直なところだ。
複数のアプリから汎用的に利用される機能をまとめたものらしい。
HTMLのレンダリング(データ構造【数値や数式など】で記述された抽象的な情報から、コンピュータのプログラムを用いて画像・映像・音声などを生成すること)とか、
2D3Dのグラフィックエンジンなどがあるらしい。
ライブラリは単体では処理は行わない。

アプリケーションフレームワーク
正直詳しい方に教えてほしい。枠組みの意味であるわけだが。
とりあえず機能を見ていく。
アプリケーションのライフサイクルの管理。ライフサイクルはおそらく、準備や、実行、停止までのことを指しているもよう。間違っていたら本当にすみません。
他にはステータスバーへのアラートや通話、アプリケーション間のデータ共有、UIの管理、ウィンドウの管理(UIと何が違うんだ???画面の範囲?解像度か?分かりません´・ω・`)
等沢山あるようだ。

注意!ここから先は推測である。おそらくフレームワークは処理というかシステムの枠組みをまとめたものである。例えば電話をかける機能、応答、履歴などが一つのシステムとしてそれぞれ相互に関係しあい出来ている。それぞれ連動しあっている機能として一つアプリケーションフレームワークとして提供されている。ライブラリは、例えば○をディスプレイに表示したい時に、メソッドを呼び出すわけだが、ライブラリを利用することで簡単に実装できるようにする。

おそらくこんな感じだろう。と信じたい……。

アプリケーション
Androidアプリのレイヤー(層の意味)らしい。まったく意味不明である。
標準で搭載されているアプリケーションという認識で大丈夫なのだろうか?

アーキテクチャを調べる時間メモればよかった…
この記事作るのにどのくらい時間かかったんだろう?
とりあえずその1はこのあたりで終了する。