目 录
第1章 Android、移动设备和
Marketplace简介 1
1.1 产品比较 1
1.1.1 .NET Framework 2
1.1.2 Mono 3
1.1.3 Mono for Android 4
1.1.4 开发工具 6
1.2 移动开发 6
1.2.1 解决支持问题 7
1.2.2 设计问题 7
1.3 Android 8
1.3.1 Android发展简史 8
1.3.2 为Android编写基于Web的
应用程序 9
1.3.3 为Android编写本机
应用程序 9
1.3.4 Android开发问题 9
1.3.5 Android SDK工具 11
1.3.6 Android开发成本 11
1.4 跨平台替代方案 12
1.4.1 其他跨平台工具 12
1.4.2 选择跨平台工具时的
注意事项 12
1.5 小结 15
第2章 Mono for Android简介 17
2.1 开始开发前的准备工作 17
2.1.1 Mono的含义 17
2.1.2 Mono for Android的含义 18
2.1.3 使用Mono for Android的
原因 18
2.1.4 在使用Mono for Android
时需要权衡的事项 20
2.1.5 Mono for Android开发
环境需要的其他工具 21
2.2 利用Mono for Android进行
Visual Studio开发 24
2.2.1 一般设置 24
2.2.2 生成Hello Android 25
2.2.3 日志记录 28
2.2.4 调试 29
2.2.5 测试 29
2.2.6 部署 30
2.3 使用MonoDevelop进行Mono
for Android开发 30
2.3.1 一般设置 30
2.3.2 构建Hello Android 31
2.3.3 日志记录 32
2.3.4 调试 33
2.3.5 测试 33
2.3.6 部署 33
2.4 小结 34
第3章 了解Android/Mono for Android
应用程序 35
3.1 Android应用程序的含义 36
3.1.1 Android应用程序的
构建基块 37
3.1.2 组件之间的通信:Android
意图 46
3.2 绑定组件:Android清单 48
3.2.1 Android清单的基础知识 48
3.2.2 通过Visual Studio为Mono for
Android编辑清单 51
3.3 小结 53
第4章 规划和构建应用程序
用户界面 55
4.1 成功构建移动UI的
指导原则 55
4.2 构建Android UI 56
4.2.1 视图 56
4.2.2 设计表面 57
4.3 选择控件布局 57
4.3.1 AbsoluteLayout 58
4.3.2 FrameLayout 59
4.3.3 LinearLayout 59
4.3.4 RelativeLayout 61
4.3.5 TableLayout 62
4.3.6 优化布局 64
4.4 设计自己的用户界面控件 64
4.4.1 TextView 66
4.4.2 EditText 66
4.4.3 AutoCompleteTextView 66
4.4.4 Spinner 67
4.4.5 Button 69
4.4.6 CheckBox 69
4.4.7 RadioButton和组 69
4.4.8 Clock 72
4.4.9 Picker 72
4.4.10 Image 75
4.4.11 虚拟键盘 80
4.5 控制菜单 82
4.5.1 菜单系统介绍 83
4.5.2 菜单 83
4.5.3 子菜单 85
4.5.4 上下文菜单 86
4.5.5 将菜单定义为资源 87
4.6 独立于分辨率的UI 90
4.6.1 支持各种屏幕资源 90
4.6.2 使用Android Market支持 92
4.6.3 多个屏幕分辨率的
最佳做法 92
4.7 构建用户界面:手机和
平板电脑示例 93
4.8 小结 98
第5章 使用数据 99
5.1 使用SQLite 99
5.1.1 建立数据库 100
5.1.2 建立表 101
5.1.3 使用SQL语句 102
5.2 升级策略 104
5.2.1 就地升级 104
5.2.2 复制数据 105
5.3 特定于Android的
数据库选项 105
5.4 使用远程数据 107
5.4.1 访问企业服务 108
5.4.2 使用SOAP 109
5.4.3 使用基于REST的Web
服务 113
5.4.4 使用JSON 114
5.4.5 利用POST发送数据 118
5.5 使用LINQ和XML检索
数据 119
5.6 以负责任的态度使用Web
服务 121
5.7 使用远程SQL Server数据库 122
5.8 小结 124
第6章 将数据绑定到控件 125
6.1 Mono for Android中的
数据绑定 126
6.1.1 数据适配器的含义 126
6.1.2 适配器视图的含义 127
6.1.3 这三项彼此之间的
关联方式 127
6.1.4 使用适配器视图和大型
数据集 128
6.1.5 进一步探究适配器 130
6.1.6 使用本机适配器 130
6.1.7 进一步探究适配器视图 131
6.1.8 使用本机适配器视图 132
6.2 使用光标 132
6.2.1 使用光标填充Spinner 132
6.2.2 使用带有Gallery的光标 140
6.3 使用列表 147
6.3.1 在列表中显示简单数据 148
6.3.2 使用Android的
ListAdapter 150
6.3.3 使用自定义列表适配器来
自定义ListView 152
6.3.4 处理ListView事件 158
6.3.5 首选项屏幕 160
6.3.6 嵌套导航 163
6.3.7 分组列表 165
6.3.8 在网格中显示数据 169
6.4 小结 174
第7章 使用文件系统和应用程序
首选项 175
7.1 使用文件系统 175
7.1.1 文件系统类型和结构 176
7.1.2 QuickEdit示例程序:
使用文件存储的例子 180
7.2 使用应用程序首选项 186
7.2.1 应用程序首选项类型 186
7.2.2 创建自己的应用程序
首选项 187
7.2.3 首选项程序 188
7.2.4 侦听首选项的更改 194
7.2.5 处理XML 195
7.3 小结 196
第8章 针对设备硬件编程 197
8.1 使用传感器 197
8.1.1 引用传感器管理器 198
8.1.2 传感器支持 198
8.1.3 访问传感器 198
8.1.4 使用传感器 199
8.1.5 了解传感器类型值 200
8.2 对加速度的响应 202
8.2.1 使用XYZ坐标系 202
8.2.2 对加速计进行编码 203
8.3 构建电子罗盘 203
8.4 振动 208
8.5 网络连接 209
8.5.1 ConnectivityManager 209
8.5.2 检查用户通信首选项 209
8.5.3 检查BackgroundDataSetting
的更改 210
8.5.4 检查当前网络配置 211
8.5.5 创建网络连接通知 211
8.5.6 WifiManager 211
8.6 Bluetooth管理器 216
8.7 在应用程序中启用
语音识别功能 218
8.8 获取建议路线规划指示 219
8.9 小结 225
第9章 使用多媒体——音频、
视频和照相机 227
9.1 Android媒体类 227
9.2 播放音频和视频 229
9.2.1 媒体播放器支持的格式 229
9.2.2 音频播放编程 230
9.2.3 视频播放编程 233
9.2.4 控制播放 237
9.2.5 管理播放输出 237
9.3 录制音频和视频 237
9.3.1 使用意图来录制视频 238
9.3.2 使用媒体记录器 241
9.4 图像和使用照相机 244
9.4.1 使用意图拍照 244
9.4.2 控制照相机 247
9.4.3 管理照相机设置和
图片选项 247
9.5 向媒体存储器添加新媒体 253
9.5.1 使用媒体扫描程序 254
9.5.2 向存储器添加新媒体 255
9.6 语音识别 255
9.7 小结 257
第10章 与其他应用程序和库通信 259
10.1 Android应用程序集成 259
10.1.1 打开浏览器 259
10.1.2 打开电子邮件 262
10.1.3 打电话 263
10.1.4 发送Text/SMS消息 264
10.1.5 在Maps应用程序中
打开位置 266
10.1.6 打开YouTube视频 267
10.1.7 开放市场 267
10.2 应用程序集成 268
10.2.1 与HootSuite以及其他
Twitter应用程序的简单
集成 268
10.2.2 配置意图过滤器 269
10.2.3 处理传入的意图请求 270
10.3 与联系人进行集成 270
10.3.1 显示联系人详细信息 273
10.3.2 选择联系人 274
10.3.3 创建新联系人 275
10.3.4 创建新联系人或者添加到
现有的联系人 276
10.4 小结 277
第11章 开发后台服务和异步代码 279
11.1 服务生命周期 280
11.1.1 创建第一个服务 280
11.1.2 服务的优先级排序 283
11.2 使用线程进行异步处理 284
11.2.1 手动线程 284
11.2.2 利用System.Threading.
Tasks 286
11.2.3 带有IntentService的隐式
线程 288
11.3 与UI进行通信 289
11.3.1 使用Binder和服务
连接方法 289
11.3.2 使用广播接收器方法 292
11.3.3 使用静态事件方法 295
11.4 通知用户 298
11.4.1 通过警报和IntentService
来调度意图 300
11.4.2 使用C2DM来推送消息 301
11.5 小结 310
第12章 画布和绘制资源类型:构建
自定义Android图形 311
12.1 在Mono for Android中
使用图形 312
12.2 使用Canvas对象 313
12.2.1 图形基元 314
12.2.2 Canvas对象 315
12.2.3 Paint对象 316
12.2.4 Bitmap对象 317
12.2.5 组合在一起 317
12.2.6 选择最佳方法 337
12.3 2D图形库 338
12.4 使用绘制资源类型 339
12.4.1 作为XML资源的绘制
资源类型 339
12.4.2 简单和复合的绘制
资源类型 340
12.4.3 绘制资源类型的
实际应用 340
12.5 小结 354
第13章 使用位置信息 357
13.1 理解位置的基本知识 358
13.1.1 确定位置 358
13.1.2 基于位置的数据中断 359
13.1.3 使用基于位置的服务 359
13.1.4 在模拟器上配置基于
位置的应用程序 359
13.2 选择一个位置提供程序 361
13.2.1 确定哪些提供程序可供
使用 361
13.2.2 根据标准查找位置
提供程序 361
13.3 地理编码 363
13.3.1 前向地理编码 363
13.3.2 反向地图编码 365
13.4 构建接近警报 366
13.5 使用Google Maps 368
13.5.1 获取开发/调试MD5
指纹 369
13.5.2 获取生产/发布MD5
指纹 369
13.5.3 创建基于地图的活动 369
13.5.4 在布局文件中创建地图 371
13.5.5 使用覆盖的MapView
控制器 372
13.6 小结 374
第14章 国际化和本地化 375
14.1 选择本地化策略 376
14.2 更新语言和区域设置 378
14.3 了解Android本地化机制 379
14.3.1 设置默认资源 380
14.3.2 添加本地化支持 380
14.3.3 选择资源的详细过程 381
14.4 支持多语言 382
14.4.1 利用Strings.xml文件 382
14.4.2 翻译文本 383
14.4.3 翻译控件文本 386
14.5 本地化其他资源 387
14.6 Strings.xml的高级用法 391
14.6.1 字符串数组 391
14.6.2 复数 391
14.6.3 字符串替换 392
14.7 使用格式转换 394
14.7.1 格式化日期 395
14.7.2 格式化数字和货币 395
14.8 小结 396
第15章 在Mono for Android、
MonoTouch和Windows
Phone7之间共享代码 397
15.1 三大平台概述 397
15.1.1 Mono for Android 397
15.1.2 MonoTouch 398
15.1.3 Windows Phone 7 399
15.2 使用类库来分离代码 400
15.2.1 使用预处理器指令 400
15.2.2 Mono for Android 401
15.2.3 Windows Phone 7 402
15.2.4 MonoTouch 402
15.3 每种平台上可用的程序集 402
15.4 一个通用的类库 405
15.4.1 Mono for Android 407
15.4.2 MonoTouch 408
15.4.3 Windows Phone 7 409
15.5 汇总:创建一个跨平台
应用程序 410
15.6 小结 422
第16章 准备并向Market
发布应用程序 423
16.1 准备应用程序 424
16.1.1 测试应用程序 424
16.1.2 找到关键的测试区域 425
16.1.3 用于测试的工具 426
16.1.4 与同事和用户一起
进行测试 433
16.2 向Android Market发布
应用程序 434
16.2.1 对应用程序进行
版本控制 434
16.2.2 创建最终版本 435
16.2.3 为应用程序签名 437
16.2.4 上传到Android Market 441
16.3 小结 442
第17章 Android平板电脑 445
17.1 分析Android平板
电脑市场 445
17.2 设计平板电脑UI 446
17.3 使用操作栏 447
17.3.1 删除操作栏 448
17.3.2 向操作栏添加项目 449
17.3.3 使用应用程序图标 452
17.3.4 向堆栈上方导航 453
17.3.5 添加并使用操作项 453
17.3.6 创建选项卡式界面 454
17.4 使用片段控制部分屏幕 455
17.4.1 创建片段 457
17.4.2 更多片段 461
17.5 小结 469
附录A 针对开发人员的一些提示
以及Mono for Android的
未来前景 471
· · · · · · (
收起)