内容简介
第1篇 基础知识篇
第1章 Android应用开发基础
1.1 移动智能设备系统发展现状
1.1.1 智能手机和移动智能设备
1.1.2 主流系统的发展现状
1.2 Android系统的诞生和发展现状
1.2.1 Android系统的发展历程
1.2.2 Android系统的发展现状
1.2.3 常见的Android设备
1.2.4 Android系统的巨大优势
1.3 搭建Android应用开发环境
1.3.1 安装Android SDK的系统要求
1.3.2 安装JDK
1.3.3 获取并安装Eclipse和Android SDK
1.3.4 安装ADT
1.3.5 设定Android SDK Home
1.3.6 验证开发环境
1.3.7 创建Android虚拟设备(AVD)
1.3.8 启动AVD模拟器
1.4 第一个Android应用程序
1.4.1 使用Eclipse新建Android工程
1.4.2 编写代码和代码分析
1.4.3 调试程序
1.4.4 运行项目
1.4.5 导入一个既有项目
第2章 Android应用开发技术必备
2.1 Android系统架构
2.1.1 最底层的操作系统层(OS)——C/C++实现
2.1.2 Android的硬件抽象层——C/C++实现
2.1.3 各种库(Libraries)和Android运行环境(RunTime)——中间层
2.1.4 应用程序(Application)——Java实现
2.1.5 应用程序框架(Application Framework)
2.2 Android应用程序文件组成
2.2.1 src目录
2.2.2 设置文件AndroidManfest.xml
2.2.3 gen目录中的R.java和BuildConfig.java
2.2.4 res目录
2.2.5 assets目录
2.3 Android的5大组件
2.3.1 Activity组件——表现屏幕界面
2.3.2 Intent组件——实现界面切换
2.3.3 Service组件——后台服务
2.3.4 Broadcast/Receiver组件——实现广播机制
2.3.5 Content Provider组件——实现数据存储
2.4 Android应用程序的生命周期
2.4.1 什么是进程
2.4.2 什么是线程
2.4.3 Android应用程序的生命周期
2.5 Android和Linux的关系
2.5.1 Android继承于Linux
2.5.2 Android和Linux内核的区别
第2篇 核心技术篇
第3章 UI界面布局
3.1 View视图组件
3.1.1 View的常用属性和方法
3.1.2 Viewgroup容器
3.1.3 ViewManager类
3.2 Android UI布局的方式
3.2.1 使用XML布局
3.2.2 在Java代码中控制布局
3.3 Android布局管理器详解
3.3.1 Android布局管理器概述
3.3.2 线性布局LinearLayout
3.3.3 相对布局RelativeLayout
3.3.4 帧布局FrameLayout
3.3.5 表格布局TableLayout
3.3.6 绝对布局AbsoluteLayout
3.3.7 网格布局GridLayout
3.3.8 实战演练——演示各种基本布局控件的用法
第4章 核心组件介绍
4.1 Widget组件
4.1.1 创建一个Widget组件
4.1.2 使用按钮Button
4.1.3 使用文本框TextView
4.1.4 使用编辑框EditText
4.1.5 使用多项选择控件CheckBox
4.1.6 使用单项选择控件RadioGroup
4.1.7 使用下拉列表控件Spinner
4.1.8 使用自动完成文本控件AutoCompleteTextView
4.1.9 使用日期选择器控件DatePicker
4.1.10 使用时间选择器控件TimePicker
4.1.11 联合应用DatePicker和TimePicker
4.1.12 使用滚动视图控件ScrollView
4.1.13 使用进度条控件ProgressBar
4.1.14 使用拖动条控件SeekBar
4.1.15 使用评分组件RatingBar
4.1.16 使用图片视图控件ImageView
4.1.17 使用切换图片控件ImageSwitcher和Gallery
4.1.18 使用网格视图控件GridView
4.1.19 使用标签控件Tab
4.2 使用MENU友好界面
4.2.1 MENU基础
4.2.2 实战演练——使用MENU控件
4.3 使用列表控件ListView
4.3.1 通过ArrayAdapter接收一个数组或通过List作为参数来构建
4.3.2 实战演练——使用SimpleAdapter实现ListView列表功能
4.4 使用对话框控件
4.4.1 对话框基础
4.4.2 实战演练——在屏幕中使用对话框显示问候语
4.5 使用Toast和Notification提醒控件
4.5.1 Toast和Notification基础
4.5.2 练习Toast和Notification
4.6 自定义控件
第5章 Android事件处理
5.1 基于监听的事件处理
5.1.1 监听处理模型中的3种对象
5.1.2 Android系统中的监听事件
5.1.3 实现事件监听器的方法
5.2 基于回调的事件处理
5.2.1 Android事件侦听器的回调方法
5.2.2 基于回调的事件传播
5.2.3 重写onTouchEvent方法响应触摸屏事件
5.3 响应的系统设置的事件
5.3.1 Configuration类详解
5.3.2 重写onConfigurationChanged响应系统设置更改
5.4 Handler消息传递机制
第6章 Activity界面表现详解
6.1 Activity基础
6.1.1 Activity的状态及状态间的转换
6.1.2 Activity栈
6.1.3 Activity的生命周期
6.2 操作Activity
6.2.1 使用LauncherActivity类
6.2.2 使用ExpandableListActivity类
6.2.3 使用PreferenceActivity和PreferenceFragment
6.2.4 配置Activity
6.2.5 启动、关闭Activity
6.2.6 Activity数据交换
6.2.7 启动其他Activity
6.3 Activity的加载模式
6.3.1 standard加载模式
6.3.2 singleTop加载模式
6.3.3 singleTask加载模式
6.3.4 singleInstance加载模式
6.4 使用Fragment
6.4.1 Fragment基础
6.4.2 创建Fragment
第7章 Intent和IntentFilter详解
7.1 Intent和IntentFilter基础
7.1.1 Intent启动不同组件的方法
7.1.2 Intent的构成
7.1.3 Intent的基本用法
7.2 显式Intent和隐式Intent
7.2.1 显式Intent(Explicit Intent)的基本用法
7.2.2 隐式Intent(Implicit Intent)
7.3 IntentFilter详解
7.3.1 IntentFilter基础
7.3.2 IntentFilter响应隐式Intent
7.3.3 Android解析IntentFilter
7.4 Intent的属性
7.4.1 Component属性
7.4.2 Action属性
7.4.3 Category属性
7.4.4 Data属性和Type属性
7.4.5 Extra属性
7.4.6 Flag属性
7.5 Intent和Activity
7.5.1 显式启动新的Activity
7.5.2 隐式Intent和运行时绑定
7.5.3 Activity的返回值
7.5.4 Android本地动作
7.6 使用Intent广播一个事件
7.6.1 广播事件
7.6.2 BroadcastReceiver监听广播
7.6.3 Android本地广播
7.7 拨打电话
7.8 发送短信
第8章 Service和BroadcastReceiver
8.1 Service详解
8.1.1 Service基础
8.1.2 Service的生命周期
8.1.3 Service的策略
8.1.4 创建Service
8.1.5 使用Service
8.1.6 与远程Service通信
8.1.7 Service的访问权限
8.1.8 简单使用Service实例
8.1.9 提高Service优先级
8.1.10 Service综合实例
8.2 AIDL Service服务
8.2.1 AIDL基础
8.2.2 将接口暴露给客户端
8.2.3 客户端访问AIDL Service
8.3 BroadcastReceiver详解
8.3.1 BroadcastReceiver基础
8.3.2 Receiver的生命周期
8.3.3 基本操作
8.4 短信处理和电话处理
8.4.1 SmsManager类介绍
8.4.2 TelephonyManager类介绍
8.4.3 实战演练——监听短信是否发送成功
第9章 应用资源管理机制详解
9.1 Android的资源类型
9.2 如何使用资源
9.2.1 在Java代码中使用资源清单项
9.2.2 在Java代码中访问实际资源
9.2.3 在XML代码中使用资源
9.3 \res\values目录
9.3.1 定义颜色值
9.3.2 字符串资源
9.3.3 颜色资源文件
9.3.4 尺寸资源文件
9.3.5 数组资源
9.3.6 使用字符串、颜色和尺寸资源
9.3.7 使用数组资源
9.4 Drawable(图片)资源
9.4.1 使用StateListDrawable资源
9.4.2 使用LayerDrawable资源
9.4.3 使用ShapeDrawable资源
9.4.4 使用ClipDrawable资源
9.4.5 使用AnimationDrawable资源
9.5 使用属性动画(Property Animation)资源
9.6 使用原始的XML资源
9.7 样式资源和主题资源
9.7.1 使用样式资源
9.7.2 使用主题资源文件
9.8 使用属性资源
9.9 使用声音资源
9.1 使用布局资源和菜单资源
9.11 国际化
第10章 数据存储
10.1 5种存储方式
10.2 SharedPreferences存储
10.2.1 SharedPreferences简介
10.2.2 使用SharedPreferences存储数据
10.3 文件存储
10.4 最常用的SQLite
10.4.1 SQLite基础
10.4.2 SQLite数据类型
10.4.3 SQLiteDatabase介绍
10.4.4 SQLiteOpenHelper介绍
10.4.5 实战演练——使用SQLite操作数据
10.5 ContentProvider存储
10.5.1 ContentProvider介绍
10.5.2 使用ContentProvider
10.6 网络存储
第3篇 多媒体应用篇
第11章 二维图像处理
11.1 SurfaceFlinger渲染管理器
11.1.1 SurfaceFlinger基础
11.1.2 Surface和Canvas
11.2 Skia渲染引擎详解
11.2.1 Skia基础
11.2.2 Android中的Skia
11.2.3 使用Skia绘图
11.2.4 Skia的其他功能
11.3 Android绘图基础
11.3.1 使用Canvas画布
11.3.2 使用Paint类
11.3.3 位图操作类Bitmap
11.4 使用其他的绘图类
11.4.1 使用设置文本颜色类Color
11.4.2 使用矩形类Rect和RectF
11.4.3 非矢量图形拉伸类NinePatch
11.4.4 使用变换处理类Matrix
11.4.5 使用BitmapFactory类
11.4.6 使用Region类
11.4.7 使用Typeface类
第12章 二维动画应用
12.1 使用Drawable实现动画效果
12.1.1 Drawable基础
12.1.2 使用Drawable实现动画效果
12.2 Tween Animation动画详解
12.2.1 Tween动画基础
12.2.2 Tween动画类详解
12.2.3 Tween应用实战
12.3 实现Frame Animation动画效果
12.3.1 Frame动画基础
12.3.2 使用Frame动画
12.4 Property Animation动画
12.4.1 Property Animation(属性)动画基础
12.4.2 使用Property Animation
12.5 实现动画效果的其他方法
12.5.1 播放GIF动画
12.5.2 实现EditText动画特效
第13章 开发音频应用程序
13.1 音频应用接口类介绍
13.2 AudioManager类
13.2.1 AudioManager基础
13.2.2 AudioManager基本应用——设置短信提示铃声
13.3 录音处理
13.3.1 使用MediaRecorder接口录制音频
13.3.2 使用AudioRecorder接口录制音频
13.4 播放音频
13.4.1 使用AudioTrack播放音频
13.4.2 使用MediaPlayer播放音频
13.4.3 使用SoundPool播放音频
13.4.4 使用Ringtone播放铃声
13.4.5 使用JetPlayer播放音频
13.4.6 使用AudioEffect处理音效
13.5 语音识别技术
13.5.1 Text-To-Speech技术
13.5.2 谷歌的Voice Recognition技术
13.6 实现振动功能
13.7 设置闹钟
13.7.1 AlarmManager基础
13.7.2 开发一个闹钟程序
第14章 开发视频应用程序
14.1 使用MediaPlayer播放视频
14.2 使用VideoView播放视频
14.2.1 VideoView基础
14.2.2 使用VideoView播放手机中的影片
14.3 使用Camera拍照
14.3.1 Camera基础
14.3.2 使用Camera预览并拍照
14.3.3 使用Camera API方式拍照
第15章 OpenGL ES 3.1 三维处理
15.1 OpenGL ES基础
15.1.1 OpenGL ES 3.1 介绍
15.1.2 Android全面支持OpenGL ES 3.1
15.2 OpenGL ES的基本应用
15.2.1 使用点线法绘制三角形
15.2.2 使用索引法绘制三角形
15.3 实现投影效果
15.3.1 正交投影
15.3.2 透视投影
15.3.3 正交投影和透视投影的区别
15.4 实现光照效果
15.4.1 光源的类型
15.4.2 光源的颜色
15.5 实现纹理映射
15.5.1 纹理贴图和纹理拉伸
15.5.2 Texture Filter纹理过滤
15.6 绘制一个圆柱体
15.7 实现坐标变换
15.7.1 坐标变换基础
15.7.2 实现缩放变换
15.7.3 实现平移变换
15.8 使用Alpha混合技术
15.9 实现摄像机和雾特效功能
15.9.1 摄像机基础
15.9.2 雾特效基础
第4篇 网络应用篇
第16章 HTTP数据通信
16.1 HTTP基础
16.1.1 HTTP概述
16.1.2 HTTP协议的功能
16.1.3 Android中的HTTP
16.1.4 使用Apache接口
16.1.5 实战演练——在手机屏幕中传递HTTP参数
16.2 URL和URLConnection
16.2.1 URL类详解
16.2.2 实战演练——从网络中下载图片作为屏幕背景
16.3 HTTPURLConnection详解
16.3.1 HttpURLConnection的主要用法
16.3.2 实战演练——在Android手机屏幕中显示网络中的图片
第17章 处理XML数据
17.1 XML技术基础
17.1.1 XML的概述
17.1.2 XML的语法
17.1.3 获取XML文档
17.2 使用SAX解析XML数据
17.2.1 SAX的原理
17.2.2 基于对象和基于事件的接口
17.2.3 常用的接口和类
17.2.4 实战演练——在Android系统中使用SAX解析XML数据
17.3 使用DOM解析XML
17.3.1 DOM概述
17.3.2 DOM的结构
17.3.3 实战演练——在Android系统中使用DOM解析XML数据
17.4 PULL解析技术
17.4.1 PULL解析原理
17.4.2 实战演练——在Android系统中使用PULL解析XML数据
第18章 下载、上传数据
18.1 下载网络中的图片数据
18.2 下载网络中的JSON数据
18.2.1 JSON基础
18.2.2 实战演练——远程下载服务器中的JSON数据
18.3 实战演练——下载并播放网络中的MP3
18.4 使用GET方式上传数据
18.5 使用POST方式上传数据
第19章 使用Socket实现数据通信
19.1 Socket编程初步
19.1.1 TCP/IP协议基础
19.1.2 UDP协议
19.1.3 基于Socket的Java网络编程
19.2 TCP编程详解
19.2.1 使用ServletSocket
19.2.2 使用Socket
19.2.3 TCP中的多线程
19.2.4 实现非阻塞Socket通信
19.3 UDP编程
19.3.1 使用DatagramSocket
19.3.2 使用MulticastSocket
19.4 在Android中使用Socket实现数据传输
第20章 使用WebKit浏览网页数据
20.1 WebKit源码分析
20.1.1 Java层框架
20.1.2 C/C++层框架
20.2 分析WebKit的操作过程
20.2.1 WebKit初始化
20.2.2 载入数据
20.2.3 刷新绘制
20.3 WebView详解
20.3.1 WebView介绍
20.3.2 实战演练——在手机屏幕中浏览网页
20.3.3 实战演练——加载一个指定的HTML程序
20.3.4 实战演练——使用WebView加载JavaScript程序
第21章 GPS地图定位
21.1 位置服务
21.1.1 类location详解
21.1.2 实战演练——在Android设备中实现GPS定位
21.2 随时更新位置信息
21.2.1 库Maps中的类
21.2.2 使用LocationManager监听位置
21.2.3 实战演练——监听当前设备的坐标和海拔
21.3 在Android设备中使用地图
21.3.1 添加Google Map密钥
21.3.2 使用Map API密钥
21.3.3 实战演练——在Android设备中使用谷歌地图实现定位
21.4 接近警报
21.4.1 类Geocoder基础
21.4.2 Geocoder的公共构造器和公共方法
第5篇 知识进阶篇
第22章 Android传感器应用开发详解
22.1 Android传感器系统概述
22.2 Android传感器应用开发基础
22.2.1 查看包含的传感器
22.2.2 模拟器测试工具——SensorSimulator
22.2.3 实战演练——检测当前设备支持的传感器
22.3 使用光线传感器
22.3.1 光线传感器介绍
22.3.2 使用光线传感器的方法
22.4 使用磁场传感器
22.4.1 什么是磁场传感器
22.4.2 Android系统中的磁场传感器
22.5 使用加速度传感器
22.5.1 加速度传感器的分类
22.5.2 Android系统中的加速度传感器
22.6 使用方向传感器
22.6.1 方向传感器基础
22.6.2 Android中的方向传感器
22.7 使用陀螺仪传感器
22.7.1 陀螺仪传感器基础
22.7.2 Android中的陀螺仪传感器
22.8 使用旋转向量传感器
22.9 使用距离传感器详解
22.9.1 距离传感器介绍
22.9.2 Android系统中的距离传感器
22.10 使用气压传感器
22.10.1 气压传感器基础
22.10.2 气压传感器在智能手机中的应用
22.11 温度传感器详解
22.11.1 温度传感器介绍
22.11.2 Android系统中的温度传感器
22.12 使用湿度传感器
第23章 近距离通信应用详解
23.1 近距离无线通信技术概览
23.1.1 ZigBee——低功耗、自组网
23.1.2 WiFi——大带宽支持家庭互联
23.1.3 蓝牙——4.0进入低功耗时代
23.1.4 NFC——必将逐渐远离历史舞台
23.2 低功耗蓝牙基础
23.2.1 低功耗蓝牙的架构
23.2.2 低功耗蓝牙分类
23.2.3 可穿戴设备的兴起
23.3 和蓝牙相关的类
23.3.1 BluetoothSocket类
23.3.2 BluetoothServerSocket类
23.3.3 BluetoothAdapter类
23.3.4 BluetoothClass.Service类
23.3.5 BluetoothClass.Device类
23.4 使用近场通信技术
23.4.1 NFC技术的特点
23.4.2 NFC的工作模式
23.4.3 NFC和蓝牙的对比
23.4.4 Android系统中的NFC
23.4.5 实战演练——使用NFC发送消息
第24章 手势识别实战
24.1 手势识别技术介绍
24.1.1 手势识别类GestureDetector
24.1.2 手势检测器类GestureDetector
24.1.3 手势识别处理事件和方法
24.2 实战演练——通过点击的方式移动图片
24.3 实战演练——实现各种手势识别
24.3.1 布局文件main.xml
24.3.2 隐藏屏幕项部的电池等图标和标题内容
24.3.3 监听触摸屏幕中的各种常用手势
24.3.4 根据监听到的用户手势创建视图
24.4 实战演练——实现手势翻页效果
24.4.1 布局文件main.xml
24.4.2 监听手势
第25章 Google Now和Android Wear详解
25.1 Google Now介绍
25.1.1 搜索引擎的升级——Google Now
25.1.2 Google Now的用法
25.2 Android Wear详解
25.2.1 什么是Android Wear
25.2.2 搭建Android Wear开发环境
25.3 开发Android Wear程序
25.3.1 创建通知
25.3.2 创建声音
25.3.3 给通知添加页面
25.3.4 通知堆
25.3.5 通知语法介绍
25.4 实战演练——开发一个Android Wear程序
第26章 Android应用优化详解
26.1 用户体验是产品成功的关键
26.1.1 什么是用户体验
26.1.2 影响用户体验的因素
26.1.3 用户体验设计目标
26.2 Android优化概述
26.3 UI布局优化
26.3.1 〈merge/〉标签在UI界面中的优化作用
26.3.2 遵循Android Layout优化的两段通用代码
26.3.3 优化Bitmap图片
26.3.4 FrameLayout布局优化
26.3.5 使用Android提供的优化工具
26.4 优化Android代码
26.4.1 优化Java代码
26.4.2 编写更高效的Android代码
第27章 为Android开发网页
27.1 准备工作
27.1.1 搭建开发环境
27.1.2 实战演练——编写一个适用于Android系统的网页
27.1.3 控制页面的缩放
27.2 添加Android的CSS
27.2.1 编写基本的样式
27.2.2 添加视觉效果
27.3 添加JavaScript
27.3.1 jQuery框架介绍
27.3.2 具体实践
27.4 使用AJAX
27.4.1 AJAX介绍
27.4.2 实战演练——在Android系统中开发一个AJAX网页
27.5 让网页动起来
27.5.1 一个开源框架——JQTouch
27.5.2 实战演练——在Android系统中使用JQTouch框架开发网页
27.6 使用PhoneGap
27.6.1 PhoneGap介绍
27.6.2 搭建PhoneGap开发环境
27.6.3 创建基于PhoneGap的HelloWorld程序
第28章 编写安全的应用程序
28.1 Android安全机制概述
28.1.1 Android的安全机制模型
28.1.2 Android具有的权限
28.1.3 Android的组件模型(Component Model)
28.1.4 Android安全访问设置
28.2 声明不同的权限
28.2.1 AndroidManifest.xml文件基础
28.2.2 声明获取不同的权限
28.2.3 自定义一个权限
28.3 发布Android程序生成APK
28.3.1 什么是APK文件
28.3.2 申请会员
28.3.3 生成签名文件
28.3.4 使用签名文件
28.3.5 发布到市场