第一篇 准备篇——刘备,从编草鞋到编代码 3
第1回 哦,何为Android? 3
1.1 Android基本知识 4
1.1.1 Android的历史 4
1.1.2 推动Android普及的因素 6
1.1.3 Android的未来 7
1.2 Android的架构及特性 7
1.2.1 Android平台架构简介 8
1.2.2 Android特性 10
1.3 玄德有话说 11
第2回 让我看看说明书! 12
2.1 Android开发准备工作 12
2.1.1 JDK的安装和配置 13
2.1.2 Eclipse的下载和安装 14
2.1.3 Android SDK的下载和安装 14
2.1.4 ADT的安装 16
2.1.5 创建AVD 17
2.2 创建第一个Android项目 18
2.2.1 创建HelloAndroid项目 18
2.2.2 运行并调试HelloAndroid 20
2.3 HelloAndroid项目的结构分析 23
2.3.1 Android项目的目录结构 23
2.3.2 自动生成的R.java 24
2.3.3 Android工程配置文件 26
2.3.4 应用程序权限说明 28
2.4 玄德有话说 28
第3回 老弟,这些工具你会使不? 30
3.1 DDMS 31
3.1.1 初识DDMS 31
3.1.2 使用DDMS进行内存使用分析 33
3.1.3 使用DDMS查看线程 36
3.1.4 使用DDMS模拟手机操作及位置服务 37
3.1.5 使用LogCat 38
3.1.6 使用File Explorer查看文件 39
3.2 其他开发工具 40
3.2.1 Android组建界面设计工具DroidDraw 40
3.2.2 Android感应模拟器Sensor Simulator 41
3.3 常用Eclipse插件安装方法 42
3.4 玄德有话说 43
第4回 哟,编程比编草鞋赚得多! 44
4.1 如何获取Android资料 45
4.1.1 国内Android社区及网站 45
4.1.2 国外Android社区及网站 46
4.2 上传我的应用 47
4.2.1 数字签名 47
4.2.2 截图和应用说明 49
4.2.3 上传应用平台 49
4.3 如何盈利 50
4.3.1 在应用中添加广告 50
4.3.2 在应用添加支付功能 51
4.4 玄德有话说 51
第二篇 基础篇——燃烧吧!我的雌雄双股剑! 55
第5回 二弟呀,面子工程很重要 55
5.1 用户界面简介 56
5.1.1 View和ViewGroup 56
5.1.2 Android界面的基本架构 57
5.2 常用控件 58
5.2.1 文本框(TextView) 58
5.2.2 按钮(Button) 60
5.2.3 编辑框(EditText) 62
5.2.4 自动提示文本框(AutoCompleteTextView) 64
5.2.5 RadioGroup和RadioButton 67
5.2.6 多项选择(CheckBox) 69
5.2.7 下拉列表(Spinner) 72
5.2.8 日期和时间组件(DatePicker和TimePicker) 76
5.2.9 提示(Toast) 78
5.2.10 图片视图(ImageView) 82
5.2.11 拖动条(SeekBar) 84
5.2.12 拖动效果(Gallery) 87
5.2.13 切换图片(ImageSwitcher) 89
5.2.14 网格视图(GridView) 93
5.2.15 列表(ListView) 96
5.3 Android常用布局 105
5.3.1 帧布局(FrameLayout) 105
5.3.2 线性布局(LinearLayout) 107
5.3.3 相对布局(RelativeLayout) 109
5.3.4 表格布局(TableLayout) 111
5.4 事件机制 115
5.4.1 事件种类 115
5.4.2 事件传递机制 115
5.4.3 事件处理机制 116
5.5 玄德有话说 119
第6回 这莫不是传说中的Activity? 120
6.1 Activity简介 121
6.1.1 Activity的生命周期 121
6.1.2 Activity的配置详解 122
6.2 Activity交互 123
6.2.1 使用Intent传递数据 124
6.2.2 使用静态变量传递数据 126
6.2.3 使用剪贴板传递数据 127
6.2.4 使用Application传递数据 129
6.2.5 Activity的回调函数 130
6.3 常用的Activity子类 132
6.3.1 ListActivity 132
6.3.2 PreferenceActivity 134
6.4 Application与Activity 138
6.5 玄德有话说 138
第7回 三弟,对话框伤不起啊! 139
7.1 对话框(Dialog)简介 140
7.2 Dialog与Activity的关系 140
7.3 Dialog种类 141
7.3.1 确定取消对话框 143
7.3.2 多个按钮信息框 145
7.3.3 列表框 146
7.3.4 进度条框 147
7.3.5 单项选择列表框 149
7.3.6 多项选择列表框 150
7.3.7 读取对话框 152
7.3.8 时间选择对话框 153
7.3.9 日期选择对话框 155
7.3.10 自定义对话框 156
7.4 玄德有话说 158
第8回 哈哈,我会用PopupWindow啦 160
8.1 PopupWindow介绍 160
8.2 PopupWindow的使用方法 161
8.2.1 PopupWindow的创建方式 161
8.2.2 PopupWindow的显示方式 162
8.2.3 PopupWindow的常用方法 162
8.3 PopupWindow的使用 163
8.3.1 简单的弹出框 163
8.3.2 简单的菜单 166
8.3.3 自定义PopupWindow动画 169
8.4 玄德有话说 174
第9回 军师,求解Intent 176
9.1 Intent简介 177
9.2 Intent的属性设置 177
9.3 Intent的解析 180
9.3.1 intent-filter 180
9.3.2 action匹配 180
9.3.3 category匹配 181
9.3.4 data匹配 181
9.3.5 intent-filter实例 184
9.4 使用Intent 185
9.4.1 Intent的使用方式 185
9.4.2 使用显式的Intent 185
9.4.3 使用自定义action 187
9.4.4 使用Intent调用系统组件 191
9.4.5 使程序成为公共接口 192
9.5 玄德有话说 194
第10回 这Service是怎么回事啊? 196
10.1 Service简介 196
10.1.1 什么是Service? 197
10.1.2 Service的生命周期 197
10.2 音乐播放服务实例 198
10.3 玄德有话说 204
第11回 我猜,小曹不会用广播 205
11.1 广播(Broadcast)与广播接收器(BroadcastReceiver)的关系 205
11.2 Broadcast 206
11.2.1 发送Broadcast 206
11.2.2 Broadcast的action 207
11.3 BroadcastReciever介绍 207
11.3.1 BroadcastReciever的实现 207
11.3.2 BroadcastReciever的注册方式 208
11.3.3 BroadcastReciever的生存周期 209
11.4 Broadcast的使用 209
11.5 玄德有话说 213
第12回 小曹,你会用Notification吗? 214
12.1 Notification介绍 214
12.1.1 Notification的常用方法 215
12.1.2 PendingIntent的介绍 216
12.2 NotificationManager介绍 217
12.3 Notification实例 217
12.3.1 自定义状态栏通知 217
12.3.2 同时显示多个Notification 221
12.4 玄德有话说 223
第13回 用什么存储你,我的满腔热血! 224
13.1 Android数据存取介绍 224
13.2 Android内部存取 225
13.2.1 获取内存信息 229
13.2.2 内存文件操作 231
13.3 Android SD卡存储 232
13.3.1 获取SD卡信息 236
13.3.2 SD卡文件操作 237
13.4 Preferences存取 238
13.5 Content Provider 242
13.6 玄德有话说 249
第14回 哦,用数据库! 251
14.1 SQLite数据库简介 251
14.2 SQLite Expert Professional简介 252
14.3 SQLite数据库操作类详解 253
14.3.1 SQLiteOpenHelper 253
14.3.2 SQLiteDatabase 254
14.3.3 游标(Cursor) 256
14.3.4 SimpleCursorAdapter 257
14.4 SQLite实例 258
14.4.1 创建数据库 259
14.4.2 导入数据库 259
14.4.3 操作数据库 260
14.5 玄德有话说 268
第15回 哼,我三岁就会图形应用! 270
15.1 Android绘图简介 271
15.2 View绘图实例 272
15.3 简单涂鸦 273
15.4 使用位图(Bitmap) 277
15.5 玄德有话说 279
第16回 哼,我四岁就看动画! 281
16.1 动画介绍 281
16.2 Animation介绍 282
16.2.1 Tween动画 282
16.2.2 Frame动画 292
16.3 Activity切换动画 296
16.4 Gif动画 300
16.4.1 Movie播放Gif动画 303
16.4.2 第三方包GifView 307
16.4.3 分解Gif 307
16.5 玄德有话说 307
第17回 音视频,一碟小菜 309
17.1 Android音视频介绍 309
17.2 音频播放实例 311
17.2.1 从资源文件播放音频 315
17.2.2 从文件系统播放音频 316
17.2.3 从网络地址播放音频 316
17.3 视频播放开发 317
17.3.1 VideoView播放视频实例 317
17.3.2 MediaPlayer播放视频实例 319
17.4 玄德有话说 322
第18回 一般人不能理解Socket的奥妙 323
18.1 Android中的Socket通信 323
18.1.1 构造Socket 324
18.1.2 获取Socket的信息 326
18.1.3 关闭Socket 326
18.1.4 半关闭Socket 327
18.2 非阻塞通信简介 327
18.3 Socket实例 328
18.4 玄德有话说 333
第19回 看!HTTP的威力! 335
19.1 HTTP通信 335
19.1.1 HttpURLConnection接口 336
19.1.2 HttpClient接口 338
19.2 JSON简介 338
19.3 HTTP实现JSON数据传输 339
19.4 玄德有话说 342
第20回 二弟呀,你赤兔带蓝牙不? 343
20.1 蓝牙介绍 343
20.2 Android蓝牙接口 344
20.2.1 BluetoothAdapter 344
20.2.2 BluetoothDevice 346
20.2.3 BluetoothServerSocket 347
20.2.4 BluetoothSocket 347
20.3 蓝牙通信实例 348
20.4 玄德有话说 349
第三篇 提高篇——大胆曹贼,我跟你拼啦! 353
第21回 反编译比较符合我的性格! 353
21.1 反编译详解 353
21.1.1 反编译工具介绍 354
21.1.2 反编译实战 356
21.2 防范apk被反编译 359
21.2.1 防止被反编译工具 359
21.2.2 反编译实战 362
21.3 Ant编译打包 363
21.4 玄德有话说 371
第22回 多线程是干什么的? 372
22.1 多线程的简要介绍 372
22.1.1 线程与进程的区别 373
22.1.2 多线程的利弊 373
22.2 线程间通信与消息机制 373
22.2.1 Message类 374
22.2.2 MessageQueue类 374
22.2.3 Looper类 374
22.2.4 Handler类 375
22.3 AsyncTask 376
22.4 Android多线程的实例 377
22.4.1 多线程实例 377
22.4.2 AsyncTask实例 380
22.5 玄德有话说 382
第23回 弄懂位置与地图,从此不再路痴 383
23.1 位置与地图简介 383
23.2 位置服务 384
23.2.1 LocationManager 384
23.2.2 LocationProvider 385
23.2.3 LocationListener 386
23.2.4 Location 386
23.2.5 Criteria 387
23.2.6 Geocoder 388
23.2.7 位置服务实例 388
23.3 地图服务 391
23.3.1 地图开发环境搭建 391
23.3.2 MapView 393
23.3.3 MapActivity 394
23.3.4 MapController 394
23.3.5 BMapManager 395
23.3.6 Overlay 395
23.3.7 GeoPoint 396
23.3.8 地图服务实例 396
23.4 玄德有话说 401
第24回 嗯?现在照相都不用胶卷啦? 402
24.1 使用照相机 402
24.1.1 系统照相机 403
24.1.2 自定义SurfaceView 403
24.2 使用摄像机 407
24.3 玄德有话说 411
第25回 给飞飞打个骚扰电话 412
25.1 常用通信功能简介 412
25.2 电话 412
25.2.1 TelephonyManager 413
25.2.2 PhoneStateListener 414
25.2.3 PhoneNumberUtils 414
25.2.4 电话功能实例 415
25.3 短信 418
25.3.1 SmsManager 418
25.3.2 SmsMessage 419
25.3.3 短信功能实例 420
25.4 邮件 423
25.5 联系人 424
25.5.1 账户 425
25.5.2 联系人介绍 425
25.5.3 联系人实例 427
25.6 玄德有话说 432
第四篇 扩展篇——哈哈,终于等到这一天! 437
第26回 主公,我来考考你 437
26.1 Android开发面试题简介 437
26.2 概念题 438
26.3 界面 440
26.4 四大组件 441
26.5 存储 444
26.6 Android系统 445