第1章 Android系统架构与初始化流程 1
1.1 Android发展历史回顾 1
1.2系统架构 10
1.3初始化流程 12
1.4权限安全机制 16
第2章 Activity简介 17
2.1 Activity的架构设计 17
2.2 Activity的生命周期 23
2.3旋转屏幕重新加载Activity 28
第3章 常用UI界面以及实现 34
3.1缓冲界面 34
3.2宫格界面 38
3.3 Tab界面 41
3.4二级列表 47
3.5抽屉效果 51
3.6左右滑动效果 54
3.6.1系统提供ViewFlipper 54
3.6.2自定义ViiewFlow 57
3.7 Gallery 58
3.8悬浮框 60
第4章 ListView使用详解 63
4.1 ListView与Adapter的关系 63
4.2 ListView绑定EmptyView 64
4.3自定义Adapter 69
4.4 ListView的使用技巧 73
第5章 定制控件 78
5.1扩展系统控件 78
5.2自绘控件 80
5.3触屏事件处理 83
5.4扩展ViewGroup类 88
5.5定义控件属性 93
5.6定制控件的style和theme 95
第6章 Drawable分类汇总 99
6.1 ColorDrawable 99
6.2 GradientDrawable 101
6.3 BitmapDrawable 106
6.4 NinePatchDrawable 108
6.5 InsetDrawable 109
6.6 ClipDrawable 110
6.7 ScaleDrawable 112
6.8 RotateDrawable 112
6.9 AnimationDrawable 113
6.10 LayerDrawable 114
6.11 LevelListDrawable 115
6.12 StateListDrawable 116
6.13 TransitionDrawable 118
第7章 图像操作技巧 120
7.1位图资源 120
7.1.1加载位图资源 120
7.1.2创建位图资源 121
7.1.3保存位图资源 122
7.2常用的位图操作 123
7.2.1 View转换为Bitmap 123
7.2.2图片圆角处理 124
7.2.3图片灰化处理 126
7.2.4提取图像Alpha位图 127
7.2.5图像变换 128
7.3内存溢出(OOM)问题 135
第8章 布局优化 137
8.1复用布局文件 137
8.2布局的层次结构 139
8.2.1 Hierachy Viewer 140
8.2.2创建高效的布局 142
8.2.3合并布局 145
8.2.4提高控件查找效率 150
8.3布局文件延迟加载 153
第9章 消息模型 157
9.1 UI线程 157
9.2消息系统与消息模型 158
9.2.1消息系统构成要素和基本原理 158
9.2.2消息模型基本原理 159
9.2.3消息模型使用方法 160
9.2.4 Handler常见用法 167
第10章 网络通信 172
10.1使用HttpURLConnection发送Post/Get请求 172
10.2设置Proxy访问网络 174
10.3实现文件下载断点续传 176
10.3.1设计下载任务进度类DownloadBean 176
10.3.2创建下载线程并可随时中断线程 177
10.3.3设置网络链接读取资源的有效范围 177
10.3.4使用RandoniAccessFile随机读写文件 178
第11章 桌面组件AppWidget 180
11.1 AppWidget框架结构 180
11.1.1 AppWidget框架类 180
11.1.2 AppWiidget框架相关类 181
11.2 AppWiidget开发 183
11.2.1 AppWiidgetProvider类的使用 183
11.2.2 AppWidget开发实例 187
11.2.3实例改进 191
第12章 系统服务 195
12.1系统服务简介 195
12.2系统服务开发 196
12.2.1电源服务开发 196
12.2.2窗口管理服务开发 199
12.2.3 Layout扩展服务开发 200
12.2.4 Activity服务开发 202
12.2.5 Notitycation服务开发 203
12.2.6闹钟服务开发 205
12.2.7 KeyGuard服务开发 209
12.2.8位置服务开发 211
12.2.9 Vibrator服务开发 214
第13章 多媒体开发 216
13.1 Android多媒体系统简介 216
13.1.1系统架构 216
13.1.2系统功能 217
13.1.3 OpenCore简介 218
13.1.4 OpenMAX简介 218
13.2 MediaPlayer的使用 219
13.2.1初始化和准备播放 220
13.2.2播放控制 221
13.2.3释放播放资源 222
13.2.4视频播放 222
13.3音频视频录制 225
13.3.1使用Intent录制音频和视频 225
13.3.2使用MediaRecorder录制音频和视频 226
13.3.3原始音频录制与播放 227
13.4 Camera使用 231
13.4.1运用Intent捕获照片 232
13.4.2调用Camera组件捕获照片 232
13.5 SoundPool类的使用 235
13.5.1 SoundPool类简介与适用场合 235
13.5.2使用SoundPool播放声音 236
第14章 图片异步加载及缓存 238
14.1异步加载与缓存的重要性 238
14.2垃圾回收机制与引用类型 238
14.2.1 Java的垃圾回收机制 239
14.2.2 Java引用类型 240
14.2.3使用软引用构建缓存 243
第15章 移动广告平台 256
15.1移动应用平台发展现状 256
15.2移动广告平台发展趋势 259
15.3移动广告平台的盈利模式 260
15.4选择广告平台 262
15.4.1国内移动广告平台简介 262
15.4.2平台选择参考标准 263
15.5嵌入广告插件 263
第16章 代码优化技术 270
16.1编译前的代码优化技术 270
16.1.1尽可能避免创建不必要的对象 270
16.1.2方法调用代码优化 271
16.1.3代码变量优化 273
16.1.4代码过程优化 274
16.2内存泄漏代码优化及检测 277
16.2.1内存泄漏检测工具——Memory Analyser Tool(MAT) 278
16.2.2 MAT使用示例 278
16.3代码混淆技术 281
16.3.1 ProGuard简介 281
16.3.2 ProGuard使用 282
第17章 加解密 289
17.1使用HASH算法(MD5/SHAl)保护应用程序的安全 289
17.2使用对称加密算法(BASE 64)隐藏关键信息 290
17.3非对称加密算法(RSA)的使用 293