Google Android开发入门指南.pdf

Google Android开发入门指南.pdf
 

书籍描述

编辑推荐
《Google Android开发入门指南(第2版)》全部内容基于Android SDK1.5Windows、MacOS X、Linux平台适用Android开发入门的详细教程,适合Android与J2ME的初学者学习,以编写实例为教学主线,真正助您解决开发中遇到的诸多实际问题。
Android核心开发团队成员程本中、知名Android讲师卢育圣鼎力推荐。
贏在3G,“赢”向用Android开发的无限商机
《Google Android开发入门指南(第2版)》特色
在可预见的将来,基于Android平台的手持设备程序设计,将像今日的PC程序设计一样普及。还不熟悉JaVa语言,但也想快速学会Android应用程序开发?《Google Android开发入门指南(第2版)》为您降低Android开发入门的台阶。
跟随着拥有Android Market单一程序下载量超过20万人次的开发者,用最短的时间循序渐进地学会必要的Android应用程序开发基础知识,然后……开始开发吧!
《Google Android开发入门指南(第2版)》在您学习Android应用程序开发的过程中,处处以实例为导向,于需要处时才对相关概念进行详细的解说。为初学者掌握Android开发提供了一条快速入门的捷径。

目录
第1篇 入门篇

第1章 初探Android 2
1.1 Android是什么 2
1.2 Android简史 3
1.3 从创意开始 5
1.4 参考资料 6

第2章 安装Android开发工具 7
2.1 系统需求 7
2.1.1 操作系统 7
2.1.2 必要开发工具 7
2.1.3 其他开发环境工具(非必要安装) 8
2.2 安装流程 8
2.3 参考资料 12

第3章 打开现有项目 13
3.1 打开项目 13
3.2 删除项目 15
3.3 导入项目 15
3.4 修复项目 18
3.5 修改对应的目标版本 18
3.6 参考资料 19

第4章 操作Android模拟器(Emulator) 20
4.1 设置环境参数 20
4.2 设置Android模拟器 22
4.3 使用命令行工具管理模拟器 23
4.3.1 列出模拟器类型 23
4.3.2 创建模拟器 24
4.3.3 列出已创建的模拟器 24
4.4 使用运行(Run)模式运行 25
4.5 操作Android模拟器 27
4.5.1 切换模拟器布局 27
4.5.2 切换屏幕 27
4.5.3 添加模拟器外观设置 28
4.5.4 删除模拟器外观设置 29
4.5.5 移除程序 29
4.5.6 移除模拟器 30
4.6 参考资料 31

第5章 创建一个Android应用程序 32
5.1 创建新项目 32
5.2 程序项目架构 34
5.2.1 src/:源代码(source)目录 34
5.2.2 gen/:自动生成(Generate)目录 34
5.2.3 res/:资源(Resource)目录 35
5.2.4 Android功能列表 35
5.2.5 “Android<版本号>/”参考函数目录 35
5.3 参考资料 36

第2篇 基础篇

第6章 描述用户界面 38
6.1 身高体重指数(BMI)计算 38
6.2 表达用户界面 38
6.3 参考资源 43

第7章 设计用户界面 44
7.1 视图(View) 44
7.2 查阅文件 45
7.2.1 线上文件 45
7.2.2 脱机文件 46
7.3 开始设计 47
7.4 整合 47
7.5 指定输入类型(InputType) 49
7.6 视觉化的界面开发工具 50
7.7 参考资料 51

第8章 访问标识符号 52
8.1 android:id属性 52
8.2 XML说明文件与R.java资源文件 52
8.3 将字符串抽离XML 54
8.4 新增XML文件 56
8.5 参考资料 57

第9章 解读程序流程 58
9.1 基础程序逻辑结构 58
9.2 参考函数库 61
9.3 参考资料 62

第10章 完成BMI程序 63
10.1 完整的程序 63
10.2 程序解读 66

第3篇 提高篇

第11章 重构程序 68
11.1 什么是重构 68
11.2 重新查看BMI应用程序 68
11.3 MVC模式 69
11.4 重构BMI应用程序 69
11.5 完整的Bmi.java程序 代码 71
11.6 参考资料 73

第12章 添加对话框(Dialog) 74
12.1 设计对话框 74
12.2 定义调用点 75
12.3 实体对话框 75
12.4 重构 76
12.5 添加按钮 77
12.6 Toast界面组件 78
12.7 错误处理 79
12.7.1 讲解 81
12.7.2 提取字符串 82
12.8 参考资料 82

第13章 查看线上内容(Uri) 83
13.1 打开网页 83
13.1.1 讲解 84
13.1.2 使用Uri查看Google地图 87
13.2 再做好一点(重构) 87
13.2.1 提取字符串 87
13.2.2 避免出错 88
13.3 参考资料 88

第14章 添加菜单(Menu) 89
14.1 菜单功能 89
14.2 创建菜单 90
14.2.1 装饰选项 92
14.2.2 使用内置的菜单图标 93
14.3 处理选项动作 95
14.4 参考资料 96

第15章 定义Android列表(Manifest) 97
15.1 Android框架 97
15.2 预设的Activity列表 98
15.3 参考资料 100

第16章 添加新活动(Activity) 101
16.1 Activity的分类 101
16.2 独立的Activity 101
16.3 程序中创建新的Activity类文件 102
16.4 在列表中添加Activity代码 103
16.5 手动添加Activity标签 104
16.6 修改页面标题文字 105
16.7 原Activity类中添加startActivity函数 105

第17章 传送数据到新意图(Intent) 107
17.1 使用Intent传递数据 107
17.2 使用Intent接收信息 109
17.2.1 相关工作 109
17.2.2 在Activity中解开信息 110
17.2.3 讲解 111
17.3 不通过Bundle交换信息 112

第18章 信息提醒(Notification) 113
18.1 状态栏提醒 113
18.2 使用状态栏(Notification Bar)传递信息 113
18.3 使用内置的状态图标 116
18.4 参考资料 117

第19章 日志与调试(Log) 118
19.1 在程序中加上调试信息 118
19.2 导入Log函数 118
19.3 实际应用 119
19.3.1 讲解 120
19.3.2 其他的记录标记方式 120
19.3.3 延伸使用 120
19.4 在调试环境中查看除错信息 120
19.4.1 启动模拟器 120
19.4.2 切换到查错环境配置 120
19.4.3 添加信息日志过滤器(Log Filter) 122
19.5 模拟器上的调试设置 123
19.6 管理日志 124
19.7 在实机上调试 125
19.8 参考资料 125

第20章 活动的生命周期LifeCycle 126
20.1 生命周期 126
20.2 进程 126
20.3 为什么要了解生命周期? 127
20.4 Activity的状态 127
20.4.1 Active(活动) 127
20.4.2 Paused(暂停) 127
20.4.3 Stopped(停止) 127
20.4.4 Dead(已回收或未启动) 128
20.5 系统内存不足时的行为 128
20.6 观察Activity运行流程 128
20.7 Activity运行流程 130
20.7.1 一般启动 130
20.7.2 调用另一个Activity 130
20.7.3 返回原Activity 131
20.7.4 退出结束 131
20.7.5 回收后再启动 131
20.8 参考资料 132

第21章 优先级(Preference) 133
21.1 使用优先级设置 133
21.2 保存优先级设置 135
21.3 参考资料 136

第22章 开发不息 137
22.1 回顾BMI应用程序 137
22.2 BMI应用程序设计的缺陷 137
22.3 展望未来 138

第4篇 融会贯通篇

第23章 显性设计 140
23.1 做出容易使用的应用程序 140
23.2 设计的减法 141
23.3 规划应用程序的目标 141
23.4 创建新项目 142
23.4.1 XML说明文件 143
23.4.2 文字字符串文件 145
23.4.3 程序代码 145

第24章 支持多国语言 149
24.1 抽取文本文件 149
24.2 让中文、英文多个语言界面并存 149
24.3 切换语言 152
24.3.1 设置中切换语系 152
24.3.2 程序中切换语言 152
24.4 参考资料 154

第25章 针对特性配置(Orientation) 155
25.1 配置资料夹的命名规则 155
25.1.1 屏幕方向 155
25.1.2 触控类型(Touc-hscreen type) 156
25.1.3 文字输入方式(text input) 156
25.1.4 浏览方式(navig-ation method) 156
25.1.5 屏幕分辨率 156
25.2 Android手机配置实例 157
25.3 指定屏幕方向 157
25.3.1 配置文件中指定屏幕方向 158
25.3.2 程序中指定屏幕方向 158
25.4 参考资料 158

第26章 使用接口(Adapter) 159
26.1 接口的概念 159
26.2 数组接口(Array Adapter)与字符串数组 160
26.3 数组字符串资源文件 161
26.4 参考资料 163

第27章 添加下拉菜单组件(Spinner) 164
27.1 修改XML说明文件 164
27.2 添加程序 165
27.3 记录所选择的优先级 169
27.4 参考资料 171

第28章 签发应用程序密钥(Keytools) 172
28.1 检查列表 172
28.2 手动导出应用程序 172
28.3 产生密钥 173
28.4 签署密钥 175
28.5 验证密钥 175
28.6 安装到模拟器 176
28.7 发布应用程序 176
28.8 参考资料 178

第29章 发布到Android Market 179
29.1 Android Market的运作方式 179
29.2 注册Android Market 179
29.3 上传应用程序到Android Market 180
29.4 查看成果——查看管理界面 183
29.5 自行提供程序在线下载 184
29.6 发布到第三方Android应用程序下载网站 184
29.7 针对用户作设计 185
29.8 参考资料 186

第5篇 数据库应用

第30章 添加列表活动(ListActivity) 188
30.1 分析记事本程序 188
30.2 创建新项目 188
30.3 修改程序代码 189
30.3.1 讲解 190
30.3.2 自定义ListView组件 192
30.3.3 自定义空列表显示内容 192
30.4 参考内置范例 193
30.5 参考资料 194

第31章 使用数据库(SQLite) 195
31.1 SQLite数据库简介 195
31.2 查看模拟器目录 195
31.3 手动创建“SQLite”数据库 196
31.4 创建数据表(table) 197
31.5 验证 198
31.5.1 离开SQLite互动模式 199
31.5.2 重新打开SQLite数据库 199
31.6 让Android模拟器通过Proxy上网 199
31.6.1 查询数据 200
31.6.2 添加数据 201
31.6.3 确认数据 201
31.6.4 更新数据 201
31.6.5 删除数据 202
31.7 参考资料 202

第32章 访问数据表(SQLite OpenHelper) 203
32.1 SQLiteOpenHelper 203
32.2 对NotesDbAdapter类加工 207
32.3 使用NotesDb Adapter类 208
32.3.1 讲解 209
32.3.2 验证 209
32.4 添加查询 210
32.5 完整的程序 212
32.6 参考资料 214

第33章 添加增删改查操作(CRUD) 215
33.1 检索(Retrieve) 215
33.1.1 讲解 216
33.1.2 验证 216
33.2 添加(Create) 216
33.2.1 讲解 217
33.2.2 验证 218
33.3 删除 218
33.4 查询单条记录、修改 220
33.5 参考资料 222

第34章 添加相依的活动(Activity ForResult) 223
34.1 定义XML说明文件 223
34.2 添加编辑类 224
34.3 将新Activity添加列表 227
34.4 打开编辑页面 227
34.5 完整的程序 229
34.6 参考资料 231

第35章 添加长按菜单(ContextMenu) 232
35.1 添加长按菜单框架 233
35.2 填入菜单内容 234
35.3 后续改进 236
35.4 参考资料 236

第6篇 地图与定位应用

第36章 申请Google地图服务(API Key) 238
36.1 取得地点坐标 238
36.2 取得Google地图开发密钥(API Key) 240
36.2.1 调试用密钥(debug keystore)的位置 240
36.2.2 取得MD5指纹信息 240
36.3 参考资料 242

第37章 使用地图(MapView) 243
37.1 Google地图的组成元素 243
37.2 创建新项目 243
37.3 定义列表 245
37.4 定义XML资源文件 245
37.5 产生地图 246
37.6 直接用程序定义界面组件 249
37.7 控制地图 249
37.8 添加缩放图标 251
37.8.1 修改XML说明文件 251
37.8.2 加上缩放控制(Zoom Controls) 252
37.9 新版的改进 253
37.10 参考资料 254

第38章 添加按键控制(KeyEvent) 255
38.1 添加菜单 255
38.2 添加按键控制 256
38.3 控制缩放范围 258
38.4 参考文件 258

第39章 获取现在位置(GPS/基站三角定位) 259
39.1 创建新项目 259
39.2 添加使用权限(uses-permission) 259
39.3 定义LocationListener界面 261
39.4 使用定位服务管理器(locationManager)来获取现在位置 264
39.4.1 讲解 264
39.4.2 自动判断最佳定位服务来源 265
39.5 更新地点(Location Updates) 266
39.6 在模拟器中切换地点 267
39.7 完整的程序 267
39.8 参考资料 269

第40章 结合地图与定位功能(My LocationOverlay) 270
40.1 添加定位层(MyLocation Overlay) 270
40.2 参考资料 272

第41章 为地图标上地标(Itemized Overlay) 273
41.1 设置图标层(Itemized Overlay) 273
41.2 添加图标层 276
41.3 地图开发备忘列表 277
41.4 参考资料 278

后记 279
附录A 如何取得范例源代码 282

序言
本书的第一版出版后,出乎意料地引爆了学习Android平台的热潮,热卖程度超出预期。本书能这么快得到宝贵的改版机会,也要感谢Android平台快得出奇的发展。在本书第一版出版时,市面上还只有一款尚未发售的G1,而几个月后的今天,Magic手机已经发售,而且据统计在今年内全球总共将要发布20款Android新手机。本次的改版中,除了配合最新版本开发工具的操作方式来改写本书外,同时也修改了诸多范例程序代码的配置、加入更多的小技巧与说明,修改了第一版谬误之处,并额外增加了几章新内容,期望读者能更顺畅地通过本书,学习Android平台所需的入门知识。
Android目前的发布周期相当快,2008年11月发布1.0版,2009年2月发布1.1版,2009年5月发布1.5版,顺着这个时程推测,接下来可能每三个月都有一个新版出来。以Google过去其他产品的改版记录而言,Android算是其中改版速度最快的产品之一。一般以年为单位的书籍出版周期也将难以赶上改版速度。在年初刚出版支持1.1版的书籍,年尾书中许多内容却过时了。除了手机之外,Android系统也将应用于嵌入式与手持设备。在这急速演进的过程中,各种高级的功能、API都有很大的可能被修改,或是为了设备的需求而在功能上有所增减。例如在大部分的嵌入式设备中,手机相关功能就用不到了。
如何能协助读者最高效地学习Android平台,一直是笔者在写作时追求的目标。“生命应该浪费在美好的事物上”。在这个信息爆炸的年代,人的学习时间有限,而Android平台的各种高级功能却不停地增加着。这种情况下,应该把边苦读各种API范例教学边发呆的时间尽可能省下来,用这些省下来的时间去苦练基本功或实际编写应用程序,是更有效率的学习方式。笔者认为要驾驭这个不断发展的平台,只需踏实学好本书中所教的实用基础知识。在需要特定功能时,Google的“搜索”功能也这么方便,通过官方http://developer.and.roid.com网站查找所要的功能,然后应用到程序中即可。若能实际通过Google Code网站http://code。google.com/hosting/,下载世界各地开发者发布的项目原始代码,参照或应用在自己的程序中,学习效果会更佳。

后记
在千变万化的潮流中,最重要的就是以不变应万变。 在简单易学和提供完整详尽的信息之间,总是很难达到平衡。
开始写作后才发现:基础的东西学起来很简单,而解释起来,不但要把握住核心概念与细节,还得避免“离题”到其它较深入的地方,以致吓坏了初学者,这实在是件很不容易的事情。
随着写作内容的深入,要保持本书学习简单、前后连贯的风格,写作上当然也碰到越多麻烦。对作者本人来说,支撑着我们克服诸多障碍的支柱,是继续朝着“帮助以中文为母语的开发者,更快上手Android应用程序开发”的初衷前进,终至完成本书。
在本书的入门、初级、中级的主题中,讲解了如何编写Android界面、代码;如何添加菜单;与应用程序如何在多个Activity之间切换等内容。了解了这些内容,已足够我们写出一般的Android应用程序。
在融会贯通的主题中,通过实战性的操作带读者走了一遍开发应用程序的流程。最后两个数据库应用、地图与定位应用的主题,则帮助读者了解Android平台上完整地保存数据方式,与如何应用地图与定位服务。
笔者敢说自己已勉强达到了让本书简单易学的目标,但是在精力与写作时间、篇幅之间取舍,还是谨慎地过滤掉太多繁杂的内容,只留下精华放在书中。Android是个完整的平台,还有诸多内容值得研究。一些高级的主题,如应用程序间共享内容(Content:Provider)、服务(Service)、整合网络服务、浏览器脱机应用程序、相机与条形码、动作感应、手势感应、3D、绘图、游戏、影音、通话与短信等等,就不在定位为“入门”的本书中提及。相信读者在读完本书后,将具备充足的基础知识,能充满信心地根据自己的需求,继续学习这些高级的主题。
Android平台相当年轻,且充满活力。每隔一阵子,都会有新的功能冒出来。本书提供了一个相当好的入门砖,让您跨过Android平台的入门障碍。 然而想要再高级,仍然必须学习查看英文数据。

文摘
插图:

Google Android开发入门指南
地图确实是个让人充满想象的媒介。
这年头只要是智能型手机,上面几乎都有“Google地图”(Google Map)可使用。用户可以通过在Google地图中输入地址或地标来搜索目标地点。使用Google地图可以取得目标地附近的地图、查询行车路线,或是列出附近的建筑物空照图(卫星图)、查看街景(StreetView)等等功能.也可以搭配GPS等定位系统,来查询目前位置附近的信息.在Android平台上,我们不仅可以使用基本的Google地图,还可以基于Google地图服务所提供的地图资料,进一步自定义“MapView”界面组件(Google地图的基本组件)中的各种元素,编写不同的地图应用程序。并通过“定位”、“电子罗盘”等功能,结合Android平台的随身与移动特性,做出具个性化、区域性的独特地图与各种充满想象力的定位应用程序。
我们将使用.Android极富特色的地图与定位功能,以“火车站导览”应用程序为范例,编写地图与定位应用程序。我们将使用以Google地图为基础的“MapView”组件,组合出一个简单的火车站导航应用程序.可以在列表中选择北京、上海、广州车站,并查看车站附近的地图.
36.1 取得地点坐标
讲到使用地图,就会谈到地图坐标的表示法,地图坐标的表示法是我们编写地图程序的基础。
传统上常见的地图坐标表示法,是把整个椭圆形的地球表面,由北极到南极,等分画上一个个南北向的圆圈。表示所在地南北方向的“纬度”(latitude).再将南北级连接成一条条线,以通过英国格林威治天文台所在地的线为0°线(东经、西经各180°),来表示所在地相对东西方向的“经度”(longitude)。

内容简介
《Google Android开发入门指南(第2版)》是一部关于Android开发的基础教程,采用由浅入深、循序渐进的方式讨论Android。《Google Android开发入门指南(第2版)》全部内容基于Android SDK1.5Windows、MacOS X、Linux平台适用Android开发入门的详细教程,适合Android与J2ME的初学者学习,以编写实例为教学主线,真正助您解决开发中遇到的诸多实际问题。
书中还结合数独游戏等实例更加形象生动地讲解了Android开发的基本流程,且每章最后都有一个“快速阅读指南”,更加方便了读者的阅读。
《Google Android开发入门指南(第2版)》有超过130个实务范例,全面深度地整合手机、网络及服务。
《Google Android开发入门指南(第2版)》有易于阅读的架构设计,每个范例均搭配步骤及完成画面!范例完全兼容Android SDK 1.5。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多