インプレスジャパン様より「Androidアプリ 高速化プログラミング」の献本いただきました。ありがとうございます。自分が関与してない技術書で献本受けたのは初めてかもしれない。
NDKの本を出した人間からすれば、興味がそそられないはずがない。
目次
- Javaコードの最適化
- NDKプログラミングを始めよう
- 高度なNDKプログラミング
- メモリを効率的に使用する
- マルチスレッディングと同期
- ベンチマークとプロファイリング
- バッテリーの消費を抑える
- グラフィックスの最適化
- 高速3Dフレームワーク RenderScript
高速化というよりは...
原題が「Pro Android Apps Performance Optimization」なので、アプリの挙動や処理速度を高速化させるための手法が紹介されているというより、開発したアプリをAndroid上で快適に動作させるチューニング手法が紹介されている本、と考えた方がよさそう。
高速化プログラミングとタイトルで謳いながら、「バッテリーの消費を抑える」「RenderScript」といった章があったので、「?」と思ってしまった。どう考えても、この2つは高速化とは関係ないので。で、原題を知って納得した。
そういう意味では、アプリをバリバリ高速化させる方法を期待すると肩すかしを食う(おいらがそうだった)
Javaがメイン
タイトルにある高速化といって期待するのは、個人的にはAndroid NDKな話なのだが、NDKやC/C++/ASMを扱っているのは「2. NDKプログラミングを始めよう」「3. 高度なNDKプログラミング」のみで、あとはJavaの話が中心。Javaでのメモリ管理やスレッドなど。なので、多くのAndroidアプリ開発者にとっては読みやすい本ではないだろうか。
そのなかでも「4.5 ガベージコレクション」「5. マルチスレッディングと同期」はアプリ開発者全員が知っておくべき内容だと思った。
ちなみにNDK周りは、JNIやNativeActivityなどのNDK入門的な内容となっている。
ベースがAndroid 3.1
基本的に、Samsung Galaxy Tab 10.1 & Android 3.1での検証をベースに記述されている本である。いくつかベンチマークを取って具体的な数値(処理時間など)を上げて解説している箇所もあるが、それらはすべて先の端末とAndroidのバージョンでの話である(のはず…)
つまり、現在の主流であるAndroid 2.3.xや、次の主流であろうAndroid 4.0では、また異なる結果となる可能性がある。内容は鵜呑みにせず参考事例としてとらえて、その結果についてはそれぞれのAndroidのバージョンで追試する必要があるように思う。
パフォーマンスが気になりだした開発者向け
とりあえずAndroidのアプリを作成できるようになって、パフォーマンスが気になりだしたら頃に読む本という気がする。あとは、RenderScriptなど他の書籍では扱ってない技術を解説しているので、そのあたりを知りたい人にも。