試験公開中

このエントリーをはてなブックマークに追加

Androidの仮想マシン Dalvik編

達人出版会

1,500円+税

本書はDalvik仮想マシンの内部についての解説書です。Dalvik仮想マシンの仕様、概念、実装などの深部を知りたい人のための本です。

内容紹介

本書はDalvik仮想マシンの内部についての解説書です。Dalvik仮想マシンの仕様、概念、実装などの深部を知りたい人のための本です。Android LからDalvikからARTへ仮想マシンの変更が予定されていますが、ARTの技術はDalvikの仕様、技術などを引き継いでいます。Dalvikを知りたい人だけでなく、ARTを理解するのに足がかりにするのにも最適な本になっています。

書誌情報

  • 著者: 松永卓也
  • 発行日:
  • 最終更新日: 2015-04-03
  • バージョン: 1.0.0
  • ページ数: 387ページ(PDF版換算)
  • 対応フォーマット: PDF, EPUB
  • 出版社: 達人出版会

対象読者

Dalvik仮想マシンの内部に興味のある上級者

著者について

松永卓也

鳥取県在住の地元大好きプログラマ。プログラマ歴15年のおっさん。ミドルウェア開発が得意。好物は鶏肉。人生迷走中。

目次

まえがき

  • 執筆にあたり
  • 本書の内容
  • 対象読者
  • 本書の読み方
  • 各章の依存関係
  • ソースの取得方法
  • 謝辞

第1部 準備編

第1章 その前に

  • 1.1 この章のポイント
  • 1.2 基本用語
  • 1.3 ソースコードリーディングのヒント
  • 1.4 ソースコード構成

第2章 ハックツール - デバッガ

  • 2.1 この章のポイント
  • 2.2 GDBとDDDとは?
  • 2.3 ホストOS用Dalvik仮想マシン
  • 2.4 デバッガの実行方法
  • 2.5 GDBで実際のデバッグ

第3章 ハックツール - dexdump

  • 3.1 この章のポイント
  • 3.2 dexdumpとは?
  • 3.3 dexdumpの使い方

第2部 仕様編

第4章 アーキテクチャ

  • 4.1 この章のポイント
  • 4.2 仮想マシンとは?
  • 4.3 Dalvik仮想マシン開発の背景
  • 4.4 仮想CPUで使用する用語
  • 4.5 仮想CPUのアーキテクチャ
  • 4.6 Java仮想マシンとの比較

第5章 命令セット

  • 5.1 この章のポイント
  • 5.2 命令セットとは?
  • 5.3 アセンブリ言語
  • 5.4 エンコード規則
  • 5.5 DEXデータを示すインデックス
  • 5.6 64ビット整数値と倍精度浮動小数点
  • 5.7 命令の概要
  • 5.8 逆アセンブラの例

第6章 DEXファイル

  • 6.1 この章のポイント
  • 6.2 実行ファイルとは?
  • 6.3 DEXファイルの概要
  • 6.4 DEXファイルを構成するセクション
  • 6.5 ヘッダセクション
  • 6.6 文字列IDセクション
  • 6.7 型IDセクション
  • 6.8 プロトタイプIDセクション
  • 6.9 フィールドIDセクション
  • 6.10 メソッドIDセクション
  • 6.11 クラス定義セクション
  • 6.12 データセクション
  • 6.13 DEXファイルの単位
  • 6.14 DEXファイルのダンプ例

第3部 実装編

第7章 インタープリタ

  • 7.1 この章のポイント
  • 7.2 インタープリタとは?
  • 7.3 解説で使用する用語
  • 7.4 Dalvik仮想マシンのインタープリタ
  • 7.5 単純なインタープリタ対スレッドインタープリタ
  • 7.6 インタープリタに関連する情報
  • 7.7 インタープリタの実行モード

第8章 Zygoteと起動フロー

  • 8.1 この章のポイント
  • 8.2 Zygoteとは?
  • 8.3 フォークとプリロード
  • 8.4 Linuxの基礎用語
  • 8.5 Dalvik仮想マシンのプロセス
  • 8.6 Zygoteの起動
  • 8.7 Zygoteによるアプリケーションの起動

第9章 ABI

  • 9.1 この章のポイント
  • 9.2 ABIとは?
  • 9.3 オブジェクトフォーマット
  • 9.4 共通ヘッダ
  • 9.5 データオブジェクト
  • 9.6 配列オブジェクト
  • 9.7 文字列オブジェクト
  • 9.8 クラスオブジェクト

第10章 クラスローダ

  • 10.1 この章のポイント
  • 10.2 クラスローダとは?
  • 10.3 クラスロードのフェーズ
  • 10.4 ロードアルゴリズム
  • 10.5 リンクアルゴリズム
  • 10.6 初期化アルゴリズム
  • 10.7 プリミティブ型
  • 10.8 クラスローダの検索アルゴリズム
  • 10.9 DEXファイルの外部リンク
  • 10.10 リニアアロケータ
  • 10.11 Dalvik仮想マシンとJAR地獄

第11章 ベリファイアとオプティマイザ

  • 11.1 この章のポイント
  • 11.2 ベリファイア、オプティマイザとは?
  • 11.3 静的検証
  • 11.4 抽象的インタープリタ
  • 11.5 レジスタマップ
  • 11.6 レジスタマップ生成アルゴリズム
  • 11.7 最適化アルゴリズム

第12章 フィールドとメソッド

  • 12.1 この章のポイント
  • 12.2 フィールドアクセス
  • 12.3 メソッド呼出し
  • 12.4 リフレクション
  • 12.5 例外

第13章 JITコンパイラ

  • 13.1 この章のポイント
  • 13.2 用語の整理
  • 13.3 JITコンパイラの一般知識
  • 13.4 高速化のポイント
  • 13.5 基本概念
  • 13.6 ソースコードリスト
  • 13.7 コンパイルのアウトライン
  • 13.8 コンパイルの詳細
  • 13.9 機械語生成器

第14章 ガベージコレクション

  • 14.1 この章のポイント
  • 14.2 ガベージコレクションの一般知識
  • 14.3 Dalvik仮想マシンのマークアンドスイープ
  • 14.4 Dalvik仮想マシンのコピーガベージコレクション

第15章 JNI

  • 15.1 この章のポイント
  • 15.2 JNIとは?
  • 15.3 JNIのインターフェイス
  • 15.4 JNIプログラミングの例
  • 15.5 ネイティブメソッドの紐付け
  • 15.6 間接参照テーブル
  • 15.7 隠蔽されたオブジェクトの実体

第16章 デバッガ

  • 16.1 この章のポイント
  • 16.2 デバッガの実装
  • 16.3 JDWP仕様
  • 16.4 JDWPパケット処理の流れ
  • 16.5 ステップ実行とブレークポイント

第17章 DDMS

  • 17.1 この章のポイント
  • 17.2 DDMSとは?
  • 17.3 DDMチャンクのハンドリング
  • 17.4 DDMチャンク

第18章 パフォーマンスプロファイラ

  • 18.1 この章のポイント
  • 18.2 パフォーマンスプロファイラとは?
  • 18.3 3つのトレース方法
  • 18.4 スレッドCPUクロックとWallクロック
  • 18.5 メソッドトレース
  • 18.6 サンプルトレース
  • 18.7 エミュレータトレース

第19章 ヒーププロファイラ

  • 19.1 この章のポイント
  • 19.2 ヒーププロファイラとは?
  • 19.3 ヒーププロファイラの使い方
  • 19.4 ヒープダンプの処理
  • 19.5 ヒープメモリ領域情報の取得方法
  • 19.6 ネイティブヒープのメモリリーク検出

第4部 周辺ツール編

第20章 DEXコンパイラ

  • 20.1 この章のポイント
  • 20.2 DEXコンパイラとは?
  • 20.3 DEXコンパイラの使い方
  • 20.4 ソースツリー
  • 20.5 DEXコンパイラの内部表現
  • 20.6 DEXコンパイラの処理
  • 20.7 バイトコードの最適化

第21章 dexopt

  • 21.1 この章のポイント
  • 21.2 dexoptとは?

第22章 dexmaker

  • 22.1 この章のポイント
  • 22.2 dexmakerとは?
  • 22.3 dexmakerの使い方
  • 22.4 ProxyBuilder
  • 22.5 Mockito

第5部 リファレンス編

第23章 命令セットリファレンス

  • 23.1 この章のポイント
  • 23.2 エンコード規則リファレンス
  • 23.3 命令セットリファレンス
  • 23.4 命令で使われるデータ一覧

第24章 DEXファイルリファレンス

  • 24.1 この章のポイント
  • 24.2 ヘッダセクション
  • 24.3 文字列IDセクション
  • 24.4 型IDセクション
  • 24.5 プロトタイプIDセクション
  • 24.6 フィールドIDセクション
  • 24.7 メソッドIDセクション
  • 24.8 クラス定義セクション
  • 24.9 コードアイテム
  • 24.10 エンコードされた値
  • 24.11 アノテーション
  • 24.12 デバッグ情報
  • 24.13 マップアイテム
  • 24.14 データセクションのデータ型
  • 24.15 リンクセクション

第25章 DDMSリファレンス

  • 25.1 この章のポイント
  • 25.2 DDMSの概要
  • 25.3 DDMチャンクリファレンス

第6部 巻末付録

第26章 開発環境構築

  • 26.1 Android OSビルド環境
  • 26.2 Androidアプリケーション開発環境

第27章 擬似コード

  • 27.1 擬似コードの文法
  • 27.2 擬似コード変数
  • 27.3 擬似コード関数

第28章 用語リスト

  • 28.1 アルファベット
  • 28.2 ア行
  • 28.3 カ行
  • 28.4 サ行
  • 28.5 タ行
  • 28.6 ハ行
  • 28.7 マ行
  • 28.8 ラ行

第29章 参考文献

Home 書籍一覧 Androidの仮想マシン Dalvik編 ▲ ページトップへ戻る