第1章 Android基础入门 1
1.1 在Eclipse中安装Android SDK和ADT 1
1.1.1 下载和安装JDK 1
1.1.2 下载和安装Eclipse IDE 2
1.1.3 下载和安装Android SDK 4
1.1.4 安装ADT(Android Development Tools) 5
1.2 Android应用程序架构 7
1.2.1 创建第一个Android项目 7
1.2.2 AndroidManifest文件 10
1.2.3 资源文件夹 11
1.2.4 R.java 12
1.2.5 程序的实现原理 13
1.2.6 Activity生命周期 14
1.3 Android基本控件 18
1.3.1 按钮Button 18
1.3.2 文本框TextView和编辑框EditView 21
1.3.3 选项RadioGroup和Spinner 24
1.3.4 开关CheckBox和ToggleButton 29
1.4 Android布局文件 30
1.4.1 绝对布局AbsoluteLayout 31
1.4.2 相对布局RelativeLayout 32
1.4.3 线性布局LinearLayout 35
1.4.4 卡片布局FrameLayout 37
1.4.5 表格布局TableLayout 37
1.5 页面跳转以及数据在Activity之间的传递 39
1.5.1 桥梁Intent和容器Bundle 39
1.5.2 数据的返回——重写onActivityResult 40
1.6 小试牛刀——模拟用户注册程序 41
1.6.1 输入界面的实现 41
1.6.2 注册结果界面的实现 48
1.7 总结 51
第2章 “天天向上”——桌面小插件与数据库存储的学习 54
2.1 项目简介 54
2.2 数据显示ListView 56
2.2.1 配置ListView布局 57
2.2.2 ListViiew数据的初始化 58
2.2.3 Listview数据的更新 62
2.3 数据储存SQLiteDatabase 63
2.3.1 创建数据库和表 63
2.3.2 数据库增删改查 64
2.4 对话框 65
2.4.1 对话框使用 65
2.4.2 对话框大全 66
2.5 通知提醒NotificationManager与Service 70
2.5.1 后台服务Service 71
2.5.2 Intent兄弟之PendingIntent 72
2.5.3 创建通知 73
2.6 桌面小插件APPwidgetProvider 76
2.6.1 配置appwidget-provider和布局 76
2.6.2 继承AppWidgetProvider和添加receiver 76
2.6.3 数据定时更新与事件响应 78
2.7 功能实现 79
2.7.1 数据库设计 79
2.7.2 设置时间的实现 82
2.7.3 显示课表的实现 94
2.7.4 设置上课信息的实现 103
2.7.5 桌面小插件的实现 110
2.7.6 定时通知的实现 120
2.8 应用打包和发布 125
2.8.1 打包 126
2.8.2 发布 126
2.9 总结 128
第3章 “NotePad”——界面运用与数据处理 129
3.1 项目简介 129
3.2 三个常用控件 130
3.2.1 上下文菜单ContextMenu 130
3.2.2 选项菜单OptionMenu 132
3.2.3 进度条ProgressDialog 135
3.3 Theme与Style 136
3.3.1 用Theme改变窗体样式 136
3.3.2 用Style改变控件或Layout样式 141
3.4 两个Adapter数据适配器 142
3.4.1 BaseAdapter与列表ListView 143
3.4.2 CursorAdapter与搜索AutoCompleteTextView 146
3.5 App参数设置与存储 149
3.5.1 界面实现与PreferenceActivity 149
3.5.2 配置数据存储与SharedPreferences 158
3.6 NotePad功能实现 160
3.6.1 数据库建立及相关设计 160
3.6.2 数据适配器及相关设计 168
3.6.3 界面设计 172
3.6.4 界面实现 182
3.6.5 功能实现 192
3.6.6 桌面小插件 210
3.7 应用打包与发布 212
3.7.1 应用打包 212
3.7.2 应用发布 212
3.8 总结 214
第4章 “SpinLock”——画图与替代解锁界面的尝试 215
4.1 项目简介 215
4.2 画图专用SurfaceView 217
4.2.1 重写SurfaceView三要点 217
4.2.2 事件响应 218
4.2.3 在画布上画图 218
4.2.4 位置坐标的计算 219
4.3 屏蔽原有的解锁画面 220
4.3.1 SystemService的使用 220
4.3.2 在配置文件中添加Permission 221
4.4 监听屏幕关闭事件 225
4.4.1 广播接受者BroadcastReceiver 226
4.4.2 注册我感兴趣的广播接收器 226
4.5 功能实现 227
4.5.1 设置界面 227
4.5.2 后台服务 228
4.5.3 主程序 229
4.5.4 解锁画面的实现 230
4.5.5 手机震动的实现 249
4.6 扩展学习——代码优化 250
4.7 应用打包和发布 262
4.7.1 打包应用 262
4.7.2 发布应用 262
4.8 总结 265
第5章 “BlueControl”——蓝牙通信与感应器服务 266
5.1 项目简介 266
5.2 蓝牙服务 268
5.2.1 准备工作 269
5.2.2 打开蓝牙和搜索蓝牙 271
5.2.3 建立连接和传输数据 272
5.3 手势识别 278
5.3.1 准备工作 278
5.3.2 gesture的使用 281
5.4 传感器 284
5.4.1 感应器的使用 284
5.4.2 传感器的种类 285
5.5 功能实现 289
5.5.1 搜索蓝牙的实现 289
5.5.2 手机端主界面的实现 291
5.5.3 赛车游戏手柄功能的实现(一) 297
5.5.4 赛车游戏手柄功能的实现(二) 301
5.5.5 水果忍者游戏板的实现 305
5.5.6 空间鼠标的实现 307
5.5.7 电脑端的实现 310
5.6 应用打包与发布 317
5.6.1 打包应用 317
5.6.2 发布应用 317
5.7 总结 319
第6章 “快速启动”—动态小浮窗 320
6.1 项目简介 320
6.2 窗口管理者——WindowManager 324
6.2.1 让view自己管理自己 324
6.2.2 参数配置——Type 325
6.2.3 参数配置——Flag 327
6.2.4 参数设置——位置 329
6.3 动态绘图——Surfaceview和Handler 329
6.3.1 surfaceCreated与surfaceDestroyed之间 330
6.3.2 图像的变换操作——Matrix 330
6.3.3 Handler的使用 331
6.4 九宫格——GridView 332
6.4.1 在布局文件中配置参数 333
6.4.2 继承BaseAdapter来显示图片 334
6.4.3 与其他组建的交互——sendBroadcast 335
6.5 功能实现 336
6.5.1 主程序 336
6.5.2 浮窗的实现 336
6.5.3 设置界面的实现 348
6.6 扩展学习 358
6.6.1 具体设计 358
6.6.2 图标窗体的实现 360
6.6.3 设置界面的实现 366
6.7 应用打包和发布 372
6.7.1 应用打包 372
6.7.2 应用发布 372
6.8 总结 373
第7章 “手机终端”——手机自动服务和语音控制 375
7.1 项目简介 375
7.2 手机通信自动服务 377
7.2.1 发送短信和拨打电话——URI 377
7.2.2 接收短信和接收电话 381
7.2.3 查找和添加联系人 383
7.3 手机附加功能自动服务 384
7.3.1 获取应用及打开 384
7.3.2 设置闹钟 385
7.3.3 飞行模式和音量控制 387
7.3.4 蓝牙和Wi-Fi的开关 388
7.4 语音输入和输出 389
7.4.1 语音识别 389
7.4.2 语音输出 392
7.5 功能实现 392
7.5.1 输入效果的实现——SPhone(一) 393
7.5.2 输出效果的实现——SPhone(二) 401
7.5.3 解析器的实现——Compiler 406
7.5.4 联系人和应用管理——SearchManager 422
7.5.5 语音输入与解析器中间层——SpeakConnect 425
7.6 应用打包与发布 428
7.6.1 应用打包 428
7.6.2 应用发布 428
7.7 总结 430
第8章 “Let's race”——网络通信与地图服务 431
8.1 项目简介 431
8.2 控件ImageSwitcher与Gallery 432
8.2.1 ImageSwitcher 432
8.2.2 Animation 433
8.2.3 Gallery 437
8.3 自定义对话框 440
8.3.1 对话框的实现 440
8.3.2 各式各样的对话框 443
8.4 网络编程 445
8.4.1 字符传输 446
8.4.2 图片传输 448
8.5 地图服务 450
8.5.1 准备工作 450
8.5.2 创建一个地图视图 451
8.5.3 位置更新 455
8.5.4 绘图与规划路径 456
8.6 功能实现 458
8.6.1 通信部分 459
8.6.2 客户端登录界面 470
8.6.3 客户端注册界面 476
8.6.4 客户端选择地图界面 488
8.6.5 客户端开始界面 496
8.6.6 倒计时对话框的实现 507
8.7 应用打包与发布 509
8.7.1 应用打包 509
8.7.2 应用发布 509
8.8 总结 510