「Androidを支える技術<II>」読んだ

Amazonアフィリンク

先の版の続編。先はどのようにレンダリングされるかを追っていたのに対し、今回はタスクやActivityとそのライフサイクルを扱っている。先と同様、Androidアプリ開発ではなくて、Androidの本体をテーマに扱っている。

先のは個人的にがっかり感があったけど、今回のは手応えがあった気がする。アプリのライフサイクルやメモリ回収といった、従来型OSでは扱わなかった(というか仕組み上扱えなかった)ところをどのように実装しているのかについてちゃんと理解できた。Androidの利用者視点で見えるアプリのサイクルから、おぼろげながらに裏の実装を推測してはいたけど、そこをスッキリさせてくれた。

一番気になっていたのがいわゆるLow Memory Killer。LinuxカーネルにはOOM Killerが入っているのは有名だけど、それとの役割分担やら、shrinkerの仕組み使ってるやらについて、大枠を知ることができたのが大きかった。詳細はどうせソースコード見て理解するしかないので、その入り口がわかったのがよかった。

アプリのライフサイクルについては、現状どうなってるのかへの理解はともかく、今後マルチウィンドウやらマルチタスクやらが進化したときにどう変わっていくのかについては気がかりなところではある。画面小さくてメモリ少ない環境に特化したからこそこの設計なわけで、今となってはRAMも比較的潤沢、タブレットのような大画面ものも出てきている、となると必ずしも現状のがいいとは限らないしねぇ。

というわけで、先のと同様、Androidアプリしか書いたこと内容な初級から中級の人が中身をより理解するのには非常によい本だと思う。さらに、現代的なパソコン向けOSのマルチタスク環境の上でどうやれば「いつkillされてもkillされていないかのように見える」アプリ環境を構築するのか、を知りたい人に非常にオススメ。反面、先と同様、JavaもC++もシェルスクリプトもUNIX的知識もある程度知ってる前提なので、本当の初心者には敷居が高い。

てか、先も書いたけど、この著者あまりハードについては詳しくないよなぁ。まぁ今回もハードはあまり本筋のところではないけど。

このブログ記事について

このページは、らるるが2017年4月 2日 18:56に書いたブログ記事です。

ひとつ前のブログ記事は「Linux雑多メモ(2017/03/29)」です。

次のブログ記事は「「テスト駆動開発による組み込みプログラミング」読んだ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0