Android手机程序设计入门、应用到精通

简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
本书把Android的功能按照特性进行分类,根据由浅入深的原则,以教学单元搭配步骤讲解,并穿插搭配了许多包含精心设计和讲解的应用程序开发案例,如“婚姻建议程序”、“电脑猜拳游戏”、“影像画廊等。为了在内容的广度和讲解的详细程度上达到最佳的平衡,本书打破惯例,通过单元编排的方式,让读者的学习更有效率,同时也能享受到学习程序设计的乐趣。
本书适合于Android平台的应用开发人员自学及参考用书,也非常适合作为大学相关软件专业教材或专业培训教材。
本书为经台湾碁峰资讯股份有限公司独家授权发行的中文简体版。本书中文简体字版在中国大陆之专有出版权属中国水利水电出版社所有。在没有得到本书原版出版者和本书出版者书面许可时,任何单位和个人不得擅自摘抄、复制本书的一部分或全部以任何方式包括(资料和出版物)进行传播。本书原版版权属碁峰资讯股份有限公司。版权所有,侵权必究。
北京市版权局著作权合同登记号:图字01-2011-5269号
本书把Android的功能按照特性进行分类,根据由浅入深的原则,以教学单元搭配步骤讲解,其中穿插搭配了许多包含精心设计和讲解的应用程序开发案例,如“婚姻建议程序”、“电脑猜拳游戏”、“影像画廊等。为了在内容的广度和讲解的详细程度上达到最佳的平衡,本书打破惯例,通过单元编排的方式,让读者的学习更有效率,同时也能享受到学习程序设计的乐趣。
•丰富的Eclipse开发环境的操作技巧,帮助初学者快速学会Eclipse的强大功能
•20种界面控件的使用教学,4种界面布局精讲,5种对话框的使用详解,帮助您设计出好看又漂亮的应用程序
•详细讲解Intent的使用,包括建立Tab标签页、发送和返回数据……,让您完整学会Intent的用法
•4大类Android程序完全详解,包括Activity、Service、Content provider和Broadcast receiver以及App Widget程序
•2D和3D绘图程序架构与范例,让您学会开发Location-based services(LBS 基于位置的服务)
•所有的教学单元都采用步骤式的讲解,让您的学习无障碍
•精心编排的单元内容,方便查询相关主题
Android!?信息科技的绿芽
相信很多人原来都不曾听过Android这个词,但是突然有一天从电视上或是从网络上,或是在手机商店突然看到这个陌生的词(通常还伴随着一个绿色可爱的小机器人)。而后Android这个字开始越来越频繁地出现在我们周围的环境,甚至在信息科技类的书架上,我们才开始惊觉它已经悄悄地把触角延伸到我们的日常生活中。这不是笔者随意捏造的故事,而是已经发生或是正在发生在许多人身上的实际情况,甚至未来还会有更多人有同样的经历,这就好像是春天的绿芽,总是在不经意的时候冒出头来,然后静静地成长茁壮,直到有一天我们才发现它们已经改变了我们的景观。
Android是一个由Google主导开发的智能手机操作系统,它原来只是一个名不见经传的小产品,但是Google总是有慧眼识英雄的本领,从网络搜索引擎到地图服务,现在再加上智能手机的领域,Google在信息科技界总是能够掀起一阵又一阵的旋风,由于Google的技术支持与推广,不仅让Android从麻雀变凤凰,也让Google扶摇直上成为2011年全球最有价值的商业品牌。
Android对于程序开发人员的致命吸引力
开发Android应用程序需要Eclipse、Android SDK和ADT等工具软件,听起来好像有点繁杂,但是在Google的技术支持下,这些工具软件已经完全整合在一起,使用上非常方便。而且相对于其他程序开发工具,这些软件可说是非常“环保”(对于用户的计算机来说),因为只需要将它们复制到计算机的文件夹中,再设置好文件夹路径就可以使用。日后如果不想用,只要删除相应的文件夹即可。另外还有一个最大的好处是“完全免费”,而且提供每天24小时服务,随时连上因特网就可以下载安装和更新。Android操作系统提供的功能甚至超越了一般的计算机操作系统,像是Google地图服务、定位功能、语音识别、动作和环境感测等,因此只要加上您的创意就可以发展出比一般计算机程序更生活化的应用。而且Google还针对全世界Android应用程序开发人员架设一个Android Market网站,让他们可以在上面卖或是提供免费下载自己的作品。由于以上这些吸引人的条件,让世界各地加入开发Android应用程序的人员快速地增加。如果过去我们已经错过计算机程序研发的先机,现在岂能再错失成为手机程序开发领头羊的大好机会!
谁适合阅读这本书
开发Android应用程序大致上需要三个条件。第一是必须具备程序语法的基础,也就是说必须知道程序语言(Java、C/C++、Visual Basic皆可)的变量、数组、表达式、循环等基本语法。第二是了解面向对象的概念和用法,因为Android程序是使用Java语言编写,它采用面向对象的架构。但其实面向对象的基本概念并不难,当然进阶的用法就需要比较多的经验和技术,但是以本书的程序范例而言,是针对入门学习者所设计,因此只要依照书上循序渐进的内容安排来阅读就可以了解。如果读者可以配合书上所列举的操作步骤动手实现,学习效果更能倍增。最后Android程序中使用了事件处理程序和系统callback函数的机制,这种机制并不是Android程序的专属特性,任何图形操作接口的操作系统像是Windows也都是采用这种方式,基本上这也是一个概念的问题,只要读者了解它的运行原理就知道如何使用,本书的学习章节会在适当的时候加以说明,因此只要读者了解程序语言的基本语法,就可以根据本书的说明和范例开始学习Android程序设计。
如何使用这本书
Android程序设计是一个新兴的领域,虽然目前市面上已经出现一些入门学习或是进阶应用的书籍,但是在内容的讲解和丰富性还欠缺良好的平衡,进阶应用书籍中的内容并不适合初学者,而入门书籍所涵盖的范围又稍嫌不足,因此编写这本书的目的就是希望在内容的广度和内容的细节上取得更好的平衡。为了达到这个目的,我们将Android操作系统的功能按照特性加以分类,然后根据由浅入深的原则进行编排,再加上许多精心设计的范例程序贯穿相关的学习章节,让读者在学习单一主题的时候也同时了解相关的功能。本书所使用的章节编排方式也是希望将每一次的学习时间做适当的切割,让读者对于新学习的知识有消化反刍的时间,这样才能够达到更好的学习成效,同时也能够享受学习程序设计的乐趣。
本书的第一部分是介绍Android的发展史、系统架构和Google推广Android的方式。第二部分是介绍安装Android程序开发工具的步骤并示范第一个Android程序项目以及程序调试的方法、Eclipse的操作技巧和查询Android SDK联机帮助文件的方法。这个部分是后续学习的重要基础,如果读者是Android程序设计的初学者,请务必仔细研读,最好能配合动手实现,学习程序设计的秘诀的唯一方法就是多动手,然后想一想、改一改、试一试自然就能理解。完成第二部分的学习之后读者便可根据自己的兴趣或需要学习特定的章节,但由于本书的内容编排是由浅入深,而且有些程序范例具有前后连贯的关系,因此如果读者在学习上遇到障碍,可以先回到前面相关的章节阅读之后,再依关连性往后续章节继续学习,依照这种方式就能够让本书的内容对于读者学习Android程序设计发挥最大的帮助。看完以上的介绍,读者是不是也被Android平台的魅力所吸引?那么就从现在开始,让我们一起踏上Android程序设计的学习之旅吧!
参与本书繁转简工作的有李宁、赵华振、李斌锋、邓斌、皮文星、闫芳、王玉芹、杨振珂、邓福金、刘素云、代锡恒、刘晓键、李新生、欧阳会、李礼华、石杰、何少亮、欧阳观、陆正武,在此表示感谢。
最后感谢我最亲爱的家人Maysue、小D和小M在本书编写期间的容忍和体谅,虽然因为我的忙碌而疏忽了你们,但是有你们的陪伴,让一切的付出和努力更有意义!
孙宏明
于 故园
前言
PART 1 拥抱Android
UNIT 1 从Android的诞生说起 2
1-1 由Google主导开发的Android手机开放平台 2
1-2 大话Android的发展史 3
UNIT 2 探索Android的功能和应用 6
2-1 Android平台上究竟可以变出什么魔法 7
UNIT 3 通过编写Android程序挣钱 8
PART 2 开始我们的Android程序设计之旅
UNIT 4 安装Android程序开发工具 11
4-1 不同操作系统的开发工具版本 11
4-2 安装Android程序开发工具的步骤 12
4-3 Android程序开发工具的维护和更新 19
UNIT 5 使用Eclipse建立第一个Android应用程序 22
5-1 建立一个新的Android应用程序项目 22
UNIT 6 了解Android程序项目的架构和执行流程 27
UNIT 7 使用TextView、EditText和Button接口组件 30
7-1 TextView接口组件 31
7-2 EditText接口组件 32
7-3 Button接口组件 33
7-4 链接接口组件和程序代码 34
7-5 设置Button组件的click事件listener 34
7-6 取得edtSex和edtAge接口组件中的字符串 36
7-7 将结果显示在txtResult接口组件 37
UNIT 8 程序的错误类型和除错方法 39
8-1 程序的语法错误和除错的方法 39
8-2 程序的逻辑错误和除错的方法 40
8-3 执行时期错误和除错的方法 42
UNIT 9 Eclipse进阶程序项目管理技巧 46
9-1 根据已经写好的程序原始文件来建立项目 46
9-2 根据Android SDK中的程序范例来建立项目 48
9-3 把建立好的Android程序项目加载Eclipse 49
9-4 程序项目的管理和维护 50
UNIT 10 让程序有美好的未来——良好的程序架构 53
UNIT 11 查询Android SDK的官方文档 58
11-1 使用页面的Reference查询类说明文档 59
11-2 使用Dev Guide查询程序设计说明文件 61
PART 3 学习使用基本接口组件
UNIT 12 更多变化的TextView、EditText和Button接口组件 63
12-1 fill_parent和wrap_content的差别 65
12-2 android:inputType范例 66
12-3 控制文字大小、颜色、底色 67
12-4 控制组件四周的间隔距离以及组件内部的文字和边的距离 68
UNIT 13 Spinner下拉式列表组件 70
13-1 建立Spinner下拉式列表的第一种方法 71
13-2 建立Spinner下拉式列表的第二种方法 75
UNIT 14 使用RadioGroup和RadioButton组件建立单选列表 78
14-1 将“婚姻建议”程序改成使用Radio Group菜单 79
UNIT 15 CheckBox多选列表和ScrollView滚动条 85
UNIT 16 ListView选项列表 92
UNIT 17 ExpandableListView可展开选项列表 97
UNIT 18 AutoCompleteTextView自动完成文字输入 103
PART 4 布局
UNIT 19 LinearLayout布局 109
UNIT 20 TableLayout布局 115
UNIT 21 RelativeLayout布局 121
UNIT 22 FrameLayout布局 126
UNIT 23 布局的应用实例 129
PART 5 图像相关的接口组件
UNIT 24 ImageButton和ImageView组件 137
UNIT 25 ImageSwitcher和Gallery组件 143
25-1 Gallery组件的使用方法 144
25-2 ImageSwitcher组件的使用方法 147
25-3 完成“图像画廊”程序 148
UNIT 26 使用动画效果 152
26-1 建立动画资源文件 153
26-2 建立各种类型的动画 155
26-3 使用随机动画的“图像画廊”程序 158
26-4 在程序代码中建立动画效果 160
26-5 应该使用动画资源文件还是在程序代码中建立动画对象 162
UNIT 27 GridView接口组件 163
UNIT 28 为ListView加上小图标 168
28-1 自定义项目的显示布局 169
28-2 从程序项目的资源类读入项目数据并设置布局 169
PART 6 其他特殊用途的接口组件
UNIT 29 时间和日期接口组件 174
29-1 DatePicker日期接口组件 174
29-2 TimePicker时间接口组件 175
29-3 范例程序 176
UNIT 30 ProgressBar和Multi-Thread程序 179
30-1 Multi-Thread程序 181
30-2 使用Handler对象完成Thread之间的信息沟通 181
30-3 第一版的Multi-Thread ProgressBar范例程序 182
30-4 第二版的Multi-Thread ProgressBar范例程序 187
UNIT 31 SeekBar和RatingBar界面组件 189
UNIT 32 Tab标签页接口 194
PART 7 使用对话框
UNIT 33 DatePickerDialog和TimePickerDialog对话框 200
33-1 DatePickerDialog对话框 201
33-2 TimePickerDialog对话框 202
33-3 范例程序 204
UNIT 34 AlertDialog对话框 208
34-1 使用AlertDialog.Builder类建立AlertDialog对话框 208
34-2 使用AlertDialog类建立AlertDialog对话框 210
34-3 范例程序 212
UNIT 35 ProgressDialog对话框和Multi-Thread程序 216
UNIT 36 自定义Dialog对话框 221
UNIT 37 Toast信息框 227
PART 8 让Intent帮你的程序完成愿望
UNIT 38 AndroidManifest.xml程序功能描述文件 231
UNIT 39 Intent粉墨登场 237
39-1 Eclipse的DDMS功能以及手机的Linux命令行模式 241
UNIT 40 Tab标签页接口——使用Intent对象 244
UNIT 41 用Intent对象传递数据 249
41-1 传送数据的Activity需要完成的工作 249
41-2 从Intent对象中取出数据 251
41-3 范例程序 251
UNIT 42 要求被调用的Activity返回数据 257
PART 9 Intent的高级用法
UNIT 43 Intent Filter让程序也能帮助别人 263
43-1 设定AndroidManifest.xml文件中的Intent Filter 264
43-2 Android系统比对Intent和Intent Filter的规则 266
43-3 接收到Intent对象的Activity的工作 267
43-4 范例程序 267
UNIT 44 Broadcast Intent和Broadcast Receiver 274
44-1 程序广播Intent对象的方法 274
44-2 建立Broadcast Receiver监听广播消息 275
44-3 范例程序 277
UNIT 45 Service是幕后英雄 282
45-1 Service的运行方式和生命周期 282
45-2 在程序项目中建立Service类 283
45-3 启动Service的第一种方法 286
45-4 启动Service的第二种方法 287
45-5 范例程序 288
UNIT 46 App Widget常驻程序 292
46-1 基本的App Widget程序 293
46-2 强化版的App Widget程序 299
46-3 取得并更新App Widget程序的view 302
UNIT 47 App Widget常驻程序的其他两种执行模式 305
47-1 预定运行时间的App Widget程序 305
47-2 用按钮启动App Widget程序 306
PART 10 Activity的生命周期与高级功能
UNIT 48 Activity的生命周期 309
UNIT 49 帮Activity加上选单 313
49-1 onCreateOptionsMenu()方法中的工作 314
49-2 onOptionsItemSelected ()方法中的工作 315
49-3 范例程序 316
UNIT 50 使用Context Menu 320
50-1 Context Menu的用法和限制 320
50-2 范例程序 321
UNIT 51 在屏幕上方的状态栏显示信息 324
PART 11 储存程序数据
UNIT 52 使用SharedPreferences储存数据 330
52-1 储存数据的步骤 330
52-2 读取数据的步骤 331
52-3 删除数据的步骤 331
52-4 清空数据的步骤 332
UNIT 53 使用SQLite数据库储存数据 336
53-1 进入手机模拟器的Linux命令行模式操作SQLite数据库 336
53-2 SQLiteOpenHelper类 338
53-3 SQLiteDatabase类 339
53-4 范例程序 340
UNIT 54 使用Content Provider跨程序存取数据 348
54-1 Activity和Content Provider之间的运行机制 349
54-2 范例程序 351
UNIT 55 使用文件储存数据 358
55-1 将数据写入文件的方法 358
55-2 从文件读取数据的方法 359
55-3 范例程序 360
PART 12 程序项目的准备工作和发布
UNIT 56 支持多语系和屏幕模式 366
56-1 让程序支持多语系的方法 367
56-2 让程序支持多种手机屏幕模式 368
56-3 范例程序 369
UNIT 57 设定手机模拟器的程序 开发相关功能 372
UNIT 58 将程序安装到实体手机或在网络上发布 376
58-1 利用Export Wizard帮程序加上数字签名和完成zipalign 377
58-2 将程序上传到Google的Android Market网站 379
PART 13 2D和3D绘图
UNIT 59 使用Drawable对象 382
59-1 从res/drawable文件夹的图像文件建立Drawable对象 382
59-2 在res/drawable文件夹中建立xml文件格式的Drawable对象定义文件 383
59-3 在程序中建立Drawable类型的对象 384
59-4 范例程序 385
UNIT 60 使用Canvas绘图 388
UNIT 61 使用View在Canvas上绘制动画 392
61-1 程序绘制动画的原理 392
61-2 范例程序 393
UNIT 62 使用SurfaceView进行高速绘图 397
62-1 使用SurfaceView的步骤 397
62-2 范例程序 398
UNIT 63 绘制3D图形 403
63-1 3D绘图的基本观念 403
63-2 3D绘图程序 405
PART 14 Google地图程序
UNIT 64 使用Google地图 412
64-1 开发Google地图应用程序的准备工作 412
64-2 建立Google地图应用程序的步骤 416
64-3 范例程序 418
UNIT 65 Google地图的进阶用法 422
65-1 地图的缩放和拖曳功能 422
65-2 加上键盘控制功能 424
65-3 切换地图显示模式 425
UNIT 66 帮地图加上标注 430
66-1 地图程序使用Overlay的步骤 430
66-2 范例程序 435
UNIT 67 加上定位让地图活起来 437
67-1 手机定位的方法 437
67-2 第一种定位方法——使用MyLocationOverlay对象 438
67-3 第二种定位方法——使用LocationManager 442
PART 15 Android 4.x支持的新技术
UNIT 68 Android 4.x的10大特性 448
UNIT 69 子窗口:Fragments 450
69-1 Fragments的设计原理 451
69-2 创建Fragment 451
69-3 建立一个用户界面 453
69-4 将Fragment添加到Activity中 453
69-5 处理Fragment事务 455
69-6 与Activity通信 456
UNIT 70 动作栏:Action Bar 458
70-1 添加Action Bar 458
70-2 移除Action Bar 459
70-3 添加Action Item 459
70-4 将应用图标用作菜单项目 460
附录 本书光盘内容与使用说明 462
- Java面向对象程序设计 [主编 姜春磊 陈虹洁]
- C语言程序设计实验指导与实训(第二版) [主编 倪燃]
- Python程序设计及实践教程 [肖朝晖]
- C语言程序设计 [魏琴 刘祖珉 赵仕波 肖阳春]
- C语言程序设计实验教程 [张小刚 司春景]
- 电气控制与PLC程序设计(第二版) [胡冠山]
- Java Web项目化设计实践教程 [邱云 曾陈萍]
- C语言程序设计(第三版) [主编 丁红 王立新 蔡开立]
- Python数据分析 [主编 冯志辉 赵磊 李放]
- Python程序设计与应用(第二版) [主编 张广渊]
- C程序设计实践教程 [刘卫国]
- C程序设计(慕课版) [刘卫国]
- 程序设计基础实践教程(C/C++语言版) [张桂芬 葛丽娜]
- C++案例项目精讲 [主编 杨国兴]
- SwiftUI完全开发 [李智威 著]
- MySQL数据库项目式教程 [陈亚峰]
- C语言程序设计习题与实验指导(第二版) [主编 甄增荣 张宾]
- C语言程序设计(第二版) [主编 甄增荣 田云霞]
- Unity3D虚拟现实应用开发实践 [主 编 刘龙]
- Python程序设计 [主编 姜春磊 陈虹洁]
- C语言程序设计实践教程(活页式) [主编 郑茵 陈巍 滕泓虬]
- 面向对象程序设计 [主编 张勇 张平华 赵小龙]
- Python程序设计基础及实战 [主编 刘健]
- C语言程序设计 [姜雪]
- Python程序设计实践教程 [王鹤琴 蔡正保]
- C++程序设计实践教程(第三版) [主编 刘卫国 曹岳辉]
- C++程序设计(第三版) [主编 曹岳辉 刘卫国]
- C语言程序设计项目化教程(活页式) [主编 张利华 潘晓利]
- 机器人流程自动化(RPA)实战——基于UiPath [主编 金鑫]
- Python 语言程序设计实践指导 [主编 张双狮]