目录
前言 3
第一章工欲善其事 必先利其器—AndroidSDK工具 9
1.1 巧妇难为无米之炊—Android SDK的安装 9
1.2 设备管理工具—调试桥(ADB) 11
1.2.1 ADB简介 11
1.2.2 ADB常用命令介绍 11
1.3 没有真机一样开发--Android模拟器 13
1.4 Android调试—调试工具( DDMS) 16
1.5 UI布局分析工具—视图工具(HierarchyViewer) 20
1.6 Log打印—Log输出工具(logcat) 22
1.6.1 启动logcat 22
1.6.2 过滤日志输出 23
1.6.3 控制日志输出格式 23
1.6.4 查看可用日志缓冲区 24
1.7 图片拉伸不失真—九宫格绘制工具(Draw9-Patch) 25
1.7.1 什么是“点九”文件 25
1.7.2 点九文件的制作 25
第二章吸引你的眼球—UI编程 28
2.1 UI基础—常用UI组件 28
2.1.1 文本显示—文本框(TextView) 28
2.1.2 按钮(Button) 30
2.1.3 文本编辑—编辑框(EditText) 32
2.1.4 图片显示—图片视图(ImageView) 35
2.1.5 多项选择—多选框(CheckBox)和单项选择—单选框(RadioBox) 37
2.1.6 图片拖动—拖动效果(Gallery) 41
2.1.7 列表组件(ListView) 43
2.2 彰显你的个性—自定义UI组件 50
2.3 简单明了的消息提示框(Toast)和对话框(Dialog) 53
2.3.1 Toast提示 53
2.3.2 Dialog提示 53
2.4 Menu键的呼唤—Menu菜单 57
第三章界面UI的基石—UI布局 62
3.1 用户界面的基本单元—View视图 62
3.2 百花齐放—各种Layout布局 64
3.2.1 Layout布局的简单介绍 64
3.2.2 线性布局(LinearLayout) 65
3.2.3 相对布局(RelativeLayout) 67
3.2.4 框架布局(FrameLayout) 69
3.2.5 表单布局(TableLayout) 71
3.2.6 绝对布局(AbsoluteLayout) 73
3.3 样式(Style)和主题(Theme)的使用 75
3.3.1 样式(Style)的使用 75
3.3.2 主题(Theme)的使用 76
第四章 Android开发三大基石—Activity、Service和Handler 78
4.1 应用程序的接口—Activity窗口 78
4.1.1 Activity生命周期 78
4.1.2 Activity栈 79
4.1.3 Activity的创建 80
4.1.4 Activity的四种加载模式 81
4.1.5 Activity交互—Activity跳转 82
4.1.6 Activity中数据传递 85
4.2 千变万化的服务-Service开发 85
4.2.1 Service的生命周期 85
4.2.2 Service的启动和停止 86
4.2.3 我的服务我来用—本地服务(Localservice)开发 86
4.2.4 开机自启动的服务 91
4.3 Android线程间的通信—消息机制 92
4.3.1 消息的传递—Handler的使用 92
4.3.2 Android中消息机制的详细分析 94
第五章以数据为中心—数据存取 97
5.1 文件操作 97
5.1.1 读写一般的文本文件 97
5.1.2 结构性的文件—读写XML文件 99
5.1.3 自由操作 随心所欲—序列化和反序列化 108
5.2 通用的数据操作方式—数据库 111
5.2.1 SQLite数据库介绍 111
5.2.2 创建并打开数据库 112
5.2.3 添加、删除和修改操作 112
5.2.4 游标的操作—使用Cursor 115
5.3 安全方便简单—使用SharedPreferences 116
5.4 我的数据大家用—ContentProvider、ContentResolver 117
第六章一张白纸好作画—Canvas画布 120
6.1 Canvas画布介绍 120
6.1.1 View Canvas—使用普通View的Canvas画图 120
6.1.2 Bitmap Canvas—使用普通Bitmap的Canvas画图 121
6.1.3 SurfaceView Canvas—使用SurfaceView的Canvas画图 122
6.2 Canvas常用绘制方法 124
6.3 对Canvas进行变换 126
6.4 Canvas绘制的辅助类 127
6.4.1 画笔android.graphics.Paint 127
6.4.2 字体android.graphics.Typeface 128
6.4.3 颜色android.graphics.Color 129
6.4.4 路径android.graphics.Path 130
6.4.5 路径的高级效果android.graphics.PathEffect 131
6.4.6点类android.graphics.Point和android.graphics.PointF 133
6.4.7 形状类android.graphics.Rect和android.graphics.RectF 134
6.4.8 区域android.graphics.Region与Region.Op 135
6.4.9 千姿百态 矩阵变换android.graphics.Matrix 136
第七章实现炫酷效果—图像和动画 140
7.1 Android的几种常用图像类型 140
7.2 图片的基础—Bitmap(位图) 140
7.2.1 如何获取位图资源 140
7.2.2如果获取位图的信息 141
7.2.3 位图的显示与变换 142
7.3 变化多端—Drawable(绘图类) 144
7.3.1 Drawable的一些常用子类 144
7.3.2 BitmapDrawable 144
7.3.3 点九图片—NinePatchDrawable 145
7.3.4 会动的图片—StateListDrawable 146
7.3.5 颜色填充的另一种方法—PaintDrawable 146
7.3.6 超炫的特效—ShapeDrawable 147
7.3.7 简单的帧动画—AnimationDrawable 154
7.4 轻量级图片—Picture 155
7.5 Drawable、Bitmap、byte[]之间的转换 156
7.6 Android提供的几种动画效果(Animation) 157
7.7 渐变动画—Tween Animation 157
7.7.1 Tween Animation简介 157
7.7.2 Tween Animation共同的属性 157
7.7.3 淡进淡出—AlphaAnimation 158
7.7.4 忽大忽小—ScaleAnimation 159
7.7.5 平移—TranslateAnimation 160
7.7.6 旋转—RotateAnimation 161
7.7.7 实现一个自己的TweenAnimation 162
7.8 渐变动画—Frame Animation 164
7.9 随意组合动画效果—AnimationSet 165
7.10 加速的工具—Interpolator 166
第八章网络的时代—网络开发 167
8.1 Android中网络开发概述 167
8.2 直接基于Socket编程 168
8.2.1 Socket编程简介 168
8.2.2 基于TCP协议的Socket编程 169
8.2.3 基于UDP协议的Socket编程 170
8.3 基于最成熟的Web协议—HTTP协议编程 171
8.3.1 HTTP协议简介 171
8.3.2 使用URL类读取HTTP资源 172
8.3.3 使用HttpURLConnection类访问HTTP资源 174
8.3.4 使用Apache的HttpClient 175
8.4 耗时操作的通用方式—多线程与异步处理 177
8.4.1 多线程和异步处理简介 178
8.4.2 Handler方式 178
8.4.3 AsyncTask类实现后台任务的处理 181
8.5 轻量级的数据交换格式—JSON 184
8.5.1 客户端与服务器端的数据交互 184
8.5.2 XML格式与JSON格式的比较 185
8.5.3 解析JSON格式数据 186
第九章多语言环境的支持和多屏幕的适配 189
9.1 Android程序的资源文件 189
9.1.1 资源文件的目录结构 189
9.1.2 资源文件目录的修饰语 190
9.1.3 程序加载资源文件的步骤 191
9.2 国际化和本地化的支持 192
9.3 多屏幕的适配 193
9.3.1 屏幕参数的基本概念 193
9.3.2 屏幕参数的各种单位及相互转换 194
9.3.3 处理屏幕自适应的方法 195
9.3.4 详细说明Density 196
第十章利用手机特性—结合硬件进行开发 199
10.1 炫酷的人机交互—触摸和手势 199
10.1.1 实现滑动翻页—使用ViewFlipper 199
10.1.2 支持多个手指一起操作—实现多点触摸 204
10.1.3 识别手势—使用GestureDetector 208
10.2 我在哪里—使用定位功能 210
10.3 电话拨打和短信发送 213
10.3.1 调用系统的电话拨打功能 213
10.3.2 实现发送短信的功能 213
10.4 拍照和摄像 215
10.5 使用传感器 217
10.5.1 传感器概述 217
10.5.2 加速度传感器 219
10.5.3 方向传感器 221
10.5.4 其它传感器 222
第十一章避重就轻—结合Web开发Android应用 224
11.1 Android上的Web应用概述 224
11.2 使用WebView载入Web页面 225
11.2.1 Webkit引擎和WebView控件介绍 225
11.2.2 浏览基本的Web页面 226
11.2.3 开启对于JavaScript的支持 227
11.2.4 监听Web页面的载入 227
11.2.5 让WebView支持文件下载 228
11.3 本地代码与Web页面交互 229
11.3.1 向Web页面传递数据 229
11.3.2 本地代码调用Web页面JavaScript方法 230
11.3.3 Web页面调用本地Java方法 231
11.4 Web页面的JavaScript调试 234
11.5 常用移动设备Web开发框架 236
11.5.1 jQuery Mobile框架简介 236
11.5.2 Sencha Touch框架简介 237
11.5.3 PhoneGap开发平台简介 238
第十二章细节决定成败—Android应用程序的优化 240
12.1 对应用内存的优化 240
12.1.1 Android程序的内存概述 240
12.1.2 追踪内存—使用内存优化辅助工具 241
12.1.3 吃内存大户—Bitmap的优化 245
12.1.4 想回收就回收—使用软引用和弱引用 248
12.1.5 注重细节—从代码角度进行优化 250
12.2 对界面UI的优化 253
12.2.1 多利用Android系统的资源 253
12.2.2 抽取相同的布局 256
12.2.3 精简UI层次 257
12.2.4界面延迟加载技术 259
12.3留条后路—对Crash进行处理 260
12.3.1 为什么需要捕获Crash 260
12.3.2 如何捕获和处理Crash 260
参考文献 263