图书简介:
目 录
第1章 认识Android 1
1.1 什么是Android 1
1.2 Android有哪些特点 1
1.3 Android操作系统 2
1.4 Android SDK中的资源 3
1.4.1 资源概述 3
1.4.2 各种资源的使用 4
1.5 需要学习哪些知识 8
1.6 习题 8
第2章 Android系统开发综述 9
2.1 Android系统架构 9
2.1.1 应用程序层 10
2.1.2 应用程序框架层 10
2.1.3 系统运行库层 10
2.1.4 Linux内核层 11
2.2 搭建Android开发环境 11
2.2.1 JAVA环境搭建 11
2.2.2 安装Eclipse 13
2.2.3 安装Android SDK 13
2.2.4 安装ADT 15
2.3 Android开发工具 16
2.3.1 DDMS工具 16
2.3.2 ADB工具 16
2.3.3 AAPT工具 17
2.3.4 Logcat工具 17
2.4 Android的模拟器 18
2.5 Android应用打包 19
2.6 习题 20
第3章 创建一个Android程序 21
3.1 创建Android工程 21
3.1.1 创建一个Android程序 21
3.1.2 运行Android程序 22
3.2 Android工程目录结构分析 24
3.2.1 src目录项 24
3.2.2 gen目录项 25
3.2.3 Android.jar文件 25
3.2.4 assets目录项 25
3.2.5 res目录项 25
3.2.6 AndroidManifest.xml文件 26
3.2.7 project.properties文件 26
3.3 调试android程序 26
3.3.1 增加断点 26
3.3.2 启动调试 27
3.3.3 单步调试 27
3.3.4 利用Logcat调试 29
3.4 习题 30
第4章 Activity组件 31
4.1 什么是Activity 31
4.2 Activity的运行状态 32
4.3 Activity的生命周期 33
4.4 自定义Activity 40
4.5 Activity的详细配置 40
4.6 示例 50
4.7 习题 56
第5章 界面布局 57
5.1 Android UI布局 57
5.1.1 线性布局 57
5.1.2 帧布局 58
5.1.3 相对布局 59
5.1.4 表格布局 60
5.1.5 绝对布局 60
5.2 Android UI控件 60
5.2.1 UI事件捕获与处理 61
5.2.2 TextView 61
5.2.3 Button 62
5.2.4 EditText 63
5.2.5 CheckBox与RadioGroup 63
5.2.6 Spinner 64
5.2.7 AutoCompleteTextView 64
5.2.8 ProgressBar 64
5.2.9 ListView 65
5.2.10 Window 65
5.2.11 其他UI控件概览 66
5.3 用户界面设计原则 69
5.3.1 一致性 69
5.3.2 准确性 70
5.3.3 布局合理化 70
5.3.4 操作合理性 71
5.3.5 响应时间 71
5.4 用户界面设计核心概念 71
5.4.1 android.view.View类 71
5.4.2 View类的继承关系 71
5.5 菜 单 72
5.5.1 选项菜单 72
5.5.2 上下文菜单 74
5.5.3 子菜单 75
5.6 对话框 76
5.6.1 提示对话框 76
5.6.2 列表对话框 76
5.6.3 单选对话框和复选对话框 76
5.6.4 进度条对话框 77
5.6.5 日期选择对话框 77
5.6.6 时间选择对话框 77
5.6.7 拖动对话框 79
5.6.8 自定义对话框 79
5.7 滚动处理 79
5.8 示例 81
5.9 习题 94
第6章 Intent组件 95
6.1 什么是Intent 95
6.2 Intent的组成 95
6.2.1 Component Name部分 95
6.2.2 Action部分 96
6.2.3 Data部分 96
6.2.4 Category部分 96
6.2.5 Extras部分 96
6.2.6 Flags部分 96
6.3 Intent Filter 96
6.3.1 检查Action 97
6.3.2 检查Data 97
6.3.3 检查Category 97
6.4 Intent 的解析机制 98
6.5 Intent 调用常用组件 99
6.6 Intent在多Activity中的使用 102
6.6.1 由一个Activity启动另一个Activity 102
6.6.2 Activity间的数据交换 102
6.6.3 带结果返回的Activity 103
6.7 示例 104
6.8 习题 109
第7章 Service组件 110
7.1 什么是Service 110
7.2 Service的生命周期 111
7.3 Service的常用方法 112
7.3.1 StartService启动服务 113
7.3.2 BindService启动服务 113
7.4 IntentService 114
7.5 提高Service优先级 116
7.6 使用系统服务 118
7.7 远程Service 119
7.7.1 AIDL接口 119
7.7.2 远程Service的实现 120
7.8 示例 125
7.9 习题 130
第8章 BroadcastReceiver组件 131
8.1 BroadcastReceiver 简介 131
8.1.1 BroadcastReceiver概念 131
8.1.2 BroadcastReceiver机制 132
8.2 广播消息的处理流程 132
8.2.1 广播消息的处理流程 132
8.2.2 广播接收者的实现方式 132
8.2.3 发送广播 134
8.3 广播类型及广播的收发 134
8.3.1 普通广播 134
8.3.2 有序广播 135
8.4 处理系统的广播消息 135
8.4.1 开机启动服务 136
8.4.2 网络状态变化 138
8.4.3 电量变化 139
8.5 BroadcastReceiver的生命周期 140
8.6 示例 141
8.7 习题 147
第9章 Android数据存储与共享 148
9.1 SharedPreferences 148
9.2 File 149
9.3 SQLite数据库编程 154
9.2.1 SQLite简介 154
9.2.2 SQLite示例 160
9.4 ContentProvider 168
9.5 示例 172
9.6 习题 183
第10章 网络连接 184
10.1 网络的访问方式 184
10.1.1 HTTP方式 184
10.1.2 Socket方式 192
10.1.3 Wi-Fi方式 196
10.1.4 蓝牙 197
10.1.5 获取网络的状态 202
10.2 HTTP通信 203
10.2.1 标准的Java接口 203
10.2.2 Apache接口 204
10.2.3 Android的网络接口 205
10.3 WebView 205
10.3.1 WebView简介 205
10.3.2 WebView的实现 206
10.3.3 WebView的常见功能 206
10.4 Wi-Fi应用的开发 207
10.4.1 Wi-Fi系统 207
10.4.2 JNI 210
10.4.3 简单的Wi-Fi应用开发 215
10.5 习题 217
第11章 多线程 218
11.1 多线程的实现 218
11.1.1 创建启动线程 218
11.1.2 休眠线程 221
11.1.3 中断线程 222
11.2 多线程消息传递机制 224
11.2.1 Looper的使用 224
11.2.2 Handler的使用 228
11.2.3 Message的使用 232
11.3 示例 233
11.4 习题 250
第12章 百度地图API 251
12.1 百度Android SDK简介 251
12.2 百度地图API功能 251
12.2.1 地图 251
12.2.2 POI检索 252
12.2.3 地理编码 252
12.2.4 线路规划 252
12.2.5 地图覆盖物 252
12.2.6 定位 252
12.2.7 离线地图 252
12.2.8 调启百度地图 252
12.2.9 周边雷达 253
12.2.10 LBS云 253
12.2.11 特色功能 253
12.3 申请密钥 253
12.3.1 密钥简介 253
12.2.2 密钥申请步骤 254
12.4 配置环境及发布 258
12.4.1 Eclipse工程配置方法 258
12.4.2 Android Studio工程配置方法 258
12.4.3 应用混淆 259
12.5 Hello BaiduMap 259
12.6 基础地图 262
12.6.1 地图类型 262
12.6.2 实时交通图 262
12.6.3 百度城市热力图 263
12.6.4 标注覆盖物 263
12.6.5 几何图形覆盖物 264
12.6.6 文字覆盖物 265
12.6.7 弹出窗覆盖物 266
12.6.8 地形图图层 267
12.6.9 热力图功能 268
12.6.10 检索结果覆盖物 269
12.6.11 OpenGL绘制功能 271
12.7 检索功能 273
12.7.1 POI检索 274
12.7.2 公交信息检索 275
12.7.3 线路规划 275
12.7.4 地理编码 278
12.7.5 在线建议查询 279
12.7.6 短串分享 280
12.8 定位 281
12.9 事件监听 282
12.9.1 Key验证事件监听 282
12.9.2 一般事件监听 283
12.9.3 地图事件监听 284
12.10 习题 286
第13章 APP示例 287
13.1 周边加油站APP简介 287
13.2 App原型展示 287
13.3 聚合数据开放平台介绍 289
13.4 百度地图API介绍 290
13.5 配置工程 290
13.6 聚合数据解析 292
13.7 首页当前位置和PIO绘制 297
13.8 数据序列化 303
13.9 列表界面 306
13.10 详情界面 309
13.11 导航界面 312
13.12 运行效果 315
13.13 习题 316
展开
前 言
作为一个应势而生的移动终端操作系统,Android适应了移动互联网的发展,为产业从以硬件为重心向以内容和服务为重心转型提供了一个绝佳的平台。更由于其发起者Google的正确商业推广策略,自发布之日起,Android便赢得了众多开发者和OEM厂商的青睐与支持,支持者的范围如滚雪球般不断扩大,最终后来居上。由于其面向互联网设计的特点,Android适用于数字家庭、远程医疗、物联网、交通监控、移动终端、机器人等多种应用领域,能很好地适应移动互联网的发展,其前景被越来越多的人看好。Android的出现,加速了以“内容”和“服务”为重心的新一代信息产业革命的发展。
Android是Google于2007年11月推出的一款开放的嵌入式操作系统平台,由于其完全开源的特性,正以空前的速度吸引着大批开发者的加入。为了帮助众多的软件开发人员尽快地掌握Android平台的相关知识,尽快地步入实际项目的开发中,作者根据多年项目开发经验编写了此书。
本书既介绍了Android应用程序基本框架,也对Android平台的各种控件进行了讲解,还通过一个真实案例向读者介绍了Android应用程序完整的开发步骤。读者通过本书可以尽快地掌握在Android平台下进行开发的相关知识。
本书具有以下特点:
1.内容饱满、由浅入深
本书内容既包括Android平台下开发的基础知识,也有项目编程的实用技巧,还提供了多个真实案例供读者学习。本书在知识的层次上由浅入深,即使是Android的门外汉,也可以平稳、快速地步入Android开发的殿堂。
2.结构清晰、语言简洁
本书中所有案例都是按照笔者的真实项目开发过程进行介绍的,结构清晰,语言简洁,便于实际练习。为了帮助读者更好地理解相关知识点,全书穿插了很多实用技巧及温馨提示。
3.实用超值的教学资源
为了便于教学,本书提供的配套教学资源包括:课程简介、教学大纲、电子教案(PPT)、实例源代码和习题解答等,可通过华信教育资源网http://www.hxedu.com.cn下载。
4.实际商业案例
本书的案例都有实际商业价值,如果进行开发,价格要数万元,本书中笔者将其完整地展现给了读者。
本书共分13章:第1章认识Android,主要讲述了Android的概念、特点以及SDK中资源及其使用,通过本章读者可以对Android有一定的初步了解;第2章Android系统开发综述,全面讲述了Android系统开发的相关概念,通过本章内容的学习,读者可以对Android系统开发过程中的常见概念有所了解,并学会搭建Android应用开发环境以及对其应用进行打包;第3章创建一个Android程序,介绍了如何创建一个简单的Android程序并运行,对Android的工程目录结构进行了详细分析,并讲解了如何调试Android程序;第四章Activity组件,介绍了Android四大组件之一Activity组件的运行状态、生命周期、自定义Activity以及Activity的详细配置等内容;第5章界面布局,讲述了用户界面设计原则、用户界面设计核心概念、Android布局和控件、菜单、对话框、滚动处理等内容;第6章Intent组件,介绍了Intent组件的概念、Intent的组成、Intent Filter、Intent的解析机制、Intent调用常用组件、Intent在多Activity中的使用;第7章Service组件,讲述了Android四大组件之一Service的概念、Service的生命周期、常用方法、IntentService,提高Service优先级,使用系统服务、远程Service等内容;第8章BroadcastReceiver组件,向读者介绍了Android四大组件之一BroadcastReceiver广播接收者的概念和机制、生命周期、广播消息的处理流程、广播类型及广播的收发、处理系统的广播消息等内容;第9章Android数据存储与共享,详细讲述了SharedPreferences、ContentProvider、File、SQLite数据库编程等内容;第10章网络连接,详细讲述了网络的访问方式(包括HTTP方式、Socket方式、Wi-Fi方式、蓝牙、获取网络状态等)、HTTP通信接口、WebView以及Wi-Fi应用的开发;第11章多线程,详细讲述了多线程的实现和多线程的消息传递机制,包括Looper、Handler、Message的使用;第12章百度地图API,详细讲述了百度Android SDK、百度地图API功能、申请密钥、环境配置、基础地图、检索功能、定位、事件监听等开发百度地图API的知识;第13章APP示例,通过对周边加油站APP应用的展示和其基于Android平台的开发过程进行了全面的项目体系讲解,带领读者体验项目开发过程的同时使读者了解真正的APP项目是如何开发的。
本书的内容通俗易懂,涵盖了Android相关的所有基础技术,并向读者介绍了真实项目的开发流程,特别适合做为软件工程、计算机科学与技术、物联网工程、计算机应用、电子商务等专业的高年级本科生和研究生的教材,也适合相关软件开发技术人员参考。对其内容稍加删减,即可成为本科、大中专院校其他专业选修课、职业技术类学院和各种软件开发培训机构的教材。本书详细介绍了Android的基础知识及各种控件,并对Android平台下基于百度地图API的开发进行了介绍,Android初学者通过本书可以快速、全面地掌握Android平台相关知识,快速地步入Android开发人员的行列。有一定Java基础的读者通过阅读本书的前半部分便可快速地掌握Android的各种组件及基础控件,然后通过本书的真实案例的学习迅速地掌握Android平台下的应用程序开发技巧。
作者从事工程应用软件开发15年,主持开发的工程应用系统有:建设工程招投标信息处理系统、建设工程(土建、装饰、安装、市政、园林绿化、抗震加固、水利水电、电力、公路、邮电通信、煤炭)造价信息处理系统、建筑工程三维可视化算量软件、建设工程招投标企业信用信息系统、建筑工程监管信息系统、公共资源交易系统、重点项目(重点企业)动态监察系统、混凝土质量动态监管系统、大型建筑工地太阳能3G无线远程视频监控系统、大型流域和城市防洪预警会商系统、城市火灾预警和消防装备全生命周期管理系统、路灯景观灯照明控制系统等。其中基于Zigbee和 GPRS的路灯照明调光节能控制系统已在太原市滨河东路景观照明系统工程、太原市汾河公园照明工程、长风商务区景观照明工程、汾东商务区路灯照明工程、江苏宜兴团氿公园景观照明工程、山东曹县路灯照明工程、河南中牟县路灯照明工程中推广应用。
本书共13章,总学时为48学时,其中授课时间为40学时,实验练习时间为8学时。针对选修课、职业类教育删减第11章多线程、第13章APP示例内容即可,总学时为32学时。
本书由张军朝担任主编,制定本书大纲、进行内容安排并指导文字写作;段跃兴负责全书的组织工作;吕进来负责全书的统稿工作;王园宇负责本书所有源代码的调试工作;贾好来负责本书APP示例源代码编写。张军朝编写了第1、2、3章;段跃兴编写了第4、5章;吕进来编写了第6、7章;王园宇编写了第8、9章;赵荣香编写了第10章;吕丰德编写了11章,张江华编写了12章,贾好来编写了13章。本书由太原理工大学陈俊杰教授主审。
在本书的编写过程中得到了计算机专业教学指导委员会委员、太原理工大学陈俊杰教授,太原理工大学崔冬华教授,山西太原天地方圆电子科技有限公司赵荣香高工、吕丰德工程师、张江华工程师自始至终的支持和帮助;太原理工大学赵阳硕士、王青文硕士、陶亚男硕士在编写和校对过程中也做了大量的工作。在此一并致以衷心的感谢!
编者力求将实践和理论相结合,科研和教学相结合,工程和教学相结合,硬件和软件相结合,先进和实用相结合,编写出高质量、高水平的教材。但由于编者水平有限,书中错误和不当之处在所难免,敬请读者谅解和指正,联系邮箱:zhangjunchao@tyut.edu.cn。
张军朝
2016年1月1日 于 太原理工大学 国交楼
展开