第1章 Android入门秘籍 1
1.作为开发者的Android入门 1
什么是Android 1
Android的历史 1
Android Market 2
Android产品的推广 3
什么是Open Embedded Software Foundation(OESF) 3
应用程序介绍 4
2.SDK的版本 7
各版本的内容 7
各版本的占有率 11
第2章 初级应用程序秘籍 16
3.应用程序开发环境的搭建 16
安装Android SDK 17
安装Eclipse 18
下载SDK组件 18
安装ADT 19
设置Eclipse 20
创建Android工程 20
4.模拟器入门 21
创建AVD 22
启动模拟器 24
操作模拟器 26
5.模拟器秘籍 26
加载SD卡到模拟器 26
了解模拟器的网络配置 27
设置模拟器的DNS 28
设置模拟器的代理服务器 28
使用模拟器控制台 29
重定向宿主机器的指定端口到模拟器 29
设置位置信息 30
发送任何硬件事件 30
从宿主机器直接输入字符 31
控制模拟器的电源状态 31
确认网络状态 31
模拟网络延迟 31
设置网络的速度 32
模拟电话的各种状态 32
从模拟器控制台发送短消息 34
改变模拟器的大小 34
改变模拟器的皮肤 35
在两个模拟器之间进行通信 35
在两个模拟器之间打电话和收发短消息 35
从模拟器A向模拟器B打电话 36
总结 36
6.Activity入门 36
什么是Activity 36
Activity的生命周期 40
启动其他的Activity 43
状态的保存、还原 47
总结 51
7.Activity秘籍 51
使用adb命令启动Activity 51
动态切换Activity的有效/无效 51
8.Intent入门 55
什么是Intent 55
Intent过滤器 58
秘籍中的秘籍 60
9.使用按钮 62
在XML中定义按钮 62
定义按下按钮时的动作 64
在布局文件中定义按钮按下时的方法 65
秘籍中的秘籍 66
10.使用对话框 67
使用AlertDialog类 67
使用Dialog类 71
改善使用Eclipse的预览结果 74
使用DatePickerDialog类输入日期 74
使用TimePickerDialog类输入时间 75
使用ProgressDialog类 76
总结 79
11.保存设置值 79
什么可以保存 79
获取设置值 80
删除设置值 80
12.使用保存的设置值 81
查看保存的xml文件 81
修改Preference的获取方法 82
查看、修改其他程序的设置值 82
1 3.简单地制作设置界面 84
Preference的类型 84
制作设置界面 87
秘籍中的秘籍 89
14.使用地图 92
获取Maps API密钥 92
创建工程 94
在XML中描述并使用MapView 95
从源代码新建并使用MapView 97
秘籍中的秘籍 98
总结 104
15.使用Alarm 104
设置Alarm 105
Alarm的类型 107
秘籍中的秘籍 108
16.使用动画 109
Tweened Animation的具体例子 109
Frame-By-Frame Animation的具体例子 110
动画的实现方法 110
总结 119
17.播放多媒体 119
可播放的多媒体类型 119
实现视频播放 120
实现音频播放 122
秘籍中的秘籍 127
18.执行异步处理 129
代码 130
执行秘籍 134
19.使用进度条 135
进度条显示的基本知识 135
通过ProgressBar显示进度 137
在标题栏中显示进度条 138
秘籍中的秘籍 139
20.使用语音朗读功能 143
秘籍中的秘籍 144
21.使用手势输入 148
用文本显示手势事件 149
总结 152
总结 156
第3章 实践应用程序秘籍 157
22.制作自定义按钮 157
尝试更改按钮的背景 157
使用draw9patch 158
使用selector 160
秘籍中的秘籍 162
23.制作自定义视图 163
加工LinearLayout 163
在XML布局文件中使用自定义视图 164
秘籍中的秘籍 166
24.使视图可以拖动 169
扩展TextView使其可以拖动 169
秘籍中的秘籍 170
25.使用OpenGL 171
OpenGL概述 171
OpenGL术语表 172
OpenGL ES编程(准备篇) 172
OpenGL ES编程(绘制篇) 175
26.使用服务 182
创建服务 183
调用服务 184
连接服务 185
秘籍中的秘籍 188
27.获取位置信息 191
什么是位置信息 191
获取位置信息的方法 192
在模拟器上测试 195
执行基于位置信息变化的处理 195
28.活用位置信息 199
位置信息更新时调用广播接收器 200
进入指定区域时发送通知 203
29.使用传感器 204
代码 205
执行秘籍 209
30.使用相机 209
从相机获取信息 209
执行秘籍 211
秘籍中的秘籍 212
保存预览的图像 216
31.使用SQLite 222
SQLite的命令一览 227
32.使用内容提供者 228
加载多媒体信息 228
33.制作内容提供者 233
代码 234
秘籍中的秘籍 238
总结 239
34.制作软键盘 239
Input Method Framework的概述 240
安装并执行IME 249
增加用户词典的注册件数 252
显示小键盘 252
使预测输入区变为1行 254
从软键盘打开设置界面 255
总结 258
35.支持快速搜索 258
代码 259
总结 266
36.使用蓝牙 266
蓝牙概述 267
使蓝牙有效 267
查找远程设备 269
获取配对成功的设备的信息 270
连接远程设备 274
接收来自远程设备的连接 286
总结 291
37.制作动态壁纸 291
制作动态壁纸 292
设置动态壁纸 293
使用<uses-feature> 294
动态壁纸的实现 295
添加设置界面 298
秘籍中的秘籍 301
38.在外部存储器(SD卡)中安装应用程序 304
指定安装位置 305
实现的例子 305
不支持在外部存储器中安装的应用程序 307
推荐安装到外部存储器的应用程序 308
结语 308
39.优化应用程序 308
包的结构 308
字节码“DEX” 309
代码的优化 309
优化Java字节码 312
测定ProGuard的效果 314
使用layoutopt优化资源 315
测定优化的效果 315
主要消息的意思 320
40.不使用Eclipse执行构建 321
通过命令行使用Android SDK工具执行构建 321
4 1.注册到Android Market 324
确认AndroidManifest.xml的必要项目 324
输出APK文件 325
第4章 原生代码秘籍 331
42.搭建Android NDK的环境(Windows) 331
Cygwin的下载及安装 332
Android NDK的下载及安装 333
示例库hello-jni的构建 334
将hello-jni工程导入至Eclipse执行构建 334
库的重建 335
秘籍中的秘籍 336
43.Android NDK的环境搭建(Linux) 337
Android NDK的下载及安装 338
44.NDK的环境搭建(Mac OS X) 339
Xcode的下载及安装 339
Android NDK的下载及安装 340
45.了解Android NDK的目录结构 340
Android NDK的目录结构 341
秘籍中的秘籍 342
总结 345
46.bionic入门 345
bionic的限制事项 345
目录结构 345
总结 350
47.在应用程序中使用JNI 350
在NDK中使用JNI 350
制作定义了JNI方法的应用程序 351
实现JNI库 353
编写本机代码 355
构建JNI库 355
执行应用程序 356
秘籍中的秘籍 356
48.移植并使用已经存在的库 360
移植前应该考虑的事项 360
创建Android.mk 361
使从Java调用变为可能 362
总结 363
第5章 定制化秘籍 364
49.源代码编译环境的搭建(Linux) 364
安装Ubuntu Linux 365
安装必要的工具 366
安装Repo 367
Repo的初始化 368
获取源代码 369
执行编译、构建 369
对运行状况进行确认 369
秘籍中的秘籍 370
50.源代码编译环境的搭建(Mac OS X) 371
准备 371
安装Git 372
安装Repo 372
文件系统的问题 372
下载源代码 373
Snow Leopard的设置 374
使用终端进行构建 375
使用Eclipse进行构建 376
51.Android源代码入门 377
Git与Repo 377
目录结构 378
52.Android编译命令入门 382
为了使用Android命令而需要的设置 382
讲解Android编译命令 382
其他的便利的Android命令 384
秘籍中的秘籍 386
53.烧录开发机 386
关于Android Dev Phone 1 386
准备、获取源代码 387
不同分支的版本构建时设置方法的差异 388
针对每个分支版本讲解构建方法(使用donut/eclair分支时) 388
针对每个分支版本讲解构建方法(使用cupcake分支时) 389
执行构建 391
写入到Android Dev Phone 1 392
秘籍中的秘籍 394
54.改造标准待机应用程序 396
将3个界面的主屏幕改造为5个界面的主屏幕 396
将待机界面的触摸滚动改造为iPhone风格 397
在每个界面上设置壁纸的改造 399
55.改造框架 403
获取运行中的应用程序缩略图的改造 404
Activity的尺寸的改造 406
资源的改造 412
模拟器启动时“A N D R O I D”字符的改造 413
第6章 调试秘籍 415
56.使用实机调试 415
准备 415
结语 421
57.使用ADB 421
ADB客户端 421
ADB服务器 421
ADB命令 422
显示设备的日志 423
显示设备的Bug报告 426
使用JDWP调试 426
安装应用程序 427
将数据转发到设备 427
将数据从设备复制到主机 427
事先输入的ADB命令,识别到设备的同时执行这个命令 427
管理ADB服务器 428
总结 428
58.查找内存泄漏 428
什么是内存泄漏 429
DalvikVM的内存管理方法 429
Android(DalvikVM)的垃圾回收(GC) 429
跟踪内存泄漏 431
有效的内存使用方法 434
59.使用Traceview 437
生成Trace日志 438
使用Traceview分析日志 439
60.使用Eclipse单步执行框架 441
准备 441
创建支持框架单步执行的Android SDK 441
安装Android SDK 442
框架的单步执行 444