《Android C++高级编程——使用NDK》
第1章 Android平台上的C++入门 1
1.1 Microsoft Windows 1
1.1.1 在Windows平台上下载并安装JDK开发包 2
1.1.2 在Windows平台上下载并安装Apache ANT 5
1.1.3 在Windows平台上下载并安装Android SDK 7
1.1.4 在Windows平台上下载并安装Cygwin 8
1.1.5 在Windows平台上下载并安装Android NDK 11
1.1.6 在Windows平台上下载并安装Eclipse 13
1.2 Apple Mac OS X 14
1.2.1 在Mac平台上安装Xcode 14
1.2.2 验证Mac平台的Java开发包 15
1.2.3 验证Mac平台上的Apache ANT 15
1.2.4 验证GNU Make 16
1.2.5 在Mac平台上下载并安装Android SDK 16
1.2.6 在Mac平台上下载并安装Android NDK 18
1.2.7 在Mac平台上下载并安装Eclipse 19
1.3 Ubuntu Linux 20
1.3.1 检查GNU C库版本 20
1.3.2 激活在64位系统上支持32位的功能 21
1.3.3 在Linux平台上下载并安装Java开发工具包(JDK) 21
1.3.4 在Linux平台上下载并安装Apache ANT 22
1.3.5 在Linux平台上下载并安装GNU Make 22
1.3.6 在Linux平台上下载并安装Android SDK 23
1.3.7 在Linux平台上下载并安装Android NDK 24
1.3.8 在Linux平台上下载并安装Eclipse 25
1.4 下载并安装ADT 26
1.4.1 安装Android平台包 29
1.4.2 配置模拟器 30
1.5 小结 33
第2章 深入了解Android NDK 35
2.1 Android NDK提供的组件 35
2.2 Android NDK的结构 36
2.3 以一个示例开始 36
2.3.1 指定Android NDK的位置 37
2.3.2 导入示例项目 37
2.3.3 向项目中添加原生支持 39
2.3.4 运行项目 40
2.3.5 用命令行对项目进行构建 41
2.3.6 检测Android NDK项目的结构 42
2.4 构建系统 42
2.4.1 Android.mk 43
2.4.2 Application.mk 53
2.5 使用NDK-Build脚本 54
2.6 排除构建系统故障 55
2.7 小结 56
第3章 用JNI实现与原生代码通信 57
3.1 什么是JNI 57
3.2 以一个示例开始 57
3.2.1 原生方法的声明 58
3.2.2 加载共享库 58
3.2.3 实现原生方法 59
3.3 数据类型 64
3.3.1 基本数据类型 64
3.3.2 引用类型 64
3.4 对引用数据类型的操作 65
3.4.1 字符串操作 65
3.4.2 数组操作 67
3.4.3 NIO 操作 68
3.4.4 访问域 69
3.4.5 调用方法 71
3.4.6 域和方法描述符 72
3.5 异常处理 75
3.5.1 捕获异常 75
3.5.2 抛出异常 75
3.6 局部和全局引用 76
3.6.1 局部引用 76
3.6.2 全局引用 76
3.6.3 弱全局引用 77
3.7 线程 78
3.7.1 同步 78
3.7.2 原生线程 79
3.8 小结 79
第4章 使用SWIG自动生成JNI代码 81
4.1 什么是SWIG 81
4.2 安装 82
4.2.1 Windows平台上SWIG的安装 82
4.2.2 在Mac OS X下安装 83
4.2.3 在Ubuntu Linux下安装 85
4.3 通过示例程序试用SWIG 86
4.3.1 接口文件 86
4.3.2 在命令行方式下调用SWIG 89
4.3.3 将SWIG集成到Android构建过程中 90
4.3.4 更新Activity 92
4.3.5 执行应用程序 93
4.3.6 剖析生成的代码 93
4.4 封装C语言代码 94
4.4.1 全局变量 94
4.4.2 常量 95
............