Android NDKネイティブプログラミング 第2版

Android NDKネイティブプログラミング 第2版
著者 出村成和
ジャンル IT系書籍 > プログラミング言語
書店発売日 2012/12/20
ISBN 9784798036304
判型・ページ数 B5変・392ページ
定価 2860円
(本体2600円+税10%)
在庫 品切れ・重版未定

この本に関するお問い合わせ・感想

Androidアプリ開発環境Android SDKのサブセット、Android NDKの開設方法からハードウェアまであますところなく解説したガイドブックです。AndroidアプリケーションはJavaで開発するのが一般的ですが、ゲーム開発などハードウェアの性能を最大限に引き出したいときには、Android NDKを使ってアプリの一部もしくは全てをC/C++言語で作成します。本書は、Android NDKのメリット/デメリット、Android NDKのセットアップ、JavaとC/C++のコードを相互に呼び出すためのフレームワークJNIの使い方、グラフィックやサウンドなどの各種ライブラリの使い方、CPUアーキテクチャなどのハードウェア寄りの知識まで解説します。最新のNDKr8対応。

【サポートはこちら】https://www.shuwasystem.co.jp/support/7980html/3630.html
Chapter 1 Android NDKとは
01.01 本書について
01.02 開発ライブラリについて
01.02.01 Android SDKとは
01.02.02 Android NDKとは
01.03 実行ファイルが生成されるまで
01.04 Android NDK付属のライブラリ
01.04.01 JNI
01.04.02 Linuxシステムコール
01.04.03 OpenGL|ES
01.04.04 AndroidBitmap
01.04.05 NativeActivity
01.04.06 OpenSL|ES
01.04.07 デバイス入力
01.04.08 ファイル読み込み
01.04.09 マルチメディア
01.05 Androidの内部構造(レイヤー)
01.05.01 Linuxカーネル
01.05.02 HAL
01.05.03 LibrariesとAndroid Runtime
01.05.04 Application Framework
01.05.05 アプリケーション
01.06 アプリケーション実行環境について
01.07 Android NDKのメリット/デメリット
01.07.01 メリット
01.07.02 デメリット
01.07.03 NDKのファイル構成
01.08 セットアップ
01.08.01 ファイルのダウンロード
01.08.02 Mac OS X、Linuxの場合
01.08.03 Windowsの場合
01.09 プロジェクトを作成する
01.09.01 Androidアプリのプロジェクトを作成
01.09.02 C/C++で置き換える
01.09.03 アプリケーションをビルド、実行する
01.10 まとめ

Chapter 2 JNI(Java Native Interface)
02.01 JNIとは
02.01.01 JNIの特徴
02.02 メモリ管理
02.03 JNIの規約
02.03.01 型名
02.03.02 メソッド定義
02.03.03 配列
02.03.04 シグネチャ
02.03.05 フィールド変数
02.03.06 文字列
02.03.07 Javaのクラス、メソッド
02.03.08 例外
02.03.09 リトルエンディアンとビッグエンディアン
02.04 JNIオブジェクト参照
02.04.01 ローカル参照
02.04.02 グローバル参照
02.04.03 ローカル参照フレーム
02.05 まとまったデータを扱う
02.06 CheckJNI
02.06.01 有効化する
02.06.02 サンプルコード
02.07 ログ出力
02.08 ネイティブメソッドからJavaのコードを呼ぶ
02.09 JNIHelpを利用する
02.10 まとめ

Chapter 3 NativeActivity
03.01 NativeActivityとは
03.02 NativeActivityとゲーム
03.02.01 GCの依存度が減らせる
03.02.02 Javaで書くコードが減る
03.03 イベント
03.04 NativeActivityの制約
03.05 ノンブロック処理
03.05.01 データ受信完了をチェックし続ける(ブロック処理)
03.05.02 コールバック関数を利用する(ノンブロック処理)
03.05.03 ANR(Android Not Responding)
03.06 NativeActivityGlue
03.06.01 android_main関数について
03.06.02 初期化処理
03.06.03 ループ処理
03.06.04 AndroidManifest.xmlの定義
03.06.05 Android.mkファイル
03.06.06 サンプルコード
03.07 まとめ

Chapter 4 OpenGL|ES
04.01 OpenGLとOpenGL|ES
04.01.01 OpenGL|ES 1.1と2.0
04.02 描画対象
04.02.01 Viewクラス
04.02.02 SurfaceViewクラス
04.02.03 NativeWindow
04.03 AndroidにおけるOpenGL|ES
04.03.01 EGL
04.03.02 注意点
04.04 サンプルコード(OpenGL|ES 1.1)
04.04.01 処理の流れ
04.04.02 EGLを利用した描画領域の初期化
04.04.03 立方体の描画
04.04.04 終了処理
04.04.05 Android.mkファイル
04.04.06 サンプル全文
04.05 サンプルコード(OpenGL|ES 2.0)
04.05.01 Vector, Matrixクラスの導入
04.05.02 EGLによる初期化
04.05.03 シェーディング言語
04.05.04 シェーディング言語の初期化
04.05.05 シェーディング言語による演算
04.05.06 立方体の描画
04.05.07 AndroidManifest.xml
04.05.08 Android.mkファイル
04.05.09 プログラム全文
04.06 AndroidBitmap
04.06.01 処理の流れ
04.06.02 画像フォーマット
04.06.03 Android.mkファイル
04.06.04 サンプルコード
04.07 まとめ

Chapter 5 サウンド
05.01 OpenSL|ESについて
05.01.01 OpenSL|ES for Android
05.01.02 処理の流れ
05.01.03 制御できる音の種類
05.02 サウンドフォーマット
05.03 再生と録音
05.03.01 再生
05.03.02 録音
05.04 データソース
05.04.01 データソースとデータ形式
05.05 Android extensions
05.05.01 Android Configuration
05.05.02 Androidシンプルバッファキューとインターフェイス
05.05.03 Androidファイルディスクリプタデータロケータ
05.06 エフェクト
05.06.01 制約
05.06.02 シーンごとのリバーブ
05.07 サンプルコード
05.07.01 オブジェクトとインターフェイス
05.07.02 初期化
05.07.03 バッファキューの設定
05.07.04 サウンドの再生
05.07.05 MP3データの再生準備?(Assetsフォルダ内のファイル)
05.07.06 MP3データの再生
05.07.07 MP3データの再生準備?(URIで指定したファイル)
05.07.08 録音の準備
05.07.09 録音
05.07.10 エフェクト(環境リバーブ)の初期化
05.07.11 エフェクト(環境リバーブ)をかける
05.07.12 終了処理
05.08 設定
05.08.01 AndroidManifest.xml
05.08.02 Android.mk
05.09 制約について
05.09.01 Objectの制約
05.09.02 録音の制約
05.09.03 シーク(再生位置の移動)についての制約
05.09.04 データ構造についての制約
05.09.05 プラットフォームによる設定
05.10 まとめ

Chapter 6 マルチメディア
06.01 OpenMAX AL
06.02 OpenMAX AL for Android
06.02.01 特徴
06.02.02 再生可能なデータ
06.02.03 描画先
06.03 サンプルコード
06.03.01 Javaでの処理
06.03.02 Cでの処理
06.04 Android.mkファイル
06.05 まとめ

Chapter 7 入出力(センサー、キーボード、ファイル)
07.01 センサーライブラリ
07.02 タッチイベント
07.02.01 座標系
07.02.02 サンプルコード
07.03 キー入力
07.03.01 キーボードとキーコード
07.03.02 サンプルコード
07.04 センサー
07.04.01 加速度センサー
07.04.02 磁気センサー
07.04.03 ジャイロスコープ
07.04.04 光センサー
07.04.05 近接センサー
07.04.06 ASensorEvent構造体
07.04.07 サンプルコード
07.05 Configuration
07.05.01 サンプルコード
07.06 Assets
07.06.01 Assetsとリソース
07.06.02 サンプルコード

Chapter 8 ツール(コンパイラ、デバッガ)
08.01 toolchain
08.01.01 利用するtoolchainを指定する
08.02 C++の機能
08.02.01 例外機構
08.02.02 RTTI(実行時型情報)
08.03 C++ランタイムライブラリ
08.03.01 ライブラリの指定
08.03.02 ライブラリのビルド
08.03.03 ランタイムライブラリのリンク
08.04 gccの拡張機能
08.04.01 範囲設定
08.04.02 長さゼロの配列
08.04.03 インライン関数
08.04.04 構造体
08.05 外部モジュールの参照
08.05.01 外部モジュールの作成方法
08.05.02 サンプル
08.05.03 外部モジュールの参照設定
08.05.04 NDK_MODULE_PATHの設定
08.05.05 モジュールがあるフォルダを指定する
08.05.06 モジュールを指定する
08.05.07 サンプル
08.06 定数
08.07 ndk-build
08.08 ndk-stack
08.08.01 使い方
08.09 CCache
08.09.01 設定方法
08.10 独立したtoolchain
08.10.01 toolchainの構成を決める
08.10.02 toolchainの作成方法
08.10.03 推奨される設定
08.11 ndk-gdb
08.11.01 デバッグ用ビルド
08.11.02 デバッグ手順
08.11.03 gdbの使い方
08.12 Eclipseからデバッグする
08.12.01 ビルド方法
08.12.02 デバッグ方法
08.13 まとめ

Chapter 9 アーキテクチャ
09.01 サポートしているアーキテクチャ
09.02 ARMプロセッサ
09.03 Cortex-Aシリーズ
09.03.01 特徴
09.03.02 ARMv5TE
09.03.03 ARMv7-a
09.04 アーキテクチャの構成
09.04.01 命令について
09.04.02 パイプライン
09.04.03 動的分岐予測
09.04.04 実行タイミング
09.05 メモリ
09.06 L1キャッシュとL2キャッシュ
09.06.01 キャッシュのしくみ
09.07 ABI
09.07.01 関数の引数
09.07.02 armeabi
09.07.03 armeabi-v7a
09.07.04 出力する命令セットを指定する
09.07.05 CPUアーキテクチャと共有モジュールの関係
09.08 CPUアーキテクチャ、機能を判別する
09.08.01 CPUアーキテクチャを判別する
09.08.02 利用できる命令を判別する
09.08.03 Android.mkファイル
09.09 まとめ

Chapter 10 最適化
10.01 最適化の手順
10.01.01 デバッグを完了させる
10.01.02 問題箇所を特定する
10.01.03 アルゴリズムの再検討
10.01.04 最適化を行う
10.02 問題箇所の特定
10.02.01 実行時間の計測
10.02.02 Linuxのシステム関数を利用
10.02.03 TraceViewを利用
10.02.04 TraceViewで計測する
10.03 最適化の手法
10.03.01 実行バイナリの実行効率向上
10.03.02 無駄なメモリアクセスの排除
10.03.03 キャッシュヒット率の向上
10.04 実行バイナリの実行効率の向上
10.04.01 CPUの命令をフル活用する
10.04.02 パイプラインを命令で埋める
10.04.03 分岐予測をコードに含める
10.05 キャッシュヒット率の向上
10.05.01 インストラクションキャッシュを有効活用する
10.05.02 データキャッシュを有効活用する
10.06 gccによる最適化
10.06.01 restrictとは
10.06.02 サンプルコード
10.07 グラフィックスの最適化
10.07.01 グラフィックスの最適化
10.08 小数演算
10.08.01 浮動小数点演算
10.08.02 固定小数点演算
10.08.03 サンプルコード
10.09 まとめ

Chapter 11 NEON
11.01 ARM命令とNEON命令
11.01.01 ARM命令による演算
11.01.02 NEON命令による演算
11.02 NEON命令の詳細
11.02.01 レジスタについて
11.02.02 NEON命令の内訳
11.02.03 サチュレート
11.02.04 NEON命令が利用可能かチェック
11.02.05 ARM命令、NEON命令の有効化
11.03 NEON命令を利用する
11.03.01 インラインアセンブラを利用する
11.03.02 NEON命令を使った行列演算
11.04 ベクトル化
11.04.01 ベクトル化されやすいコード
11.04.02 コンパイラオプション
11.04.03 サンプルコード
11.05 まとめ

Chapter 12 OSSライブラリを利用する
12.01 開発環境設定
12.02 libpng
12.02.01 libpngをビルド
12.02.02 Androidアプリに組み込む
12.02.03 PNG画像をテクスチャに変換
12.02.04 立方体の表示
12.02.05 ビルド、実行
12.03 Lua
12.03.01 Luaのダウンロード
12.03.02 toolchainでビルド準備
12.03.03 ビルド
12.03.04 Androidアプリのプロジェクトを作成する
12.03.05 Javaでの処理
12.03.06 Cでの処理
12.04 まとめ

Chapter 13 リファレンス
13.01 ndk-buildコマンド
13.01.01 オプション
13.01.02 要求する環境
13.02 Android.mkファイル
13.02.01 予約語
13.02.02 機能
13.02.03 関数マクロ
13.02.04 モジュールに関する記述
13.03 Application.mkファイル

ご注文

シェアする

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

同じジャンルの商品

お知らせ

一覧