Androidのなかみ
Inside Android

Androidのなかみ Inside Android インサイドアンドロイド

Tae Yeon Kim, Hyung Joo Song, Ji Hoon Park,
Bak Lee, Ki Young Lim著

Androidフレームワーク研究会 訳

定価 4,180円(本体 3,800円+税)

ISBN 978-4-89362-288-4

B5変型判 並製 506 頁

2013年12月20日 発売

Androidの内部構造を徹底解剖
ソースコードの分析を通してAndroidフレームワークの全貌に迫る。Androidの動作原理を理解することによって、高品質なアプリの開発を目指す方へ。


書籍版

定価 4,180円
(本体 3,800円+税)



  • 概要
  • 目次


アプリケーション開発者が、Androidフレームワークについて深く理解する必要はあるのだろうか?


Androidが提供する基本アプリケーション(Home、Camera、Dialer、Browser など)は、アプリケーションフレームワーク層の上で動作しています。 開発者は、Android SDKを使用して、アプリケーションフレームワークが提供するAPIを利用すれば、アプリケーションフレームワーク上で動作するAndroidアプリケーションを開発することができます。


すなわち、フレームワークを正しく理解することなく、Androidアプリケーションの開発は可能です。 しかし、フレームワークの構造の理解と動作原理の正しい把握は、Androidフレームワークに最適なソフトウェアの設計に役立ちます。


その一方で、Androidのプラットフォーム開発者は、Android フレームワークへの理解が必須でしょう。 Androidは、オープンソースで提供されているので、競合他社と差別化した製品をつくりだすためには、Androidフレームワークをカスタムマイズし、差別化した自社ソリューションを構築するためには、 Androidフレームワークについての正確で深い理解が必要となります。


本書で紹介するAndroidフレームワークは、Android内部の総括的な説明ではなく、フレームワーク内部の動作原理を理解することです。 そのため、Androidの膨大なソースコードのなかから、frameworks、packages、system フォルダに入っているソースコードについて分析していきます。



本書の記述内容は、(原著刊行時点のバージョンである)Android 2.2に基づいて作成されています。しかし、フレームワークの特性上、1.5から2.2に至るバージョンアップでの フレームワークに関連したソースコードには大きな変化はなく、バージョンに大きくこだわる必要はないといえるでしょう。本書の内容は、それ以降のバージョンでも引き続き利用できると考えています。


※本書日本語版には、原著オリジナル版に対して一部、Android 4.1.2(コードネームJelly Bean)対応の追加修正が加わっています。



  • --------------------
  • • Google、Googleロゴ、Androidは、Google Inc.の登録商標または商標です。
  • • AndroidロボットはGoogle Inc.が著作権を保持しています。
  • • Androidロボットはクリエイティブ・コモンズ表示(Creative Commons Attribution)3.0に基づきライセンスされています。


  • 1 章 Android フレームワークの概要
    • 1.1 Android ソースコードの構造
    • 1.2 ブート処理からみる Android フレームワーク

  • 2 章 Android 開発環境の構築
    • 2.1 ホスト環境の構成
    • 2.2 Android システムのビルド環境の構築
    • 2.3 Nexus 7 に Android システムをインストールする
    • 2.4 Android 開発環境の構築
    • 2.5 Android アプリケーションの開発
    • 2.6 アプリケーションのフレームワークのデバッグ
    • 2.7 Android のログシステム
    • 2.8 まとめ

  • 3 章 init プロセス
    • 3.1 init プロセスの実行過程
    • 3.2 init プロセスのソースコード
    • 3.3 init.rc ファイルと実行
    • 3.4 プロパティサービス
    • 3.5 プロセスの終了と再起動
    • 3.6 デバイスノードファイルの生成
    • 3.7 まとめ

  • 4 章 JNI と NDK
    • 4.1 Android と JNI
    • 4.2 JNI の基本原理
    • 4.3 JNI 関数の使い方
    • 4.4 C プログラムから Java クラスの実行
    • 4.5 JNI ネイティブ関数を直接登録する
    • 4.6 Android NDK での開発

  • 5 章 Zygote
    • 5.1 Zygote とは何か?
    • 5.2 app_process から ZygoteInit クラスを実行する
    • 5.3 ZygoteInit クラスの機能

  • 6 章 Android サービスの概要
    • 6.1 例題プログラム : Android サービスの動作を理解する
    • 6.2 Android サービスの分類
    • 6.3 Android アプリケーションサービス
    • 6.4 システムサービスの種類
    • 6.5 システムサービスの生成
    • 6.6 Android サービスフレームワークとバインダドライバの概要および用語

  • 7 章 Android バインダ IPC
    • 7.1 Linux のメモリ空間とバインダドライバ
    • 7.2 Android バインダのモデル
    • 7.3 Android バインダドライバの分析
    • 7.4 コンテキストマネージャ
    • 7.5 まとめ

  • 8 章 Android サービスフレームワーク
    • 8.1 サービスフレームワーク
    • 8.2 サービスフレームワークの構造
    • 8.3 動作メカニズム
    • 8.4 ネイティブサービスマネージャ
    • 8.5 ネイティブサービス作成
    • 8.6 まとめ

  • 9 章 ネイティブシステムサービスの分析
    • 9.1 カメラサービス(Camera Service)
    • 9.2 カメラアプリケーション
    • 9.3 カメラサービスフレームワーク
    • 9.4 カメラサービスのフレームワーク動作
    • 9.5 まとめ

  • 10 章 Java サービスフレームワーク
    • 10.1 Java サービスフレームワーク
    • 10.2 動作メカニズム
    • 10.3 Java システムサービスの実装
    • 10.4 Java サービスマネージャ
    • 10.5 AIDL を利用したサービスのプロキシとスタブの実装
    • 10.6 まとめ

  • 11 章 Java システムサービスの動作
    • 11.1 アクティビティマネージャサービス
    • 11.2 アクティビティマネージャサービスを使ったサービス生成のコード分析
    • 11.3 まとめ

  • 付録 AIDL 言語の文法

  • 著者あとがき
  • 索引

トップ > コンピュータ書 > Androidのなかみ