0%

基本信息

名称: C语言接口与实现 创建可重用软件的技术
作者信息: 作者: David R. Hanson [ 中文 pdf ]

简单介绍

《C语言接口与实现:创建可重用软件的技术》可重用的软件模块是构建大规模可靠应用程序的基石,创建可重用的软件模块是每个程序员和项目经理必须掌握的技能。C语言对创建可重用的API提供的语言和功能支持非常少,虽然C程序员写应用时都会用到API和库,但却很少有人去创建和发布新的能广泛应用的API。《C语言接口与实现:创建可重用软件的技术》介绍用一种基于接口的设计方法创建可重用的API,这一方法将接口与实现分离开来,且与语言无关。书中详细描述了T24个接口及其实现,便于读者深入了解此方法。这些接口涉及很多计算机领域的知识,包括数据结构、算法、字符串处理和并发程序。《C语言接口与实现:创建可重用软件的技术》是C语言领域的经典名著,出版十余年仍畅销不衰,是几代程序员倍加推崇的力作。《C语言接口与实现:创建可重用软件的技术》特色:接口描述简单明了,程序员可将此书用作相关接口的参考手册,深入剖析如何将数据结构及其相关算法打包成可重用的模块,分析了全部24个API和8个示例应用的源代码,揭秘了许多鲜有文档的C语言编程技巧。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
第1章 引言 1
1.1 文学程序 2
1.2 程序设计风格 6
1.3 效率 8
1.4 扩展阅读 9
1.5 习题 9

第2章 接口与实现 11 2.1 接口 11 2.2 实现 13 2.3 抽象数据类型 15 2.4 客户程序的职责 17 2.5 效率 21 2.6 扩展阅读 22 2.7 习题 22

第3章 原子 24 3.1 接口 24 3.2 实现 25 3.3 扩展阅读 30 3.4 习题 31

第4章 异常与断言 33 4.1 接口 35 4.2 实现 38 4.3 断言 44 4.4 扩展阅读 46 4.5 习题 47

第5章 内存管理 49 5.1 接口 50 5.2 产品实现 54 5.3 稽核实现 55 5.4 扩展阅读 62 5.5 习题 63

第6章 再谈内存管理 65 6.1 接口 65 6.2 实现 67 6.3 扩展阅读 72 6.4 习题 73

第7章 链表 75 7.1 接口 75 7.2 实现 79 7.3 扩展阅读 83 7.4 习题 83

第8章 表 84 8.1 接口 84 8.2 例子:词频 87 8.3 实现 91 8.4 扩展阅读 97 8.5 习题 97

第9章 集合 99 9.1 接口 99 9.2 例子:交叉引用列表 101 9.3 实现 107 9.3.1 成员操作 109 9.3.2 集合操作 111 9.4 扩展阅读 114 9.5 习题 115

第10章 动态数组 116 10.1 接口 116 10.2 实现 119 10.3 扩展阅读 122 10.4 习题 122

第11章 序列 123 11.1 接口 123 11.2 实现 125 11.3 扩展阅读 129 11.4 习题 129

第12章 环 131 12.1 接口 131 12.2 实现 134 12.3 扩展阅读 141 12.4 习题 141

第13章 位向量 142 13.1 接口 142 13.2 实现 144 13.2.1 成员操作 146 13.2.2 比较 150 13.2.3 集合操作 151 13.3 扩展阅读 152 13.4 习题 153

第14章 格式化 154 14.1 接口 154 14.1.1 格式化函数 155 14.1.2 转换函数 157 14.2 实现 160 14.2.1 格式化函数 161 14.2.2 转换函数 166 14.3 扩展阅读 170 14.4 习题 171

第15章 低级字符串 172 15.1 接口 173 15.2 例子:输出标识符 178 15.3 实现 179 15.3.1 字符串操作 180 15.3.2 分析字符串 184 15.3.3 转换函数 188 15.4 扩展阅读 189 15.5 习题 189

第16章 高级字符串 192 16.1 接口 192 16.2 实现 197 16.2.1 字符串操作 200 16.2.2 内存管理 204 16.2.3 分析字符串 205 16.2.4 转换函数 209 16.3 扩展阅读 210 16.4 习题 210

第17章 扩展精度算术 212 17.1 接口 212 17.2 实现 217 17.2.1 加减法 218 17.2.2 乘法 220 17.2.3 除法和比较 221 17.2.4 移位 226 17.2.5 字符串转换 228 17.3 扩展阅读 230 17.4 习题 230

第18章 任意精度算术 232 18.1 接口 232 18.2 例子:计算器 235 18.3 实现 240 18.3.1 取反和乘法 242 18.3.2 加减法 243 18.3.3 除法 246 18.3.4 取幂 247 18.3.5 比较 249 18.3.6 便捷函数 250 18.3.7 移位 251 18.3.8 与字符串和整数的转换 252 18.4 扩展阅读 254 18.5 习题 255

第19章 多精度算术 257 19.1 接口 257 19.2 例子:另一个计算器 263 19.3 实现 269 19.3.1 转换 272 19.3.2 无符号算术 275 19.3.3 有符号算术 277 19.3.4 便捷函数 280 19.3.5 比较和逻辑操作 285 19.3.6 字符串转换 288 19.4 扩展阅读 290 19.5 习题 291

第20章 线程 292 20.1 接口 294 20.1.1 线程 294 20.1.2 一般信号量 298 20.1.3 同步通信通道 301 20.2 例子 301 20.2.1 并发排序 302 20.2.2 临界区 305 20.2.3 生成素数 307 20.3 实现 311 20.3.1 同步通信通道 311 20.3.2 线程 313 20.3.3 线程创建和上下文切换 322 20.3.4 抢占 328 20.3.5 一般信号量 330 20.3.6 MIPS和ALPHA上的上下文切换 332 20.4 扩展阅读 335 20.5 习题 336

附录A 接口摘要 339

参考书目 363

亚马逊链接

基本信息

名称: Android 4.0网络编程详解
作者信息: 作者: 王家林 [ 中文 pdf ]

简单介绍

《Android 4.0网络编程详解》:双DVD光盘、配书教学视频、《Android 4.0网络编程详解》配套代码包、以开发中遇到的问题代码的解决方案为主线、解决Android网络编程中实际会遇到的诸多问题。《Android 4.0网络编程详解》专注于移动互联网智能终端操作系统和应用软件的开发,内容涉及iOS、Android和Windows Phone等系统的详细解析。应用软件、游戏的开发以及UI设计等。◆本丛书的作者均具有多年的开发经验,有来自于国内著名的Android、iOS、Windows Phone开发团队和科研机构的开发人员,也有乐于分享的技术达人,实战经验丰富。◆本丛书力求从多个技术角度将移动互联网智能终端软件开发的重点、难点及解决方法呈现给读者,使读者通过系统的学习,可以在移动互联网迅猛发展的浪潮中自由遨游。◆本丛书中基于Android平台的图书包含Android商业软件项目全程实战,移植、测试、管理,网络编程,NDK编程,软件、硬件、云的整合之道等多方面内容。国士工作室,国士工作室是一支专注于Android平台企业级应用开发的技术团队,致力于做最佳的Android应用程序开发机构,提供最佳的Android企业级应用开发培训服务,对娱乐多媒体应用、LBS、手机安全等领域有着深刻的理解和研发能力,致力服务于企业用户。为音/视频等娱乐多媒体网站、手机门户网站、SNS、论坛、电子商务等传统网络应用向移动互联网发展提供解决方案和技术支持,提供手机安全技术和服务,为企业提供Android培训服务等。目前,国士工作室正在务实且卓有成效地与各种传统网络服务商合作,发展迅速,并渴望有志之士的加入,为共同成为最好的Android软件开发、咨询、培训公司而奋斗,为智能手机和移动互联网时代贡献力量!

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
第1章  Android 4.0开发环境搭建和测试
1.1 下载所需要的软件
1.2 安装所需要的软件
1.3 第一个Android 4.0程序
1.4 剖析Android 4.0程序的组织结构
1.5 Android 4.0模拟器无3G信号的解决方案

第2章 Android 4.0的软件测试和调试 2.1 Android 4.0的软件测试 2.2 Android 4.0的软件调试

第3章 Android 4.0网络下的XML和JSON 3.1 Android 4.0中使用到的XML剖析 3.2 使用SAX解析XML 3.3 使用DOM解析XML 3.4 使用PULL解析XML 3.5 使用PULL生成XML 3.6 SAX、DOM、PULL的比较

第4章 HTTP协议剖析 4.1 HTTP协议概述 4.2 HTTP协议实例剖析

第5章 Android中的网络数据下载 5.1 获取网络上的图片 5.2 获取网络上的网页代码 5.3 获取网络上的XML 5.4 获取网络上的JSON数据 5.5 Java SE单线程下载网络上的音/视频等大文件 5.6 Java SE多线程下载网络上的音/视频等大文件 5.7 Android多线程断点续传下载网络上的音/视频等大文件

第6章 Android中的网络数据上传 6.1 通过GET方式传递数据给服务器以及中文乱码的解决方案 6.2 通过POST方式传递数据给服务器 6.3 通过开源框架HttpClient的方式传递数据给服务器 6.4 Android发送XML数据给服务器 6.5 用手机号码归属地查询的实际商业案例实战Android调用WebService 6.6 通过HTTP协议实现文件上传

第7章 Android中的Socket编程 7.1 TCP/IP协议与Socket通信 7.2 Socket通信的一般过程 7.3 Socket编程实战——Android聊天室实例 7.4 Android中通过Socket协议实现断点续传上传音/视频等大文件

第8章 Android中的浏览器编程 8.1 WebView简介 8.2 WebView浏览网页简单示例 8.3 WebView浏览网页复杂示例 8.4 Android中软件界面设计新大陆——采用HTML设计软件界面

第9章 彻底剖析Android中软件的启动和退出 9.1 软件启动过程深入剖析 9.2 单个Activity和多个Acitivity退出及源码剖析 9.3 退出软件方式 附录 如何成为Android高手V2.0:结合云计算和智能终端、软硬整合

亚马逊链接

基本信息

名称: Android开发从入门到精通
作者信息: 作者: 扶松柏 [ 中文 pdf ]

简单介绍

《Android开发从入门到精通》定位于Android的中高级用户,还可以作为向此领域发展的程序员的参考书。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
第1章走进Android世界
1.1智能手机飞速发展
1.1.1主流手机系统介绍
1.1.2Android横空出世
1.2Android何以风靡世界
1.2.1丰厚的奖励机制
1.2.2商家的支持
1.2.3光明的前景
1.3搭建Android应用开发环境
1.3.1安装AndroidSDK的系统要求
1.3.2安装JDK、Eclipse、AndroidSDK
1.3.3设定AndroidSDKHome
l.3.4验证开发环境
1.3.5创建Android虚拟设备(AVD)
1.3.6常见的几个问题
1.3.7SDK工具集
1.4Android模拟器
1.4.1Android模拟器简介
1.4.2模拟器和真机究竟有何区别
1.4.3模拟器简单总结
1.5纵览Andr0Id体系
1.5.1简析Android安装文件
1.5.2Android体系结构介绍
1.5.3Android应用工程文件组成
1.5.4应用程序的生命周期
第2塞界面布局实战演练
2.1使用线性布局(LinearLayout)
2.2使用相对布局(RelativeLavout)
2.3使用表格布局(TableLayout)
2.4使用绝对布局(AbsoluteLayout)
2.5使用标签布局(TabLayout)
2.6使用层布局(FrameLayout)
2.7使用桌面组件Widget来布局
2.7.1在屏幕中实现一个按钮效果
2.7.2在屏幕中显示一段文字
2.7.3设置手机屏幕中的字体
2.7.4在屏幕中显示编辑框
2.7.5在屏幕中显示复选框
2.7.6在屏幕中显示单选框
2.7.7在屏幕中显示下拉列表框
2.7.8在屏幕中实现自动输入文本
第3章基本控件实战演练
3.1使用RadioGroup控件实现选择处理
3.2使用屏幕中实现一个购物清单
3.3在手机屏幕中实现相框效果
3.4在屏幕中实现选择处理
3.5在屏幕中实现一个相簿功能
3.6开发一个文件搜索程序
3.7模拟实现一个时钟效果
3.8在手机屏幕中实现进度条效果
3.9开发一个自动选择日期和时间的程序
3.10在收集屏幕中显示磁盘中的图片
3.11触动Menu菜单控件
3.12使用SimpleAdapter实现ListView组件的效果
3.13在屏幕中实现抽屉样式效果
3.14使用Toast和Notification实现提醒效果
3.15添加/删除Spinnerl的菜单
第4章数据存储实战演练
4.1使用SharedPrefererices存储
4.2使用SQLite存储
4.3使用ContentProyider存储
4.4开发一个日记簿项目
4.5升级日记簿功能
第5章通信领域实战演练
5.1拨号、邮件和网址处理
5.2拨打电话
5.3发送短信交互
5.4发送邮件
5.5实现震动效果
5.6搜索通讯录
5.7使用Wi—Fi
5.8触摸拨号
5.9获取设备运营商信息
第6章自动服务实战演练
6.1来短信自动提醒
6.2自动显示剩余电量
6.3来短信E—mail通知
6.4来电后显示提示信息
6.5获取手机存储卡的容量
6.5.1一些基本知识
6.5.2具体实现
6.6闹钟到时响
6.7黑名单来电自动静音
6.8监听发送的短信是否成功
第7章互联网实战演练
7.1浏览指定的网页
7.2加载显示HTML程序
7.3使用浏览器打开网页
7.4显示网络中的照片
7.5播放在线音乐
7.6下载在线手机铃声
7.7开发一个简易RSS系统
第日章多媒傩实战演练
8.1获取图片的宽和高
8.2绘制各种几何图形
8.3开发一个手机屏保程序
8.4在屏幕上触摸移动照片
8.5调节音量
8.6播放MP3音乐
8.7开发一个录音机程序
8.8开发一个拍照程序
8.9开发一个视频播放器
第9章Google地图实战演练
9.1获取当前位置的坐标
9.2在手机中使用谷歌地图
9.3输入坐标后在地图中实现定位
9.4在手机中实现地址查询
9.5实现路径导航
9.6移动手机时自动更新位置
9.7在地图中绘制线路并计算距离
9.8在谷歌地图中显示指定的位置
第10章GoogleApI实战演练
10.1模拟验证官方账号
10.2实现Google搜索
10.3在手机中生成二维条码
1O.4手机翻译
第11章游戏实战演练
11.1益智类游戏——魔塔
11.2竞技类游戏——中国象棋
第12章优化和发布项目
12.1UI界面中优化之标签
12.2测试计算机的性能
12.3测试内存性能
12.4AndroidLayout优化
12.5优化模拟器
12.6发布自己的作品来盈利
12.6.1申请会员
12.6.2生成签名文件
12.6.3使用签名文件
12.6.4发布

亚马逊链接

基本信息

名称: C语言学习路线图•C语言必须知道的300个问题
作者信息: 作者: 明日科技 [ 中文 pdf ]

简单介绍

《C语言学习路线图•C语言必须知道的300个问题》提供了内容丰富的配套资源,找到《C语言学习路线图•C语言必须知道的300个问题》后,在该页面的“网络资源”超链接处下载也可以访问《C语言学习路线图•C语言必须知道的300个问题》的新浪微博,根据提示链接下载。C语言学习路线图,为读者朋友提供了从入门到实际项目开发所需要的各方面必备知识,提供了较为完善的学习整体解决方案,搭起了从学校走向社会的桥梁各个品种既有前后关联,也可以独立使用从而避免了像以前那样,学完一本书之后,仍然无所适从,既不会做项目也不知道接下来该学什么,以至于半途而废的困惑。快速服务:微博、QQ在线服务,自学视频:72集大型多媒体自学视频,海量资源:模块库、案例库、素材库、题库。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
第1章 初识c语言
问题1 c语言是如何发展起来的?
问题2 什么是ansi标准?
问题3 c语言编写程序的优点有哪些?
问题4 如何规避c语言的不足之处?
问题5 c语言的应用领域有哪些?
问题6 什么是c99标准?与c89标准相比,c99标准有哪些新特性?
问题7 c语言是c++的子集吗?
问题8 c语言程序的开发过程是怎样的?
问题9 什么是编译程序和解释程序?
问题10 ansi c的编译限制有哪些?

第2章 一个简单的c程序 问题11 c语言的入口函数是什么? 问题12 c语言程序由哪些部分组成? 问题13 如何在turbo c 2.0中输入一个程序? 问题14 如何在visual c++ 6.0中运行一个c程序? 问题15 如何在visual c++ 2008中运行一个c程序? 问题16 如何提高程序的可读性? 问题17 什么是关键字?c语言的关键字有哪些? 问题18 什么是标识符?使用标识符的注意事项是什么? 问题19 void关键字都有哪些用途? 问题20 什么是匈牙利命名约定?它是否是好的约定?

第3章 算法入门 问题21 为什么说算法是程序设计的灵魂? 问题22 算法的特性有哪些? 问题23 如何评价一个算法的好坏? 问题24 算法的表示方法都有哪些? 问题25 算法的基本结构是什么? 问题26 算法有哪几类? 问题27 算法的效率度量方法有哪些? 问题28 什么是算法的时间复杂度? 问题29 什么是算法的空间复杂度? 问题30 什么是分治法算法思想?

第4章 常用数据类型 问题31 声明变量和定义变量的区别是什么? 问题32 在开发时如何决定使用哪种数据类型? 问题33 什么是常量?如何区分常量和变量? 问题34 各种数据类型所占的内存是多少? 问题35 字符与字符串的差别有哪些? 问题36 变量是否必须初始化? 问题37 为什么会发生数据溢出?如何避免数据溢出? 问题38 局部变量和全局变量能否重名? 问题39 全局变量可不可以定义在可被多个.c文件包含的头文件中?为什么? 问题40 如何引用一个已经定义过的外部变量? 问题41 全局变量和局部变量的存储方式有什么区别? 问题42 整型常量的存储形式是怎样的? 问题43 整型常量的表示形式有哪几种? 问题44 使用了没定义的变量会有什么现象? 问题45 static关键字有什么作用? 问题46 const关键字有什么作用? 问题47 const与#define相比有何优点? 问题48 sizeof不是函数吗? 问题49 float类型数如何与0值比较? 问题50 静态变量与自动变量的区别有哪些?

第5章 运算符与表达式 问题51 运算符的优先级和结合性是怎样的? 问题52 如何区分“,”是运算符还是分隔符? 问题53 c语言如何解释x=a+=b+c? 问题54 x=x+1,x+=1,x++,哪个效率最高? 问题55 什么是运算符的目?怎样进行区分? 问题56 使用“++”和“——”运算符需要注意些什么? 问题57 如何理解i+++j? 问题58 赋值表达式中什么是左值和右值?数组名作为左右值时又具有怎样的意义? 问题59 如何确定条件表达式的结果的数据类型? 问题60 “%”运算符是否可以对小数进行运算? 问题61 “/”运算符得到的结果一定为整数吗? 问题62 在进行多种数据类型混合运算的时候,数据类型自动转换有哪些规则? 问题63 c语言中有哪些简化的运算表达式? 问题64 使用逻辑表达式需要注意哪几点问题? 问题65 i++*i++这样的表达式为什么不能得到预期的结果? 问题66 a[i]=i++;这样的代码正确吗? 问题67 编写表达式时需要注意什么? 问题68 如何理解c=a,b;? 问题69 为无符号类型变量赋值时,数据类型应怎样转换? 问题70 c语言表达式的求值顺序总是按照运算符的结合性保证“自左至右”或者“自右至左”吗?

第6章 输入/输出函数 问题71 函数printf()的基本格式是什么? 问题72 如何认识printf()函数的格式字符? 问题73 函数printf()的标志有几种?如何使用? 问题74 如何控制输出最小宽度? 问题75 如何控制输出精度? 问题76 如何控制输出长度? 问题77 如何动态设置输出宽度和精度? 问题78 printf()函数的返回值是什么? 问题79 如何理解输出列表? 问题80 函数scanf()的基本格式是什么? 问题81 scanf()函数的格式字符是什么? 问题82 使用scanf()函数应注意的问题是什么? 问题83 scanf()函数的返回值是什么? 问题84 如何使用getchar()函数? 问题85 getch()函数如何使用? 问题86 如何应用gets()函数? 问题87 如何应用putch()函数? 问题88 puts()函数该如何应用? 问题89 如何控制多数值的输入? 问题90 如何输入字符数组?

第7章 选择、分支结构程序设计 问题91 5]4]3为什么不成立——谈谈关系表达式的值 问题92 =和==如何区分? 问题93 什么叫逻辑短路? 问题94 if语句的基本形式有哪些?如何应用? 问题95 浮点数的相等比较是否可以用==? 问题96 关系运算符和数学不等号有什么区别? 问题97 if语句后面一定不能写分号吗? 问题98 这个程序为什么多执行了好多语句? 问题99 不用关系表达式和逻辑表达式做条件 问题100 怎样理解复合语句中的变量? 问题101 如何进行if语句的嵌套? 问题102 条件运算符“? :”怎样应用? 问题103 switch语句的基本格式是什么? 问题104 if语句与switch语句的优缺点是什么? 问题105 switch语句中的default关键字是否必须? 问题106 break关键字在switch语句中应注意什么? 问题107 如何正确判断if和else的匹配? 问题108 switch和case后的表达式值的类型是否可以是浮点型? 问题109 区段划分型条件有什么技巧? 问题110 default必须写在所有case之后吗?

第8章 循环结构 问题111 循环结构的基本概念是什么? 问题112 while语句的基本格式是什么? 问题113 while循环应注意什么问题? 问题114 for循环语句的基本格式是什么? 问题115 for语句的三个表达式都是必须的吗? 问题116 do…while语句的基本格式是什么? 问题117 分号在循环体中的作用? 问题118 while与do…while的区别? 问题119 什么是循环嵌套? 问题120 循环嵌套的结构是怎样的? 问题121 如何正确使用循环嵌套? 问题122 死循环是怎样产生的? 问题123 怎样提高循环语句的效率? 问题124 continue语句的基本作用是什么? 问题125 break语句的基本作用是什么? 问题126 goto语句的基本格式是什么?如何使用? 问题127 goto语句的缺陷是什么? 问题128 如何选择循环语句? 问题129 如何判定循环结束和提前结束? 问题130 如何避免循环中的初值错误问题?

第9章 数组 问题131 什么是数组?其存储有何特点? 问题132 数组的维数该如何理解? 问题133 一维数组是怎样定义的? 问题134 如何引用一维数组元素? 问题135 如何初始化一维数组? 问题136 如何设计数组的排序算法? 问题137 如何定义二维数组? 问题138 如何引用二维数组元素? 问题139 如何初始化二维数组? 问题140 如何定义字符数组? 问题141 如何初始化字符数组? 问题142 如何引用字符数组? 问题143 如何进行字符数组的复制? 问题144 如何进行字符数组的连接? 问题145 如何进行字符串的比较? 问题146 如何测定字符串的长度? 问题147 如何进行字符串大小写的相互转换? 问题148 如何计算字符串中有多少个单词? 问题149 gets()函数和scanf()函数在输入字符串时有何区别? 问题150 puts()函数和printf()函数在输出字符串时有何区别? 问题151 数组与指针的区别是什么? 问题152 为什么作为函数形参的数组和指针可以互换? 问题153 为什么数组名作参数传递给子函数时,子函数可以改变主函数中数组的值? 问题154 c语言中有动态数组吗? 问题155 如何实现动态二维数组? 问题156 strcpy()函数可以复制字符串的一部分吗? 问题157 字符串和字符数组有什么区别? 问题158 ‘\0'和“\0”有什么区别? 问题159 字符数组占用内存怎样算? 问题160 用字符数组和指针两种方式定义的字符串有什么不同?

第10章 函数编程基础 问题161 什么是函数?如何分类? 问题162 如何定义无参函数? 问题163 如何定义有参函数? 问题164 什么是空函数?作用是什么? 问题165 什么是形参和实参?如何使用? 问题166 如何从函数返回? 问题167 函数返回值你了解多少? 问题168 如何进行函数的一般调用? 问题169 函数调用的基本方式有几种?各是什么? 问题170 函数调用应具备哪些条件? 问题171 如何进行函数的嵌套调用? 问题172 什么是递归调用?如何实现? 问题173 函数如何将数组元素作为实参? 问题174 如何将数组名作为函数参数? 问题175 如何将多维数组名作为函数参数? 问题176 什么是局部变量? 问题177 什么是全局变量?如何应用? 问题178 存储方式有哪几种?分别是什么? 问题179 如何使用auto关键字? 问题180 什么是静态变量?如何实现? 问题181 什么是寄存器变量?如何实现? 问题182 如何声明外部变量? 问题183 如何调用编译后的函数? 问题184 如何限定外部变量的使用范围? 问题185 如何使用函数调用实现对字符串的统计? 问题186 main()函数有什么作用? 问题187 什么是内部函数? 问题188 什么是外部函数?怎么用? 问题189 static()函数与普通函数有什么区别? 问题190 形参和实参有什么区别?

第11章 指针解析 问题191 什么是指针?什么是指针变量? 问题192 如何创建指针? 问题193 如何初始化指针? 问题194 如何使用指针? 问题195 函数中如何传递指针? 问题196 指针、数组和地址之间的关系是什么? 问题197 如何进行指针运算? 问题198 如何使用指针操作数组? 问题199 如何用指针表示多维数组? 问题200 如何使用指针操作多维数组? 问题201 如何用指针为函数传递数组? 问题202 如何用指针表示字符串? 问题203 如何使用字符串指针作为函数参数? 问题204 字符数组和字符指针的区别是什么? 问题205 什么是指针数组? 问题206 如何使用指针数组处理字符串? 问题207 如何将指针数组作为函数的参数? 问题208 什么是指向指针的指针? 问题209 二级指针如何应用于一维数组? 问题210 如何实现二级指针对二维数组的操作? 问题211 二级指针如何操作字符串数组(指针数组)? 问题212 如何理解返回指针的函数? 问题213 什么是指向函数的指针? 问题214 如何用const控制指针? 问题215 什么是“野指针”? 问题216 main()函数的指针数组形参是怎么回事? 问题217 void指针就是空指针吗?它有什么作用? 问题218 指针是一种特殊的变量,只能用来保存地址。这句话对吗? 问题219 字符指针、浮点数指针以及函数指针这三种类型的变量哪个占用的内存最大?为什么? 问题220 一个32位的机器,该机器的指针是多少位?

第12章 常用数据结构 问题221 空结构体所占的内存是多少? 问题222 在c语言中,一个结构体可以包含指向自己的指针吗? 问题223 struct person{…};person a;为什么编译出错? 问题224 怎样从/向数据文件读/写结构? 问题225 枚举与#define宏的区别有哪些? 问题226 如何看待枚举类型,枚举类型的优点是什么? 问题227 关键字typedef的功能是什么? 问题228 类型定义是否允许嵌套? 问题229 typedef与#define宏的相似之处与不同之处是什么? 问题230 什么是散列法? 问题231 大小端模式对union类型数据有什么影响? 问题232 如何为联合体变量赋初值? 问题233 如何证明联合体变量的所有成员是共享一个内存单元的? 问题234 堆和栈的区别是什么? 问题235 举例说明,什么是静态链表?什么是动态链表? 问题236 单向链表、双向链表和循环链表有什么区别? 问题237 如何在链表中的指定位置插入结点? 问题238 如何删除链表中指定位置的结点? 问题239 如何创建一个动态链表? 问题240 指向结构体数组的指针如何应用?

第13章 位运算操作符 问题241 什么是位运算?位运算符包括哪些? 问题242 移位运算中如何补位? 问题243 移位运算符与加减运算符的优先级哪个较高? 问题244 什么是循环移位? 问题245 什么是位段?其优点是什么? 问题246 如何正确使用位段? 问题247 数据在计算机中的存储单位有哪些?有几种存储形式?

第14章 存储管理 问题248 与内存息息相关的重要概念有哪些? 问题249 指针指向不合法引起了哪些内存问题? 问题250 内存分配与释放引起的常见问题有哪些? 问题251 什么是内存越界?什么是内存泄露?二者是如何产生的? 问题252 c语言提供了哪些动态内存分配函数? 问题253 malloc()函数与calloc()函数有什么区别? 问题254 内存耗尽怎么办? 问题255 动态内存会被自动释放吗? 问题256 高位优先与低位优先的不同之处是什么? 问题257 free()和delete()怎样处理指针? 问题258 怎样利用好敏感的内存资源?

第15章 预处理和函数类型 问题259 在头文件中#if、stdc等字符起什么作用? 问题260 如何书写多条语句宏? 问题261 预处理中#和##运算符是什么意思? 问题262 一个头文件可以包含另一个头文件吗? 问题263 #include[]和#include“”有什么区别? 问题264 什么是无参宏定义? 问题265 什么是带参宏定义? 问题266 怎样写参数个数可变的宏? 问题267 #pragma预处理的作用是什么? 问题268 条件编译的表达形式有哪些? 问题269 如何应用内部函数? 问题270 如何应用外部函数?

第16章 文件的读写操作 问题271 各个读写操作的区别是什么? 问题272 c语言文件有哪几类? 问题273 怎样写数据文件,使之可以在不同字大小、字节顺序或浮点格式的机器上读入? 问题274 能否使用fflush()函数清除多余的输入? 问题275 fopen()函数打开文件失败的原因是什么? 问题276 为什么打开文件后要及时关闭? 问题277 文件的打开方式有哪些? 问题278 如何正确使用putchar()函数和getchar()函数? 问题279 getchar()函数、getch()函数和getche()函数的区别是什么? 问题280 使用printf()函数和scanf()函数需要注意什么? 问题281 printf()函数有哪些参数? 问题282 scanf()函数的格式控制包括哪些? 问题283 printf()函数和scanf()函数格式符的修饰符“*”有什么作用? 问题284 fscanf()函数、fprintf()函数与scanf()函数和printf()函数有什么不同? 问题285 如何判断文件的结束?

第17章 图形图像处理 问题286 为什么在使用图形函数时要首先初始化图形模式? 问题287 怎样初始化图形模式? 问题288 初始化时提示“bgi error: graphics not initialized(use ‘initgraph')”怎么办? 问题289 怎样利用c语言建立独立的图形运行程序? 问题290 tc中有几个画线函数?怎么使用? 问题291 tc中有几个画矩形函数?怎么使用? 问题292 tc中有几个画圆函数?怎么使用? 问题293 如何使用c语言填充封闭图形? 问题294 tc中有几个和光标有关的函数?怎样使用? 问题295 如何在图形模式下输出文本? 问题296 背景色、线条颜色和填充颜色有什么区别?何时使用? 问题297 怎样记住那么多的颜色? 问题298 线条样式和填充样式都有哪些?怎样设置? 问题299 怎样复制图形? 问题300 怎样在c语言中制作动画?

亚马逊链接

基本信息

名称: Android多媒体开发高级编程 为智能手机和平板电脑开发图形、音乐、视频和富媒体应用
作者信息: 作者: 艾佛瑞(Shawn Van Every) [ 中文 pdf ]

简单介绍

《Android多媒体开发高级编程:为智能手机和平板电脑开发图形、音乐、视频和富媒体应用》是利用Android多媒体API创建动态移动应用程序。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
第1章 Android图像概述
1.1 使用内置的Camera应用程序捕获图像
1.1.1 从Camera应用程序返回数据
1.1.2 捕获更大的图像
1.1.3 显示大图像
1.2 图像存储和元数据
1.2.1 获得图像的Uri
1.2.2 更新Camera Activity以使用Media Store存储图像和关联元数据
1.2.3 使用Media Store检索图像
1.2.4 创建图像查看应用程序
1.2.5 内部元数据
1.3 本章小结

第2章 构建定制的Camera应用程序 2.1 使用Camera类 2.1.1 CAMERA权限 2.1.2 预览Surface 2.1.3 实现Camera对象 2.1.4 汇总 2.2 扩展定制的Camera应用程序 2.2.1 构建基于定时器的Camera应用程序 2.2.2 构建时间推移摄影应用程序 2.3 本章小结

第3章 图像编辑和处理 3.1 使用内置Gallery应用程序选择图像 3.2 在位图上绘制位图 3.3 基本的图像缩放和旋转 3.3.1 输入矩阵 3.3.2 Matrix类的方法 3.4 图像处理 3.4.1 ColorMatrix 3.4.2 改变对比度和亮度 3.4.3 改变饱和度 3.5 图像合成 3.6 本章小结

第4章 图形和触摸事件 4.1 画布绘图 4.1.1 位图创建 4.1.2 位图配置 4.1.3 创建Canvas对象 4.1.4 使用Paint对象 4.1.5 绘制形状 4.1.6 绘制文本 4.2 手指绘图 4.2.1 触摸事件 4.2.2 在现有图像上绘制 4.2.3 保存基于位图的画布绘图 4.3 本章小结

第5章 Android音频概述 5.1 音频播放 5.1.1 支持的音频格式 5.1.2 通过意图使用内置的音频播放器 5.1.3 创建自定义的音频播放应用程序 5.1.4 用于音频的Media Store 5.2 本章小结

第6章 后台和网络音频 6.1 后台音频播放 6.1.1 服务 6.1.2 加上Media Player的本地服务 6.1.3 控制服务中的Media Player 6.2 网络音频 6.2.1 HTTP音频播放 6.2.2 通过HTTP的流式音频 6.2.3 RTSP音频流 6.3 本章小结

第7章 音频捕获 7.1 通过意图捕获音频 7.2 定制音频捕获 7.2.1 Media Recorder音频源 7.2.2 Media Recorder输出格式 7.2.3 Media Recorder音频编码器 7.2.4 Media Recorder输出和录制 7.2.5 Media Recorder状态机 7.2.6 Media Recorder示例 7.2.7 其他的Media Recorder方法 7.3 将音频插入Media Store 7.4 使用Audio Record录制原始音频 7.5 使用Audio Track播放原始音频 7.6 捕获和播放原始音频的示例 7.7 本章小结

第8章 音频合成与分析 8.1 数字音频合成 8.1.1 播放合成声音 8.1.2 生成样本 8.2 音频分析 8.2.1 捕获声音以进行分析 8.2.2 可视化频率 8.3 本章小结

第9章 视频概述 9.1 视频播放 9.1.1 支持的格式 9.1.2 使用意图播放 9.1.3 使用Video View播放 9.1.4 使用Media Controller添加控制 9.1.5 使用Media Player播放 9.2 本章小结

第10章 视频进阶 10.1 使用Media Store检索视频 10.1.1 来自Media Store的视频缩略图 10.1.2 完整的Media Store视频示例 10.2 网络视频 10.2.1 支持的网络视频类型 10.2.2 网络视频播放 10.3 本章小结

第11章视频捕获 11.1 使用意图录制视频 11.2 添加视频元数据 11.3 定制视频捕获 11.3.1 将Media Recorder用于视频 11.3.2 定制视频捕获的完整示例 11.4 本章小结

第12章 使用Web服务的媒体消费和发布 12.1 Web服务 12.2 HTTP请求 12.3 JSON 12.3.1 使用JSON提取Flickr图像 12.3.2 位置 12.3.3 使用JSON和位置提取Flickr图像 12.4 REST 12.4.1 以XML表示数据 12.4.2 SAX分析 12.5 HTTP文件上传 12.5.1 生成HTTP请求 12.5.2 上传视频到Blip TV 12.6 本章小结

亚马逊链接

基本信息

名称: Android框架揭秘
作者信息: 作者: 金泰延 [ 中文 pdf ]

简单介绍

《Android框架揭秘》由人民邮电出版社出版。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
目 录 

第1章 Android Framework概要 1 1.1 Android源代码组成 2 1.2 通过启动过程分析Android Framework 3

第2章 搭建Android开发环境 7 2.1 主机环境构成 7 2.1.1 安装VirtualBox 7 2.1.2 安装Ubuntu 8 2.2 搭建Android平台编译环境 9 2.2.1 编译工具 10 2.2.2 安装Repo 11 2.2.3 下载Android源代码 11 2.2.4 编译Android源代码 12 2.3 搭建Android SDK开发环境 13 2.3.1 下载、安装Eclipse 13 2.3.2 下载Android SDK starter 13 2.3.3 安装ADT插件 14 2.3.4 设置Android SDK路径 16 2.3.5 安装Android SDK 16 2.4 开发Android应用程序 18 2.5 应用程序Framework源码级别调试 21 2.5.1 加载应用程序Framework源 21 2.5.2 调试HelloWorld Framework(源码级) 24 2.6 小结 27

第3章 init进程 29 3.1 init进程运行过程 29 3.2 init进程源码分析 31 3.3 init.rc脚本文件分析与执行 40 3.3.1 动作列表(Action List) 41 3.3.2 服务列表(Service List) 43 3.3.3 init.rc文件分析函数 44 3.3.4 动作列表与服务列表的运行 48 3.4 创建设备节点文件 52 3.4.1 创建静态设备节点 52 3.4.2 动态设备感知 57 3.5 进程的终止与再启动 58 3.6 属性服务 62 3.6.1 属性初始化 63 3.6.2 属性变更请求处理 65 3.7 小结 67

第4章 JNI与NDK 69 4.1 Android与JNI 69 4.2 JNI的基本原理 72 4.2.1 在Java中调用C库函数 72 4.2.2 小结 83 4.3 调用JNI函数 84 4.3.1 调用JNI函数的示例程序结构 84 4.3.2 Java层代码(JniFuncMain.java) 85 4.3.3 分析JNI本地函数代码 87 4.3.4 编译及运行结果 101 4.3.5 在Android中的应用举例 102 4.4 在C程序中运行Java类 102 4.4.1 Invocation API应用示例 103 4.4.2 编译及运行 108 4.4.3 Invocation API在Android中的应用举例:Zygote进程 110 4.5 直接注册JNI本地函数 110 4.5.1 加载本地库时,注册JNI本地函数 111 4.5.2 Android中的应用举例 115 4.6 使用Android NDK开发 122 4.6.1 安装Android NDK 123 4.6.2 使用Android NDK开发步骤 127 4.6.3 小结 136

第5章 Zygote 137 5.1 Zygote是什么 137 5.2 由app_process运行ZygoteInit class 142 5.2.1 生成AppRuntime对象 143 5.2.2 调用AppRuntime对象 144 5.2.3 创建Dalvik虚拟机 145 5.2.4 运行ZygoteInit类 146 5.3 ZygoteInit类的功能 147 5.3.1 绑定/dev/socket/zygote套接字 149 5.3.2 加载应用程序Framework中的类与平台资源 150 5.3.3 运行SystemServer 155 5.3.4 运行新Android应用程序 158

第6章 Android服务概要 163 6.1 示例程序:理解Android服务的运行 163 6.2 Android服务的种类 166 6.3 Android应用程序服务 168 6.4 Android系统服务 182 6.5 运行系统服务 185 6.5.1 分析媒体服务器(Media Server)的运行代码 186 6.5.2 分析系统服务器(System Server)的运行代码 188 6.6 Android Service Framework、Binder Driver概要及相关术语 192

第7章 Android Binder IPC 197 7.1 Linux内存空间与Binder Driver 197 7.2 Android Binder Model 199 7.2.1 Binder IPC数据传递 201 7.2.2 Binder IPC数据流 202 7.2.3 Binder协议(Binder Protocol) 204 7.2.4 RPC代码与RPC数据 206 7.2.5 Binder寻址(Binder Addressing) 206 7.3 Android Binder Driver分析 209 7.3.1 从进程的角度看服务的使用 210 7.3.2 从Binder Driver角度看服务的使用 214 7.3.3 Binder Driver函数分析 219 7.4 Context Manager 251 7.5 小结 256

第8章 Android Service Framework 257 8.1 服务框架(Service Framework) 257 8.2 服务框架(Service Framework)的构成 259 8.2.1 各层构成元素的配置 260 8.2.2 各层构成元素间的相互作用 261 8.2.3 类的结构 264 8.3 运行机制 266 8.3.1 服务接口 267 8.3.2 服务 273 8.3.3 服务代理(Service Proxy) 276 8.3.4 Binder IPC处理 280 8.4 本地服务管理器(Native Service Manager) 282 8.4.1 Service Manager概要 282 8.4.2 Service Manager类 284 8.4.3 Service Manager的运行 286 8.5 编写本地服务 314 8.5.1 设计HelloWorld系统服务 314 8.5.2 HelloWorld服务接口 315 8.5.3 HelloWorld服务 316 8.5.4 HelloWorld服务代理 319 8.5.5 运行HelloWorld服务 320 8.6 小结 325

第9章 本地系统服务(Native System Service)分析 327 9.1 相机服务(Cameral Service) 327 9.2 相机应用程序 328 9.3 相机服务框架(Camera Service Framework) 331 9.3.1 相机服务框架层次结构 331 9.3.2 相机服务框架类 333 9.4 相机服务框架的运行 334 9.4.1 初始化相机服务 334 9.4.2 连接相机服务 335 9.4.3 相机服务连接过程分析 337 9.4.4 相机设置与控制 340 9.4.5 相机设置与控制分析 341 9.4.6 相机事件处理 342 9.4.7 相机事件处理分析 343 9.5 小结 345

第10章 Java服务框架(Java Service Framework) 347 10.1 Java服务框架(Java Service Framework) 347 10.1.1 Java服务框架的层次结构 348 10.1.2 Java服务框架中各个类间的相互作用 351 10.2 运行机制 354 10.2.1 Java服务框架初始化 355 10.2.2 Binder 355 10.2.3 BinderProxy 361 10.2.4 Parcel 364 10.3 Java系统服务的实现 367 10.3.1 闹钟服务(Alarm Manager Service)分析 368 10.3.2 编写HelloWorldService系统服务 372 10.3.3 使用HelloWorldService系统服务 375 10.3.4 编译HelloWorldService系统服务 378 10.4 Java Service Manager 380 10.4.1 Java Service Manager简介 380 10.4.2 BinderInternal 381 10.4.3 Java Service Manager的运行实例 383 10.5 使用AIDL生成服务代理与服务Stub 389 10.5.1 在AIDL文件中定义服务接口 390 10.5.2 使用AIDL编译器,生成服务接口、服务Stub以及服务代理 391 10.5.3 继承Stub类创建服务 392 10.5.4 服务接口的调用 393 10.6 小结 394

第11章 Java系统服务运行分析 395 11.1 Activity Manager Service 395 11.2 Activity Manager Service创建服务分析 397 11.2.1 Controller Activity-调用startService()方法 398 11.2.2 Activity Manager Service的startService()方法的调用过程(使用Binder RPC) 399 11.2.3 Activity Manager Service——运行startService() Stub方法 405 11.2.4 运行ActivityThread类的main() 方法 409 11.2.5 Activity Manager Service——attachApplication() Stub方法 414 11.3 小结 421

附录 AIDL语法 423

亚马逊链接

基本信息

名称: Android 3D游戏开发技术宝典 OpenGL ES 2.0
作者信息: 作者: 吴亚峰 [ 中文 pdf ]

简单介绍

《Android 3D游戏开发技术宝典:OpenGL ES 2.0》适合Android程序员、游戏开发者及Android爱好者学习,也可以作为相关培训学校和大专院校相关专业的教学用书。《Android 3D游戏开发技术宝典:OpenGL ES 2.0》组织上本着“起点低,终点高”的原则,内容覆盖了从学习OpenGL ES 2.0必知必会的基础知识到基于OpenGL ES 2.0实现高级特效,最后还给出了3个完整的大型3D游戏案例。这3个案例均是笔者带领学员参加谷歌(Google)2011第二届Android应用开发中国大学生挑战赛的获奖作品,第22章的夜鹰行动更是获全国总决赛前5名大奖的作品。《Android 3D游戏开发技术宝典:OpenGL ES 2.0》中配合每个需要讲解的知识点都给出了丰富的插图与完整的案例,使得初学者易于上手,有一定基础的读者便于深入。书中所有的案例均是根据笔者多年的开发心得进行设计的,结构清晰明朗,便于读者进行学习。同时书中还给出了很多笔者多年来积累的编程技巧与心得,具有很高的参考价值。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
第1章 新一代的王者——Android概览
1.1 智能手机市场现状
1.1.1 五大智能手机操作系统
1.1.2 智能手机市场的新星
1.2 Android 平台的特点及未来的趋势
1.2.1 全新理念带来的体验风暴
1.2.2 中国手机市场的主导性作用
1.2.3 手机3D游戏和应用增长迅速
1.3 如何搭建Android开发环境
1.3.1 SDK的安装及环境配置
1.3.2 Eclipse集成开发环境的搭建
1.3.3 创建并启动模拟器
1.4 Hello Android应用程序的开发
1.4.1 第一个Android应用程序
1.4.2 Android应用程序的项目结构
1.4.3 Android应用程序的调试
1.4.4 实际设备的联机调试
1.5 Android 应用程序运行的机制
1.5.1应用程序的系统架构
1.5.2 应用程序框架
1.5.3 Android运行时
1.5.4 系统库
1.5.5底层Linux内核
1.6 本章小结
第2章 游戏开发相关Android基础知识
2.1 游戏中的音效
2.1.1 游戏中的即时音效
2.1.2 即时音效的一个案例
2.1.3 背景音乐播放技术
2.1.4 简易音乐播放器的实现
2.2 简单数据的存储——Preferences
2.2.1 Preferences简介33
2.2.2 Preferences实现访问时间的记录
2.3 手机自带数据库——SOLite
2.3.1 初识SOLite
2.3.2 SQLite数据库的基本操作
2.3.3 SQLite数据库的简单案例
2.3.4 使用ContentProvider组件共享数据
2.3.5 使用ContentResolver获取分享数据
2.4.文件I/O
2.4.1 访问SD卡中的文件
2.4.2 访问手机中的文件夹
2.4.3 读取assets文件夹下的内容
2.5 2D动画的开发
2.5.1 SurflaceView用法简介
2.5.2 使用SurfaceView实现2D动画
2.6 Socket网络通信
2.6.1 Socket开发基本知识
2.6.2 服务器端
2.6.3 客户端
2.7蓝牙通信
2.7.1 蓝牙通信的基本知识
2.7.2 聊天案例概览
2.7.3 聊天案例的开发过程
2.8 本章小结
第3章 初识OpenGL ES 2.0
3.1 OpenGL ES 2.0概览
3.1.1 OpenGL ES 2.0简介
3.1.2 初识 OpenGL ES 2.0 应用程序
3.2 着色器与渲染管线
3.2.1 OpenGL ES 1.x的渲染管线
3.2.2 OpenGL ES 2.0的渲染管线
3.2.3 OpenGL ES中立体物体的构建
3.3 主流Android手机GPU大PK
3.3.1 手机GPU大家族对比
3.3.2 主流GPU的性能参数比较
3.4 本章小结
第4章 着色语言Shading Language
4.1 着色语言概述
4.2 着色语言基础
4.2.1 数据类型概述
4.2.2 数据类型的基本使用
4.2.3 运算符
4.2.4 类型转换
4.2.5 限定符
4.2.6 流程控制
4.2.7 函数的声明与使用
4.2.8 片元着色器中浮点变量精度的指定
4.2.9 程序的基本结构
4.3 特殊的内建变量
4.3.1 顶点着色器中的内建变量
4.3.2 片元着色器中的内建变量
4.4 着色语言的内置函数
4.4.1 角度转换与三角函数
4.4.2 指数函数
4.4.3 常见函数
4.4.4 几何函数
4.4.5 矩阵函数
4.4.6 向量关系函数
4.4.7 纹理采样函数
4.4.8 微分函数
4.5 本章小结
第5章 投影及各种变换
5.1 摄像机的设置
5.2 两种投影方式
5.2.1 正交投影
5.2.2 透视投影
5.3 各种变换
5.3.1 基本变换的相关数学知识
5.3.2 平移变换
5.3.3 旋转变换
5.3.4 缩放变换
5.3.5 基本变换的实质
5.4 绘制方式
5.4.1 各种绘制方式概览
5.4.2 点与线段绘制方式
5.4.3 三角形条带与扇面绘制方式
5.4.4.顶点法与索引法
5.5 设置合理的视角
5.6 卷绕和背面剪裁
5.6.1 基本知识
5.6.2 一个简单的案例
5.7 本章小结
……
第6章 光照
第7章 纹理映射
第8章 3D基本形状的构建
第9章 3D模型加载
第10章 混合与雾
第11章 常用3D开发技巧
第12章 几种剪裁与测试
第13章 顶点着色器的妙用
第14章 片元着色器的妙用
第15章 真实光学环境的模拟
第16章 游戏开发中的物理学
第17章 游戏的心脏——物理引擎
第18章 传感器应用的开发
第19章 游戏开发小贴士
第20章 BN赛艇
第21章 火力篮球
第22章 夜鹰行动

亚马逊链接

基本信息

名称: Android核心原理与系统级应用高效开发
作者信息: 作者: 韩超 [ 中文 pdf ]

简单介绍

《Android核心原理与系统级应用高效开发》为Android系统级别的开发者系统化而有条理性地展示了庞大的Android系统的软件结构,点明开发思路;Android应用程序的开发者可以通过《Android核心原理与系统级应用高效开发》加深认识,拓展开发手段;从事Android硬件移植的开发者可以通过《Android核心原理与系统级应用高效开发》加深对系统全局的了解。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
第1篇 Android核心框架层开发
第1章 Android系统框架
1.1 Android系统基础结构
1.2 Android的开发环境
1.2.1 开发环境
1.2.2 源代码获取
1.2.3 编译Android源代码
1.2.4 仿真器运行
1.2.5 使用工具
1.3 系统结构和代码结构
1.3.1 软件系统结构
1.3.2 源代码结构
第2章 编译结构和各种构建
2.1 Android的系统构建
2.1.1 编译环境要求
2.1.2 构建流程
2.1.3 环境设置
2.1.4 系统构建结果
2.2 各种部件的构建
2.2.1 Android.mk的语法
2.2.2 各种部件的构建方式
2.2.3 预编译内容的安装
2.3 Android编译的板级支持
2.3.1 支持一个板的工作
2.3.2 buildspec.mk文件的作用
2.3.3 vendersetup.sh和lunch命令
2.3.4 BoardConfig.mk文件的作用
2.3.5 AndroidProducts.mk文件
2.3.6 AndroidBoard.mk文件
2.3.7 编译中的层叠加
第3章 本地层基础部分
3.1 本地层基础部分结构
3.2 C语言基础:Bionic
3.2.1 Bionic各个部分的结构
3.2.2 Bionic的头文件
3.2.3 内存泄露的检查库
3.2.4 属性系统的支持
3.3 C语言底层库
3.3.1 Log库
3.3.2 C语言工具库libcutils
3.3.3 属性和套接字支持
3.4 init可执行程序和相关脚本
3.4.1 init可执行程序的结构
3.4.2 启动脚本init.rc
3.4.3 init的内建动作和初始化
3.4.4 init的循环
3.4.5 设备管理功能
3.5 shell工具
3.5.1 shell程序sh
3.5.2 命令工具箱toolbox
3.6 Android属性和套接字机制
3.6.1 属性机制
3.6.2 套接字机制
第4章 本地层框架部分
4.1 本地层框架部分结构
4.2 框架层的工具库libutils
4.2.1 libutils的结构
4.2.2 基本的定义和类型
4.2.3 数据结构和容器类
4.2.4 工具类
4.2.5 引用计数和强弱引用指针
4.2.6 线程类及相关辅助功能
4.2.7 文件操作的监听循环
4.3 作为全局守护进程的可执行程序
4.3.1 app_process
4.3.2 keystore
4.3.3 installd
4.3.4 vold
4.3.5 netd
4.4 Binder的IPC机制结构
4.4.1 Android Binder机制的层次结构
4.4.2 具体Binder的实现
4.5 Binder库以及相关内容
4.5.1 具体Binder的实现
4.5.2 Binder库的核心功能
4.5.3 Binder框架和具体IPC结构的实现
4.5.4 IServiceManager相关
4.5.5 Binder库中的其他部分
4.6 servicemanager可执行程序和服务的实现
4.6.1 服务管理器可执行程序和进程
4.6.2 在系统中实现"服务"
4.6.3 servicemanager对服务的管理
4.6.4 Android中本地服务的层次结构
第5章 本地的启动流程、调试和设计结构
5.1 Android启动流程的本地阶段
5.1.1 启动流程概述
5.1.2 BootLoader运行及加载内核
5.1.3 Linux内核运行和加载根文件系统
5.1.4 运行用户空间的第一个进程
5.1.5 挂接各个文件系统
5.1.6 系统各个进程的运行
5.1.7 启动图
5.2 Android本地部分的调试
5.2.1 标准Linux调试方法
5.2.2 使用log的方法
5.2.3 Android的特殊调试工具
5.3 本地程序的结构设计
5.3.1 目标和设计思路
5.3.2 守护进程+保留Socket的设计结构
5.3.3 守护进程+本地层Binder的设计结构
第6章 Java运行环境
6.1 Dalvik虚拟机和相关工具
6.1.1 Dalvik的概述
6.1.2 虚拟机的实现和运行
6.1.3 Dalvik工具
6.1.4 nativehelper库
6.2 Java基础库libcore
6.2.1 libcore的源代码结构
6.2.2 luni目录中的内容
6.2.3 libcore中的其他内容
第7章 Java框架层
7.1 Java框架层结构
7.2 Android的Java层的API
7.2.1 Java框架层API的含义
7.2.2 API的描述文件
7.2.3 被隐藏的内容
7.2.4 不赞成使用的(过时的)API
7.3 Java框架库framework.jar
7.3.1 框架库的组成和作用
7.3.2 框架库的API
7.3.3 框架库的编译结构
7.3.4 框架库的各个部分
7.3.5 属性机制
7.3.6 套接字机制
7.4 Java服务库services.jar
7.4.1 服务库的组成和作用
7.4.2 服务管理器
7.4.3 主要的服务功能
7.4.4 启动结束的处理
7.5 资源包framework—res.apk
7.5.1 资源包的组成和作用
7.5.2 作为API的资源id
7.5.3 资源包AndroidManifest.Xml文件
7.6 策略库
7.6.1 策略库的组成和作用
7.6.2 策略库的功能和使用
7.7 Java层的Binder机制
7.7.1 Java Binder的框架
7.7.2 Java框架层的Binder使用
7.7.3 Binder中参数和返回值的类型
第8章 Java本地调用
8.1 Android的Java本地调用
8.1.1 JNI的基本概念
8.1.2 Android的JNI实现基础
8.1.3 Android中JNI的存在方式
8.2 在框架中使用JNI
8.2.1 框架层使用JNI的结构
8.2.2 框架层JNI的实现
8.3 在应用程序包中使用JNI
8.3.1 应用程序包的JNI部分
8.3.2 应用程序包中JNI的典型实现方式
8.3.3 结构上的几种变化
8.4 JNI的高级使用
8.4.1 JNI的双向调用
8.4.2 线程的处理
8.4.3 JNIHelp中的特殊处理
第9章 Java启动流程、调试和程序结构
9.1 Java部分的启动流程
9.1.1 启动流程概述
9.1.2 Java系统的守护进程
9.1.3 ZygoteInit类的执行
9.1.4 系统服务器部分
9.1.5 Java应用程序部分的启动
9.2 Java部分的调试
9.2.1 在Java中使用Log
9.2.2 Java层的命令行程序
9.2.3 代码内容相关的调试
9.2.4 DDMS工具
9.2.5 HierarchyViewer工具
9.3 Java层程序的结构设计
9.3.1 目标和设计思路
9.3.2 在系统服务器中服务的设计结构
9.3.3 Service组件的设计结构
第10章 GUI系统和应用程序管理
10.1 GUI系统的结构和模块关系
10.2 UI框架库及相关
10.2.1 基本类型方面
10.2.2 显示相关
10.2.3 按键和事件的处理
10.2.4 其他内容
10.3 Surface图层系统
10.3.1 Surface系统的结构
10.3.2 Surface本地的接口部分
10.3.3 Surface本地实现部分
10.3.4 Surface的JNI代码
10.3.5 Surface的Java部分
10.42D图形系统
10.4.12D图形系统的结构
10.4.2 Skia底层库
10.4.3 图形系统的JNI接口
10.4.42D图形包
10.53D图形系统
10.5.1 OpenGL系统的结构
10.5.2 OpenGL的本地代码
10.5.3 OpenGL的JNI代码
10.5.4 OpenGL的Java类
10.6 窗口和视图部分
10.6.1 窗口和视图部分的结构
10.6.2 窗口管理的底层实现
10.6.3 视图实现和上层的窗口管理器的实现
10.7 活动和应用程序管理
10.7.1 活动和应用程序管理的结构
10.7.2 活动界面的实现
10.7.3 应用程序管理的实现
第2篇 Android系统级应用开发要点
第11章 Android应用层接口结构与安全
11.1 Android应用层接口结构
11.1.1 标准应用程序和源代码开发的应用程序
11.1.2 第三方应用程序和预置应用程序
11.2 Android的安全系统
11.2.1 安全机制概述
11.2.2 Linux的用户和组
11.2.3 Android的许可
11.3 程序签名问题
11.3.1 Android应用签名的概念
11.3.2 Android应用签名的流程
11.3.3 不同的程序签名
11.3.4 证书生成工具
11.4 安全策略
11.4.1 安全策略的几个方面
11.4.2 安全策略的实现
11.4.3 安全策略的定制
第12章 应用层的本地内容和NDK开发
12.1 本地应用的标准化
12.2 NDK环境
12.2.1 NDK的基本概念
12.2.2 从几个方面理解NDK的不同含义
12.3 NDK的组成结构
12.3.1 NDK环境的结构
12.3.2 NDK中包含的内容
12.4 NDK开发基础
12.4.1 编译流程
12.4.2 NDK编程要点
12.4.3 开发结构
12.5 使用JNI的方式
12.5.1 NDK中使用JNI工程结构
12.5.2 在本地操作Bitmap位图
12.5.3 在本地使用OpenGL ES绘制
12.5.4 程序实现
12.6 在本地构建应用
12.6.1 本地应用接口基础
12.6.2 实现本地活动的辅助库: android_native_app_glue
12.6.3 程序实现
第13章 预置的应用程序层
13.1 预置应用层程序概述
13.2 预置综合应用程序
13.2.1 主屏幕
13.2.2 设置
13.2.3 联系人和电话
13.2.4 短信息和彩信
13.2.5 浏览器和邮件
13.2.6 音乐
13.2.7 照相机和录音机
13.2.8 画廊
13.2.9 搜索
13.2.10 时钟、计算器和日历
13.3 预置内容提供者
13.3.1 联系人信息提供者
13.3.2 媒体信息提供者
13.3.3 电话信息提供者
13.3.4 下载信息提供者
13.4 预置输入法
13.5 活动墙纸系统
13.5.1 活动墙纸选择器
13.5.2 几个具体的活动墙纸
13.6 实现框架功能的应用程序包
13.6.1 系统界面
13.6.2 设置信息提供者
13.6.3 几个主体为Service组件的应用程序包
第14章 Android系统定制
14.1 Android系统定制概述
14.2 普通应用程序的定制
14.2.1 普通应用定制的方面
14.2.2 预置的应用程序的组件可见性
14.2.3 组件的intent—filter
14.3 桌面的定制
14.3.1 桌面程序的入口和功能
14.3.2 桌面程序细节
14.3.3 在桌面之前执行的程序
14.4 系统资源的定制
14.4.1 定义资源的概念和原则
14.4.2 一些配置的数值
14.4.3 可绘制内容的定制
14.4.4 样式和主题的定制
14.4.5 内部布局的定制
14.5 框架内部组件和界面的定制
14.5.1 内部组件
14.5.2 内部界面
14.6 状态栏界面的定制
14.6.1 状态栏界面的功能和布局
14.6.2 状态栏界面
14.7 锁屏界面的定制
14.7.1 锁屏界面的功能
14.7.2 锁屏界面
14.8 开机动画的定制
第15章 系统级的调试和测试
15.1 调试
15.1.1 命令行调试工具
15.1.2 界面上的辅助工具
15.2 测试系统和工具
15.2.1 测试系统的结构
15.2.2 Monkey.
15.2.3 MonkeyRunner
15.3 代码级别的测试
15.3.1 代码测试框架
15.3.2 代码测试方式
15.4 兼容性及兼容性测试
15.4.1 Android兼容性
15.4.2 CTS兼容性验证
15.4.3 CTS的相关源代码和原理
……
附录A Android版本演进和Android 4.x

亚马逊链接

基本信息

名称: Learning Android(英文版)
作者信息: 作者: 马尔科•加尔根塔(Marko Gargenta) [ 英文 pdf ]

简单介绍

《Learning Android(中文版)》是由电子工业出版社出版。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
前言
第1章 Android概述
概述
完整性
开源平台
为移动设备而设计
历史
Google的动机
开放手持设备联盟
Android的版本
总结
第2章 Android的架构
架构概述
Linux系统
可移植性
安全性
丰富的特性
本地库
Dalvik虚拟机
Android与Java
应用程序框架
应用程序
APK文件
应用程序签名
应用程序发布
总结
第3章快速入门
安装 Android SDK
设置 PATH环境变量
安装 Eclipse
Eclipse的工作区
安装 Android开发工具
Hello, World程序
创建新项目
Manifest文件
Layout(布局) XML代码
Strings(字符串)文件
R(资源)文件
Java源码文件
仿真器
仿真器和真机
总结
第4章基本构件
什么是基本构件
一个实际的例子
活动( Activity)
活动的生命周期
Intent
服务( Service)
内容提供器( Content Provider)
广播接收器( Broadcast Receiver)
应用程序上下文( Application Context)
总结
第5章 Yamba项目简介
Yamba应用程序
设计原则
项目设计
第1部分: Android用户界面
构建一个活动
网络和多线程
调试 Android程序
第2部分:首选项、文件系统、选项菜单及 Intent
活动
菜单系统与 Intent
文件系统
第3部分: Android服务
服务
应用程序对象
第4部分:使用数据库
SQLite及Android对它的支持
再次重构代码
第5部分:列表( List)与适配器( Adapter)
时间轴( Timeline)活动
再重构一次
第6部分:广播接收器( Broadcast Receiver)
启动接收器与网络连接接收器
时间轴( Timeline)接收器
权限
第7部分:内容提供器( Content Provider)
状态数据
Android小部件
第8部分:系统服务
指南针与位置
Intent服务、提醒及通知
总结
第6章 Android用户界面
创建用户界面的两种方法
声明式的用户界面
编程式的用户界面
各取所长
控件与布局
LinearLayout
TableLayout
FrameLayout
RelativeLayout
AbsoluteLayout
启动 Yamba项目
StatusActivity布局
控件的重要属性
字符串资源
StatusActivity Java类
编写具体应用的对象,以及初始化相关代码
保存文件:编译代码和构建项目
添加库 jtwitterjar
更新 Manifest文件,获取 Internet权限
Android的日志机制
LogCat
Android的线程机制
单线程执行
多线程执行
AsyncTask
其他 UI事件
添加图片与色彩
添加图片
添加色彩
多版本资源文件
优化用户界面
Hierarchy Viewer工具
总结
……
第7章首选项、文件系统、选项菜单及 Intent
第8章服务
第9章数据库
第10章列表与适配器
第11章广播接收器( Broadcast Receiver)
第12章内容提供器( Content Provider)
第13章系统服务
第14章 Android接口描述语言
索引

亚马逊链接

基本信息

名称: Android开发精要
作者信息: 作者: 范怀宇 [ 中文 pdf ]

简单介绍

《Android开发精要》编辑推荐:资深Android专家经验之作,51CTO和开源中国社区联袂推荐!高度抽象Android系统的设计理念和底层实现机制,全面概括Android实现原理的“要点”和实际开发中的“精华”,为开发高质量Android应用提供绝佳指导!

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
前言
致谢
第1章 Android的系统架构 1
1.1 Android系统架构概况 2
1.1.1 应用层 4
1.1.2 框架层 5
1.1.3 运行时 5
1.1.4 核心类库 7
1.1.5 硬件抽象层和Linux内核 7
1.2 Android的核心功能模块 8
1.2.1 界面框架 8
1.2.2 数据存储 9
1.2.3 网络通信 10
1.2.4 地理信息 11
1.2.5 图形和多媒体处理 11
1.2.6 外部设备 12
1.2.7 特色功能模块 13
1.3 Android的架构特征和设计思想 13
1.3.1 平台开放性 14
1.3.2 基于组件的应用设计 14
1.3.3 基于网络服务的平台 15
1.4 小结 15

第2章 Android源代码的下载和编译 16 2.1 Android源代码的获取和编译 17 2.1.1 环境搭建 18 2.1.2 源代码获取 18 2.1.3 源代码的编译 21 2.2 Android源代码结构 22 2.2.1 框架层源代码目录frameworks 22 2.2.2 应用层源代码目录packages 24 2.2.3 其他源代码目录 24 2.3 Android源代码的阅读和编辑 25 2.3.1 用Eclipse阅读源代码 25 2.3.2 反馈Bug 26 2.3.3 提交修改 27 2.4 小结 27

第3章 Android组件模型解析 28 3.1 基于Mashup的应用设计 29 3.1.1 Android中的Mashup 29 3.1.2 基于Mashup的Android应用模型 30 3.1.3 基于Mashup的应用架构特征 32 3.2 界面组件Activity解析 34 3.2.1 界面组件的功能和特征 34 3.2.2 界面组件的开发 35 3.2.3 界面组件的数据结构 39 3.3 服务组件Service解析 40 3.3.1 服务组件的功能和特征 41 3.3.2 服务组件的开发和使用 43 3.3.3 服务组件的进程间通信模型 45 3.4 触发器组件Broadcast Receiver解析 49 3.4.1 触发器组件的功能和特征 49 3.4.2 触发器组件的使用 50 3.4.3 广播事件的发送 52 3.5 数据源组件Content Provider解析 52 3.5.1 数据源组件的定位和操作 53 3.5.2 数据源组件的开发 55 3.5.3 数据源组件的实现细节 57 3.6 应用配置文件解析 59 3.6.1 权限配置 61 3.6.2 环境配置 63 3.6.3 应用和组件配置 65 3.7 小结 66

第4章 Android的Intent机制 67 4.1 Intent对象的作用和构成 68 4.1.1 Intent对象的作用 69 4.1.2 Intent对象的构成 70 4.1.3 Intent对象解析 75 4.1.4 Intent Filter对象 76 4.2 意图匹配 78 4.2.1 意图匹配的算法流程 79 4.2.2 匹配组件的选择 84 4.2.3 意图匹配的优化 85 4.3 意图机制的应用 86 4.3.1 意图机制在界面组件中的应用 86 4.3.2 意图机制在服务组件中的应用 88 4.3.3 意图机制在触发器组件中的应用 89 4.4 小结 90

第5章 组件生命周期解析 91 5.1 应用进程模型 92 5.1.1 应用、组件和进程 92 5.1.2 组件的应用进程配置 94 5.2 应用进程托管 96 5.2.1 为什么需要进程托管 97 5.2.2 进程优先级 97 5.2.3 进程回收算法 100 5.2.4 进程的强行终止 103 5.2.5 掌控进程的优先级 105 5.3 组件的生命周期模型 106 5.3.1 界面组件的生命周期 107 5.3.2 服务组件的生命周期 115 5.3.3 触发器组件的生命周期 119 5.3.4 数据源组件的生命周期 120 5.3.5 应用环境的生命周期 120 5.4 任务和界面组件栈 120 5.4.1 界面组件的运行模式 122 5.4.2 组件的任务黏度 126 5.4.3 实际应用中的任务控制 127 5.5 小结 128

第6章 组件间的数据传输 129 6.1 利用Intent对象进行数据传输 130 6.1.1 利用Intent对象回传数据 131 6.1.2 利用Intent对象传递数据的优缺点 133 6.2 利用文件进行数据共享 134 6.2.1 利用文件进行数据共享的实现 134 6.2.2 利用文件进行数据共享的优缺点 135 6.3 利用应用环境的全局数据共享 136 6.3.1 利用应用环境对象共享数据的实现 137 6.3.2 利用应用环境对象共享数据的优缺点 138 6.4 利用组件共享数据 139 6.4.1 利用数据源组件共享数据 139 6.4.2 利用服务组件共享数据 140 6.5 小结 140

第7章 Android控件解析 141 7.1 Android的控件框架 142 7.1.1 Android控件构成 142 7.1.2 Android交互事件传输 143 7.1.3 Android控件属性 145 7.1.4 控件的丈量和绘制 150 7.2 Android的窗口机制 150 7.2.1 窗口机制的基本原理 151 7.2.2 界面组件和窗口 152 7.2.3 对话框 154 7.2.4 弹出窗口 156 7.3 Android的基本控件介绍 158 7.3.1 文本控件 159 7.3.2 图像控件 163 7.3.3 Surface控件 164 7.3.4 Layout控件 164 7.3.5 适配器控件 167 7.3.6 选项卡控件 172 7.3.7 浏览器控件 173 7.4 自定义控件 175 7.4.1 控件的定制 175 7.4.2 复合控件 180 7.4.3 自绘控件 183 7.5 Android界面新发展 188 7.5.1 动作栏 188 7.5.2 界面片段 191 7.5.3 重新定制选项卡 197 7.5.4 交互界面的适配 200 7.6 小结 204

第8章 应用资源 205 8.1 Android应用资源体系 206 8.1.1 Android的应用资源构成 206 8.1.2 应用资源的适配 208 8.1.3 应用资源的动态匹配 209 8.2 应用资源的调用 213 8.2.1 应用资源的编译和R类 213 8.2.2 应用资源的管理 215 8.2.3 使用应用资源 216 8.3 应用资源的类型 217 8.3.1 界面和样式 217 8.3.2 字符串和常量 221 8.3.3 图像、图形和动画 223 8.3.4 其他资源文件 225 8.4 小结 225

第9章 数据存储 226 9.1 Android的文件系统 227 9.1.1 Android的目录结构 229 9.1.2 Android的应用数据存储 229 9.1.3 Android的文件操作 231 9.2 使用设置文件 233 9.2.1 设置文件的存储和使用 234 9.2.2 设置界面组件 235 9.3 使用数据库 238 9.3.1 Android数据库实现 238 9.3.2 Android数据库的使用 240 9.4 存储在云端 243 9.4.1 云端存储的架构 244 9.4.2 云端存储的使用 245 9.5 小结 247

第10章 网络通信 248 10.1 Web通信 249 10.1.1 基于HTTP的网络连接 249 10.1.2 联网方式的选择 252 10.1.3 WiFi的管理 254 10.2 蓝牙 256 10.2.1 Android的蓝牙实现 256 10.2.2 基于蓝牙的通信 257 10.3 近场通信 259 10.3.1 基于NFC的识别和通信 259 10.3.2 基于NFC的点对点通信 263 10.4 基于WiFi连接的P2P通信 263 10.4.1 Android 4.0的P2P连接实现 264 10.4.2 使用Socket进行数据传输 266 10.5 小结 268

第11章 地理信息服务 269 11.1 Android的定位服务 270 11.1.1 定位服务框架 270 11.1.2 位置信息源 272 11.1.3 定位选择 273 11.1.4 定位实例 274 11.2 Android的地址服务 277 11.2.1 地址服务的框架 277 11.2.2 使用地址服务 278 11.3 Android的地图服务 279 11.3.1 使用地图 279 11.3.2 其他使用地图服务的方式 282 11.4 小结 283

第12章 多媒体处理 284 12.1 Android的图像处理 285 12.1.1 图像的表示 285 12.1.2 图像的读取和输出 286 12.1.3 图像的呈现 288 12.1.4 图像的管理 290 12.2 Android的音视频处理 291 12.2.1 Android音视频的支持框架 291 12.2.2 Android音视频的播放 292 12.2.3 Android音视频的录制 294 12.3 Android中相机的使用 296 12.4 小结 300

第13章 其他重要模块 301 13.1 通话和短信 302 13.1.1 Android的通话和短信框架 302 13.1.2 通话的处理 303 13.1.3 短信的发送和接收 305 13.2 App Widget的使用和实现 308 13.2.1 Android的App Widget框架 309 13.2.2 App Widget的界面构造和Remote Views 311 13.2.3 App Widget的事件处理和Pending Intent 313 13.3 Android的应用内搜索 317 13.3.1 Android应用内搜索实现框架 317 13.3.2 为应用定制搜索功能 318 13.3.3 全局搜索功能 322 13.4 Android的全局通知机制 323 13.4.1 全局通知的类型和实现 324 13.4.2 Toast的使用 325 13.4.3 状态栏通知 327 13.5 Android联系人处理 331 13.5.1 Android联系人数据存储框架 331 13.5.2 Android联系人操作 332 13.6 小结 334

亚马逊链接