《Android开发权威指南》是人民邮电出版社出版的一本书籍。内容上涵盖了用最新的Android版本开发的大部分场景,适合具备一定软体开发经验、想快速进入Android开发领域的程式设计师,具备一些手机开发经验的开发者和Android开发爱好者学习使用。
基本介绍
- 书名:Android开发权威指南
- ISBN:9787115257147
- 页数:582页
- 出版社:人民邮电出版社
- 装帧:平装
- 开本:16
- 丛书名: 移动开发系列丛书
内容简介
《Android开发权威指南》内容上涵盖了用最新的Android版本开发的大部分场景。全书分4个部分,分别从Android基础介绍、环境搭建、SDK介绍,到套用剖析、组件介绍、综合实例演示,以及符合潮流的、最新的移动开发技术,如HTML5、OpenGL ES、NDK编程、Android测试驱动开发等几个方面讲述。从技术实现上,讲解了6大完整综合案例及原始码分析,分别是新浪微部落格户端、蓝牙聊天、全键盘输入法、月球登入(游戏)、贪吃蛇(游戏)、笑脸连连看(游戏)。
《Android开发权威指南》注重对实际动手能力的指导,在遵循技术研发知识体系严密性的同时,在容易产生错误、不易理解的环节上配备了翔实的开发情景截图;并将重要的知识点和开发技巧以“多学一招”、“扩展学习”、“技巧点拨”等的活泼形式呈现给读者。在程式实例的讲解方面,主要将实例安插在Android开发的精髓知识章节,这为读者学习与实践结合提供了很好的指导。
《Android开发权威指南》配套光碟包含开发视频及全部源程式,指导读者快速、无障碍地学通Android实战开发技术。
《Android开发权威指南》适合具备一定软体开发经验、想快速进入Android开发领域的程式设计师,具备一些手机开发经验的开发者和Android开发爱好者学习使用;也适合作为相关培训学校的Android培训教材。
图书目录
第一部分 準备篇
第1章 初识庐山真面目——Android开发简介 2
1.1 Android的基本概念 2
1.1.1 Android简介 2
1.1.2 Android的版本 4
1.1.3 Android的系统构架 5
1.1.4 Android的应用程式框架 6
1.2 JIL Widget介绍 7
1.3 小结 8
第2章 工欲善其事,必先利其器——搭建和使用Android开发环境 9
2.1 开发包及工具的安装 9
2.1.1 开发Android程式都需要些什幺 9
2.1.2 安装JDK和配置Java开发环境 10
2.1.3 Eclipse的安装与汉化 11
2.1.4 安装AndroidSDK 12
2.1.5 安装Eclipse外挂程式ADT 13
2.2 真实体验——编写第一个Android程式(随机绘製圆饼) 15
2.2.1 创建Android工程 15
2.2.2 在模拟器中运行Android程式 17
2.2.3 界面控制项的布局 19
2.2.4 编写代码 20
2.2.5 调试程式 23
2.2.6 在手机上运行和调试程式 28
2.3 迁移Android工程可能发生的错误 29
2.4 不需要写一行代码的开发工具:AppInventor 31
2.4.1 AppInventor简介 31
2.4.2 AppIntentor的下载和安装 31
2.4.3 用拖曳控制项的方式设计界面 33
2.4.4 像拼图一样拼装代码 34
2.5 小结 37
第二部分 基础篇
第3章 千里之行始于足下——Android程式设计基础 40
3.1 Android应用程式框架 40
3.1.1 Android项目的目录结构 40
3.1.2 AndroidManifest.xml档案的结构 42
3.2 Android应用程式中的资源 44
3.3 Android的应用程式组件 44
3.3.1 Activity(Android的窗体) 45
3.3.2 Service(服务) 45
3.3.3 Broadcast Receiver(广播接收器) 45
3.3.4 Content Provider(内容提供者) 46
3.4 Android程式的UI设计 46
3.4.1 手工配置XML布局档案 46
3.4.2 ADT自带的可视化UI设计器 47
3.4.3 使用DroidDraw设计UI布局 47
3.5 小结 48
第4章 我的UI我做主——用户界面开发基础 49
4.1 Activity的使用方法 49
4.1.1 创建Activity 49
4.1.2 配置Activity 50
4.1.3 显示其他的Activity(Intent与Activity) 52
4.2 Activity的生命周期 55
4.3 在不同Activity之间传递数据 60
4.3.1 使用Intent传递数据 60
4.3.2 使用静态变数传递数据 62
4.3.3 使用剪下板传递数据 63
4.3.4 使用全局对象传递数据 65
4.3.5 返回数据到前一个Activity 67
4.4 视图(View) 68
4.4.1 视图简介 68
4.4.2 使用XML布局档案定义视图 69
4.4.3 在代码中控制视图 70
4.5 布局(Layout) 72
4.5.1 框架布局(FrameLayout) 72
4.5.2 线性布局(LinearLayout) 75
4.5.3 相对布局(RelativeLayout) 79
4.5.4 表格布局(TableLayout) 81
4.5.5 绝对布局(AbsoluteLayout) 82
4.5.6 重用XML布局档案 82
4.5.7 最佳化XML布局档案 85
4.5.8 查看apk档案中的布局 86
4.6 小结 87
第5章 良好的学习开端——控制项(Widget)详解 88
5.1 常用XML属性解析 88
5.1.1 android:id属性 88
5.1.2 控制项的宽度(android:layout_width)和高度(android:layout_height) 88
5.1.3 android:layout_margin属性 89
5.1.4 android:padding属性 89
5.1.5 android:layout_weight属性 90
5.1.6 android:layout_gravity和android:gravity属性 90
5.1.7 android:visibility属性 91
5.1.8 android:background属性 91
5.1.9 指定单击事件方法(android:onClick属性) 92
5.1.10 控制项焦点属性(android:focusable和android:focusable-InTouchMode) 92
5.2 TextView(显示文本的控制项) 93
5.2.1 显示富文本(URL、不同大小、字型、颜色的文本) 93
5.2.2 在TextView中显示錶情图像和文字 97
5.2.3 单击连结弹出Activity 100
5.2.4 为指定文本添加背景 103
5.2.5 带框线的TextView 106
5.2.6 设定行间距 110
5.2.7 在未显示完的文本后面加省略号(…) 111
5.2.8 用TextView实现走马灯效果 113
5.2.9 垂直滚动TextView中的文本 114
5.3 EditText(编辑文本的控制项) 115
5.3.1 像QQ一样输入表情图像 115
5.3.2 在EditText中输入特定的字元 117
5.3.3 AutoCompleteText-View(自动完成输入内容的控制项) 118
5.4 按钮和複选框控制项 120
5.4.1 Button(普通按钮控制项) 120
5.4.2 图文混排的按钮 122
5.4.3 ImageButton(图像按钮控制项) 124
5.4.4 RadioButton(选项按钮控制项) 124
5.4.5 ToggleButton(开关状态按钮控制项) 125
5.4.6 CheckBox(複选框控制项) 126
5.5 ImageView(显示图像的控制项) 128
5.5.1 ImageView控制项的基本用法 128
5.5.2 显示指定区域的图像 129
5.5.3 缩放和旋转图像 132
5.6 时间与日期控制项 133
5.6.1 DatePicker(输入日期的控制项) 133
5.6.2 TimePicker(输入时间的控制项) 134
5.6.3 DatePicker、TimePicker与TextView同步显示日期和时间 134
5.6.4 AnalogClock和DigitalClock(显示时钟的控制项) 136
5.7 进度条控制项 137
5.7.1 ProgressBar(进度条控制项) 137
5.7.2 SeekBar(拖动条控制项) 139
5.7.3 设定ProgressBar和SeekBar的颜色及背景图 140
5.7.4 RatingBar(评分控制项) 143
5.8 列表控制项 145
5.8.1 ListView(普通列表控制项) 145
5.8.2 为ListView列表项添加複选框和选项按钮 147
5.8.3 对列表项进行增、删、改操作 149
5.8.4 改变列表项的背景色 153
5.8.5 ListActivity(封装ListView的Activity) 154
5.8.6 ExpandableListView(可扩展的列表控制项) 155
5.8.7 Spinner(下拉列表控制项) 157
5.9 滚动控制项 160
5.9.1 ScrollView(垂直滚动控制项) 160
5.9.2 HorizontalScrollView(水平滚动控制项) 161
5.9.3 可垂直和水平滚动的视图 162
5.9.4 Gallery(画廊控制项) 163
5.10 ImageSwitcher(图像切换控制项) 164
5.11 GridView(格线控制项) 166
5.12 TabHost(标籤控制项) 168
5.13 ViewStub(惰性装载控制项) 169
5.14 小结 171
第6章 友好的选单——Menu介绍与实例 172
6.1 选单的基本用法 172
6.1.1 创建选项选单(Options Menu) 172
6.1.2 带图像的选项选单 173
6.1.3 关联Activity 173
6.1.4 回响选单的单击动作 174
6.1.5 动态添加、修改和删除选项选单 175
6.1.6 带複选框和选项按钮的子选单 176
6.1.7 上下文选单 178
6.1.8 选单事件 179
6.1.9 从选单资源中装载选单 180
6.2 选单特效 181
6.2.1 自定义选单 181
6.2.2 模拟UCWeb效果选单 184
6.2.3 QuickContactBadge与联繫人选单 189
6.3 小结 192
第7章 友好地互动交流——信息提醒(对话框、Toast与Notification) 193
7.1 对话框的基本用法 193
7.1.1 带2个按钮(确认/取消)的对话框 193
7.1.2 带3个按钮(覆盖/忽略/取消)的对话框 195
7.1.3 简单列表对话框 196
7.1.4 单选列表对话框 198
7.1.5 多选列表对话框 199
7.1.6 进度对话框 201
7.1.7 登录对话框 205
7.1.8 使用Activity託管对话框 207
7.2 对话框的高级套用 209
7.2.1 阻止单击按钮关闭对话框 209
7.2.2 改变对话框的显示位置 213
7.2.3 在对话框按钮和内容文本中插入图像 215
7.2.4 改变对话框的透明度 216
7.3 Toast 217
7.3.1 Toast的基本用法 217
7.3.2 永不关闭的Toast 218
7.3.3 用PopupWindow模拟Toast提示信息框 221
7.4 通知(Notification) 221
7.4.1 在状态栏上显示通知信息 222
7.4.2 Notification的清除动作 224
7.4.3 永久存在的Notification 225
7.4.4 自定义Notification 226
7.5 小结 227
第8章 移动的信息仓库——数据存储 228
8.1 读写key-value对:SharedPreferences 228
8.1.1 SharedPreferences的基本用法 228
8.1.2 数据的存储位置和格式 229
8.1.3 存取複杂类型的数据 230
8.1.4 设定数据档案的访问许可权 233
8.1.5 可以保存设定的Activity:PreferenceActivity 234
8.2 档案存储 238
8.2.1 openFileOutput和openFileInput方法 238
8.2.2 读写SD卡中的档案 239
8.2.3 SAX引擎读取XML档案的原理 241
8.2.4 将XML档案转换成Java对象 242
8.2.5 档案压缩(Jar、Zip) 245
8.3 SQLite资料库 249
8.3.1 SQLite资料库管理工具 249
8.3.2 SQLiteOpenHelper类与自动升级资料库 251
8.3.3 数据绑定与SimpleCursorAdapter类 252
8.3.4 操作SD卡上的资料库 255
8.3.5 将资料库与应用程式一起发布 256
8.3.6 记忆体资料库 257
8.4 小结 258
第9章 Android中的视窗——Activity 259
9.1 调用其他程式中的Activity 259
9.1.1 直接拨号 259
9.1.2 将电话号传入拨号程式 259
9.1.3 调用拨号程式 260
9.1.4 浏览网页 261
9.1.5 向E-mail客户端传递E-mail地址 261
9.1.6 传送E-mail 261
9.1.7 查看联繫人 262
9.1.8 显示系统设定界面(设定主界面、Wifi设定界面) 263
9.1.9 启动处理音频的程式 264
9.2 自定义Activity Action 264
9.3 Activity的高级套用 266
9.3.1 ActivityGroup 266
9.3.2 自定义半透明视窗 268
9.3.3 Activity之间切换的动画效果 269
9.4 小结 270
第10章 全局事件——广播(Broadcast) 271
10.1 什幺是广播 271
10.2 接收系统广播 272
10.2.1 简讯拦截 272
10.2.2 用代码注册广播接收器 274
10.2.3 广播接收器的优先权 275
10.2.4 来去电拦截 276
10.2.5 截获萤幕休眠与唤醒 280
10.2.6 开机自动运行 281
10.2.7 显示手机电池的当前电量 282
10.3 传送广播 284
10.4 验证广播接收器是否注册 285
10.5 小结 286
第11章 跨套用数据源——Content Provider 287
11.1 Content Provider的作用 287
11.2 获得系统数据 288
11.2.1 读取联繫人信息 288
11.2.2 查看收到的简讯 290
11.3 自定义Content Provider 291
11.3.1 查询城市信息 291
11.3.2 为Content Provider添加访问许可权 297
11.4 小结 298
第12章 一切为用户服务——Service基础与实例 299
12.1 Service基础 299
12.1.1 Service的生命周期 299
12.1.2 绑定Activity和Service 302
12.1.3 开机启动Service 305
12.1.4 判断Service是否已注册 306
12.1.5 判断Service是否已开始 307
12.2 跨进程访问(AIDL服务) 308
12.2.1 什幺是AIDL服务 308
12.2.2 建立AIDL服务的步骤 308
12.2.3 建立AIDL服务 308
12.2.4 传递複杂数据的AIDL服务 312
12.2.5 AIDL与来去电自动挂断 317
12.3 小结 319
第13章 做好套用桥樑——网路与通信 320
13.1 WebView控制项 320
13.1.1 用WebView控制项浏览网页 320
13.1.2 用WebView控制项装载HTML代码 322
13.2 访问HTTP资源 324
13.2.1 提交HTTP GET和HTTP POST请求 324
13.2.2 HttpURLConnection类 326
13.2.3 上传档案 327
13.3 客户端Socket 330
13.3.1 连线伺服器 331
13.3.2 扫描伺服器打开的连线埠 331
13.3.3 传送和接收数据 333
13.3.4 获得无线路由分配给手机的IP位址 334
13.3.5 设定Socket选项 335
13.4 服务端Socket 339
13.4.1 手机伺服器的实现 339
13.4.2 利用Socket在应用程式之间通信 340
13.5 蓝牙通信 342
13.5.1 蓝牙简介 342
13.5.2 打开和关闭蓝牙设备 343
13.5.3 搜寻蓝牙设备 344
13.5.4 蓝牙数据传输 346
13.6 小结 351
第14章 炫酷你的套用——多媒体开发 352
14.1 音乐 352
14.1.1 播放音乐 352
14.1.2 录音 353
14.2 视频 354
14.2.1 使用VideoView播放视频 354
14.2.2 使用SurfaceView播放视频 355
14.2.3 录製视频 357
14.3 相机 357
14.3.1 调用系统的拍照功能 358
14.3.2 自定义拍照功能 359
14.4 铃声 364
14.5 小结 366
第15章 2D游戏开发 367
15.1 绘製游戏的画布 367
15.1.1 在View上实现动画效果 367
15.1.2 在SurfaceView上实现动画效果 371
15.2 图形绘製基础 374
15.2.1 绘製像素点 374
15.2.2 绘製直线 374
15.2.3 绘製圆形 375
15.2.4 绘製弧 375
15.2.5 绘製文本 376
15.2.6 综合绘製各种图形 376
15.3 高级图像处理技术 380
15.3.1 绘製点阵图 380
15.3.2 图像的透明度 382
15.3.3 旋转图像 383
15.3.4 路径 384
15.3.5 Shader的渲染效果 388
15.4 帧(Frame)动画 392
15.4.1 AnimationDrawable与帧动画 392
15.4.2 播放Gif动画 394
15.5 补间(Tween)动画 397
15.5.1 移动补间动画 397
15.5.2 缩放补间动画 399
15.5.3 旋转补间动画 402
15.5.4 透明度补间动画 403
15.6 小结 404
第16章 有趣的Android套用 405
16.1 感测器 405
16.1.1 如何使用感测器 405
16.1.2 加速度感测器(Accelerometer) 409
16.1.3 重力感测器(Gravity) 409
16.1.4 光线感测器(Light) 410
16.1.5 陀螺仪感测器(Gyroscope) 411
16.1.6 方向感测器(Orientation) 411
16.1.7 其他感测器 412
16.2 输入输出技术 413
16.2.1 语音识别 413
16.2.2 手势输入 415
16.2.3 语音朗读(TTS) 417
16.3 Google地图 419
16.4 GPS定位 423
16.5 桌面上的小东西 425
16.5.1 视窗小部件(AppWidget) 425
16.5.2 捷径 431
16.5.3 实时资料夹 433
16.6 套用更华丽——动态壁纸 435
16.7 小结 441
第三部分 高级篇
第17章 HTML5与移动Web开发 444
17.1 HTML5简介 444
17.2 HTML5精彩效果演示 445
17.3 HTML5在Android中的套用 447
17.4 HTML5的画布(Canvas) 448
17.4.1 Canvas概述 448
17.4.2 检测浏览器是否支持Canvas 449
17.4.3 在Web页面中使用Canvas 450
17.4.4 使用路径(Path) 452
17.4.5 设定线条风格 453
17.4.6 设定填充类型 453
17.4.7 填充矩形区域 454
17.4.8 使用渐变色(Gradient) 454
17.4.9 拉伸画布对象 455
17.4.10 在Canvas上绘製文本 456
17.4.11 使用阴影 457
17.5 调试JavaScript 458
17.6 小结 459
第18章 输入法开发 460
18.1 Android输入法简介 460
18.2 控制输入法 461
18.3 输入法实战 462
18.3.1 实现输入法的步骤 463
18.3.2 编写输入法程式 463
18.3.3 输入法服务的生命周期 466
18.3.4 预输入文本 467
18.3.5 输入法设定 467
18.4 小结 468
第19章 Android OpenGL ES开发基础 469
19.1 OpenGL简介 469
19.2 什幺是OpenGL ES 469
19.3 多边形 470
19.4 颜色 474
19.5 旋转三角形 475
19.6 旋转立方体 477
19.7 小结 478
第20章 OpenGL ES的超酷效果 479
20.1 保持平衡的旋转文本 479
20.2 左右摇摆的Android机器人 482
20.3 纠缠在一起的旋转立方体 485
20.4 透明背景的旋转立方体 486
20.5 触摸旋转的立方体 487
20.6 2D和3D的综合旋转效果 489
20.7 旋转立体天空 491
20.8 小结 493
第21章 Android NDK编程 494
21.1 Android NDK简介 494
21.2 安装、配置和测试NDK开发环境 495
21.2.1 系统和软体要求 495
21.2.2 下载和安装Android NDK 495
21.2.3 下载和安装Cygwin 495
21.2.4 配置Android NDK的开发环境 498
21.3 第一个NDK程式:世界你好 499
21.3.1 编写和调用NDK程式 499
21.3.2 用命令行方式编译NDK程式 501
21.3.3 在Eclipse中集成Android NDK 502
21.4 背景不断变化的三角形(NDK 版OpenGL ES) 504
21.5 使用NDK OpenGL ES API实现千变万化的3D效果 507
21.6 使用NDK调用音频API 510
21.7 本地Activity(Native Activity) 511
21.8 Android NDK配置档案详解 513
21.8.1 Android NDK定义的变数 513
21.8.2 Android NDK定义的函式 514
21.8.3 描述模组的变数 515
21.8.4 配置Application mk档案 516
21.9 小结 516
第22章 测试驱动开发(TDD) 517
22.1 JUnit测试框架 517
22.2 测试Activity 517
22.3 测试Content Provider 521
22.4 测试Service 523
22.5 测试普通类 523
22.6 小结 525
第四部分 综合实例篇
第23章 Android综合案例一——蓝牙聊天 528
23.1 蓝牙聊天主界面 528
23.2 添加选项选单 530
23.3 搜寻和连线蓝牙设备 530
23.4 使设备可被其他蓝牙设备发现 533
23.5 传送和接收聊天信息 533
23.6 小结 537
第24章 Android综合案例二——月球登入(游戏) 538
24.1 游戏的玩法 538
24.2 实现游戏界面 539
24.3 设定游戏难度 540
24.4 开始游戏 541
24.5 控制飞船喷火 544
24.6 控制飞船改变飞行方向 544
24.7 判断飞船是否成功着陆 545
24.8 小结 546
第25章 Android综合案例三——全键盘输入法(套用) 547
25.1 安装输入法 547
25.2 输入法的初始化工作 548
25.3 回响键盘操作 549
25.4 根据EditText控制项的属性显示不同的软键盘 551
25.5 小结 553
第26章 Android综合案例四——贪吃蛇(游戏) 554
26.1 游戏玩法 554
26.2 游戏主界面设计 555
26.3 控制小蛇的移动 557
26.4 小结 560
第27章 Android综合案例五——新浪微部落格户端(套用) 561
27.1 新浪微博简介 561
27.1.1 新浪微部落格户端 561
27.1.2 新浪微博开放API 563
27.2 使用新浪微博开发API 563
27.3 创建和配置新浪微部落格户端工程 564
27.4 登录新浪微博 564
27.5 功能按钮 567
27.6 显示“我的首页”的微博 569
27.7 评论微博 572
27.8 转发微博 573
27.9 写微博 574
27.10 小结 576
第28章 Android综合案例六——笑脸连连看(游戏) 577
28.1 游戏玩法 577
28.2 準备图像素材 578
28.3 实现主界面 578
28.4 随机生成连连看图像 580
28.5 选中两个相同图像后消失 580
28.6 用定时器限制游戏时间 581
28.7 小结 582