iPhoneが作られているとき LinuxベースのスマホOSが数社開発中だった
その1つがAndroid OS。
機種依存がないJavaアプリをできるだけ軽く動作させることを目指した。
そもそもJavaアプリはすでに動作しているOS上でVM(バーチャルマシン)を動作させさらにその上でJavaアプリが動いているので非力なモバイルで動作させるのには難がある。
そこで移植性にすぐれたLinuxカーネルにLinuxドライバを使い、さらに軽量化された独自VM上で専用UIで動作させた。
スマホ用 Andoroid 2とタブレット向けAndroid 3を4で統合。
JavaアプリはどもどもJITといって違うCPUでも動作させるため起動時にビルドという行為を行っているのでOS起動時にアプリを起動させるのが重い(アプリごとにビルドされる)
それを軽くさせる機能を開発していたところを買収吸収し、Android 4.4からネイティブで動作可能とさせていたがデフォルトでは従来のまま。Android 4.5からAndroidアプリがネイティブで軽く動作するようになった。
OSとハードの関係は昔から変わらずOSがどんどん重くなりハードが追従していくといったのを繰り返す。
スマホアプリLINEなんかでわかるが、本来の機能にどんどんいらない機能を付けまくって重たくなっていく。
どっかのサイトみたいなもんだ。