《Android应用案例开发大全》书以讲解Android 手机综合应用程序开发为主题,通过11 个典型范例全面且深入地讲解了单机应用、网络应用、商业案例、游戏案例等多个开发技术。
全书共分12 章,详细介绍了3D 动态壁纸—百纳水族馆,LBS 类应用—掌上杭州,营销管理系统—手机汽车4S 店,LBS 交通软件—百纳公交小助手,校园服务类应用—社团宝,校园辅助软件—手机新生小助手,生活辅助类应用—美食天下,音乐休闲软件—百纳网络音乐播放器,中学教育AR应用—化学可视体验,益智类游戏—污水征服者,生活服务类应用—驾考宝典等Android 应用的开发技术。
本书以真实的项目开发为写作背景,具有很强的实用性和实战性。讲解上深入浅出、通俗易懂,既有Android 开发的实战技术和技巧,也包括真实项目的策划方案。本书非常适合初学者或有一定Android 基础并希望学习Android 高级开发技术的读者使用。
目录
- 第1章 初识庐山真面目——Android简介 1
- 1.1 Android的来龙去脉 1
- 1.2 掀起Android的盖头来 1
- 1.2.1 选择Android的理由 1
- 1.2.2 Android的应用程序框架 2
- 1.3 Android开发环境的搭建 4
- 1.3.1 Android Studio和Android SDK
- 的下载 4
- 1.3.2 Android Studio和Android SDK
- 的安装 5
- 1.3.3 第 一个Android程序 8
- 1.4 DDMS的灵活应用 13
- 1.4.1 初识DDMS 13
- 1.4.2 System.out.println方法 14
- 1.4.3 android.util.Log类 14
- 1.4.4 Devices的管理 15
- 1.4.5 模拟器控制(Emulator Control)
- 详解 17
- 1.4.6 File Explorer——SD Card
- 文件管理器 18
- 1.5 本书案例项目的导入 19
- 1.6 本章小结 20
- 第 2章 3D动态壁纸——百纳水族馆 21
- 2.1 背景及功能概述 21
- 2.1.1 项目背景 21
- 2.1.2 功能介绍 22
- 2.2 策划及准备工作 23
- 2.2.1 项目策划 24
- 2.2.2 Android平台下3D开发的
- 准备工作 24
- 2.2.3 百纳骨骼动画格式文件 25
- 2.3 整体介绍 25
- 2.4 项目的绘制 28
- 2.4.1 介绍壁纸服务类——
- OpenGLES3WallpaperService 29
- 2.4.2 自定义渲染器类——
- MySurfaceView 30
- 2.5 辅助绘制类 33
- 2.5.1 背景辅助绘制类——
- Background 34
- 2.5.2 气泡辅助绘制类——Bubble 35
- 2.5.3 鱼类辅助绘制类——BNModel 36
- 2.5.4 模型辅助绘制类——
- BnggdhDraw 37
- 2.6 绘制相关类 40
- 2.6.1 气泡绘制相关类 40
- 2.6.2 群鱼绘制相关类 42
- 2.6.3 鱼群绘制相关类 44
- 2.6.4 鱼食绘制相关类 46
- 2.7 线程相关类 48
- 2.7.1 气泡移动线程类——
- BubbleThread 48
- 2.7.2 群鱼游动线程类——
- FishGoThread 48
- 2.7.3 鱼群游动线程类——
- FishSchoolThread 49
- 2.7.4 鱼食移动线程类——
- FoodThread 51
- 2.7.5 吸引力线程类——
- AttractThread 52
- 2.7.6 线程组管理类——
- BNThreadGroup 54
- 2.8 着色器的开发 54
- 2.8.1 气泡的着色器 54
- 2.8.2 珍珠着色器 55
- 2.8.3 鱼类的着色器 57
- 2.9 优化与改进 58
- 第3章 LBS类应用——掌上杭州 59
- 3.1 应用背景及功能介绍 59
- 3.1.1 背景简介 59
- 3.1.2 功能概述 59
- 3.1.3 开发环境 60
- 3.2 功能预览及架构 60
- 3.2.1 加载、美食、医疗功能预览 60
- 3.2.2 购物、景点、娱乐功能预览 63
- 3.2.3 搜索、设置功能预览 67
- 3.2.4 项目目录结构 68
- 3.3 开发前的准备工作 69
- 3.3.1 信息的搜集 69
- 3.3.2 数据包的整理 72
- 3.3.3 XML资源文件的准备 72
- 3.4 辅助工具类的开发 74
- 3.4.1 常量类的开发 74
- 3.4.2 图片获取类的开发 74
- 3.4.3 解压文件类的开发 75
- 3.4.4 读取文件类的开发 76
- 3.4.5 自定义字体类的开发 76
- 3.5 辅助功能的实现 77
- 3.5.1 加载功能的实现 77
- 3.5.2 主界面的实现 80
- 3.5.3 百度地图的实现 82
- 3.6 美食模块的实现 86
- 3.6.1 美食主界面的实现 86
- 3.6.2 介绍美食的实现 88
- 3.7 景点功能开发 90
- 3.7.1 景点主界面的开发 91
- 3.7.2 当前景点界面的开发 95
- 3.7.3 所有景点界面的开发 96
- 3.7.4 新浪微博功能的开发 97
- 3.7.5 搜索兴趣点功能的开发 101
- 3.7.6 语言选择功能的开发 102
- 3.7.7 建议反馈界面的开发 103
- 3.8 其他模块的实现 104
- 3.8.1 娱乐、医疗、购物的实现 104
- 3.8.2 住宿版块的实现 106
- 3.8.3 搜索模块的实现 109
- 3.8.4 设置模块的实现 112
- 3.9 本章小结 113
- 第4章 营销管理系统——手机汽车4S店 114
- 4.1 系统背景及功能介绍 114
- 4.1.1 手机汽车4S店背景简介 114
- 4.1.2 手机汽车4S店功能概述 114
- 4.1.3 手机汽车4S店开发环境和
- 目标平台 116
- 4.2 开发前的准备工作 117
- 4.2.1 数据库设计 117
- 4.2.2 数据库表设计 118
- 4.2.3 使用Navicat for MySQL创建
- 表并插入初始数据 121
- 4.3 系统功能预览及总体架构 122
- 4.3.1 PC端预览 122
- 4.3.2 Android客户端功能预览 125
- 4.3.3 Android客户端项目目录
- 结构 126
- 4.4 PC端的界面搭建与功能实现 127
- 4.4.1 用户登录功能的开发 127
- 4.4.2 主管理界面功能的开发 129
- 4.4.3 汽车车型管理功能的开发 130
- 4.4.4 汽车新闻管理功能的开发 134
- 4.4.5 信息反馈管理功能的开发 136
- 4.5 服务器端的实现 137
- 4.5.1 常量类的开发 137
- 4.5.2 服务线程的开发 137
- 4.5.3 DB处理类的开发 139
- 4.5.4 图片处理类 140
- 4.4.5 辅助工具类 140
- 4.4.6 其他方法的开发 142
- 4.6 Android客户端的准备工作 142
- 4.6.1 图片资源的准备 142
- 4.6.2 XML资源文件的准备 143
- 4.7 加载界面功能模块的实现 144
- 4.8 Android客户端各功能模块的实现 147
- 4.8.1 汽车4S店主界面模块的
- 实现 147
- 4.8.2 汽车新闻模块的实现 150
- 4.8.3 汽车车型模块的实现 154
- 4.8.4 汽车文化模块的实现 158
- 4.8.5 汽车经销商模块的实现 159
- 4.8.6 汽车服务模块的实现 160
- 4.9 Android客户端与服务器连接的
- 实现 166
- 4.9.1 Android客户端与服务器
- 连接的各类功能 166
- 4.9.2 Android客户端与服务器
- 连接中各类功能的开发 167
- 4.9.3 其他方法的开发 168
- 4.10 本章小结 168
- 第5章 LBS交通软件——百纳公交小助手 170
- 5.1 系统背景及功能介绍 170
- 5.1.1 背景简介 170
- 5.1.2 模块与界面概览 170
- 5.1.3 开发环境 172
- 5.2 功能预览及框架 172
- 5.2.1 项目功能预览 172
- 5.2.2 项目目录结构 175
- 5.3 开发前的准备工作 177
- 5.3.1 数据库表的设计 177
- 5.3.2 百度地图键值的申请 178
- 5.3.3 百度地图的显示 179
- 5.3.4 XML资源文件的准备 180
- 5.4 辅助工具类的开发 182
- 5.4.1 常量类的开发 182
- 5.4.2 工具类的开发 183
- 5.4.3 换乘路径规划工具类的开发 184
- 5.4.4 定位和获取附近公交站
- 工具类的开发 185
- 5.5 各个功能模块的实现 186
- 5.5.1 选择城市界面模块的实现 186
- 5.5.2 主界面模块的实现 189
- 5.5.3 线路查询模块的实现 191
- 5.5.4 换乘方案查询模块的实现 200
- 5.5.5 定位附近站点模块的开发 208
- 5.6 本章小结 215
- 第6章 校园服务类应用——社团宝 216
- 6.1 应用背景及功能介绍 216
- 6.1.1 软件背景简介 216
- 6.1.2 软件功能概述 216
- 6.1.3 软件开发环境与目标平台 218
- 6.2 功能预览及架构 219
- 6.2.1 管理端功能预览 219
- 6.2.2 Android端功能预览 220
- 6.2.3 目录结构图 223
- 6.3 开发前的准备工作 224
- 6.3.1 数据库设计 224
- 6.3.2 数据库表设计 225
- 6.3.3 使用Navicat for MySQL创建
- 表并插入初始数据 228
- 6.4 服务器端的实现 229
- 6.4.1 常量类的开发 229
- 6.4.2 服务线程的开发 229
- 6.4.3 辅助工具类 231
- 6.4.4 其他方法的开发 232
- 6.5 管理端功能搭建及界面实现 233
- 6.5.1 用户登录功能的实现 233
- 6.5.2 主管理界面功能的开发 234
- 6.5.3 社团管理功能的开发 236
- 6.5.4 意见管理功能的开发 238
- 6.5.5 账号管理功能的开发 238
- 6.6 Android客户端各功能模板实现 240
- 6.6.1 整体框架的搭建 240
- 6.6.2 常量类的开发 244
- 6.6.3 自定义字体类的开发 244
- 6.6.4 启动界面功能的实现 245
- 6.6.5 调用系统浏览器 246
- 6.6.6 滚动加载功能的实现 247
- 6.6.7 Android端与服务器的连接 250
- 6.6.8 个人功能模块的实现 251
- 6.6.9 图片处理 256
- 6.6.10 Exit类的搭建 257
- 6.6.11 社团主界面的构建 258
- 6.6.12 活动主界面的构建 259
- 6.6.13 社交主界面的构建 261
- 6.6.14 社交功能的实现 262
- 6.7 本章小结 263
- 第7章 校园辅助软件——手机新生小助手 264
- 7.1 应用背景及功能介绍 264
- 7.1.1 新生小助手背景简介 264
- 7.1.2 新生小助手功能概述 264
- 7.1.3 新生小助手开发环境 265
- 7.2 功能预览及架构 265
- 7.2.1 新生小助手功能预览 266
- 7.2.2 新生小助手目录结构图 269
- 7.3 开发前的准备工作 271
- 7.3.1 文本信息的搜集 272
- 7.3.2 相关图片的采集 274
- 7.3.3 数据包的整理 276
- 7.3.4 XML资源文件的准备 277
- 7.4 辅助工具类的开发 278
- 7.4.1 常量类的开发 278
- 7.4.2 图片获取类的开发 278
- 7.4.3 解压文件类的开发 279
- 7.4.4 读取文件类的开发 280
- 7.4.5 自定义字体类的开发 280
- 7.4.6 平面图数据类的开发 281
- 7.5 加载功能模块的实现 286
- 7.6 各个功能模块的实现 289
- 7.6.1 新生小助手主界面模块的实现 289
- 7.6.2 认识联大模块的实现 291
- 7.6.3 报到流程模块的实现 304
- 7.6.4 校内导航模块的实现 305
- 7.6.5 唐山导航模块的实现 307
- 7.6.6 更多信息模块的实现 313
- 7.7 本章小结 314
- 第8章 生活辅助类应用——美食天下 315
- 8.1 系统的功能介绍 315
- 8.1.1 美食天下功能概述 315
- 8.1.2 应用开发环境和目标平台 317
- 8.2 开发前的准备工作 317
- 8.2.1 数据库设计 318
- 8.2.2 数据库表的设计 319
- 8.2.3 使用Navicat Lite for MySQL
- 创建新表并插入初始数据 324
- 8.3 系统功能预览及总体架构 325
- 8.3.1 PC端预览 325
- 8.3.2 Android客户端功能预览 328
- 8.3.3 Android客户端目录结构图 331
- 8.4 PC端的界面搭建与功能实现 332
- 8.4.1 用户登录功能的开发 332
- 8.4.2 主管理界面功能的开发 334
- 8.4.3 菜品添加功能的开发 335
- 8.4.4 菜品信息管理功能的开发 338
- 8.5 服务器端的实现 342
- 8.5.1 常量类的开发 342
- 8.5.2 服务线程的开发 343
- 8.5.3 DB处理类的开发 344
- 8.5.4 图片处理类 345
- 8.5.5 其他方法的开发 346
- 8.6 Android客户端的准备工作 346
- 8.6.1 图片资源的准备 346
- 8.6.2 XML资源文件的准备 347
- 8.6.3 本地数据库的准备 347
- 8.6.4 常量类的准备 350
- 8.7 Android定位功能的开发 350
- 8.7.1 创建应用以及百度地图SDK的
- 下载 350
- 8.7.2 手机定位功能的实现 353
- 8.8 Android客户端功能的实现 354
- 8.8.1 主界面的实现 354
- 8.8.2 查找菜品功能的实现 356
- 8.8.3 上传菜品功能的实现 362
- 8.8.4 菜品评论功能的实现 364
- 8.8.5 查看离线菜品和随拍功能的
- 实现 365
- 8.9 Android客户端与服务器连接的实现 367
- 8.9.1 Android客户端与服务器连接
- 中的各类功能 367
- 8.9.2 Android客户端与服务器连接
- 中各类功能的开发 368
- 8.9.3 其他方法的开发 371
- 8.10 本章小结 371
- 第9章 音乐休闲软件——百纳网络音乐
- 播放器 372
- 9.1 系统的功能介绍 372
- 9.1.1 百纳音乐播放器功能概述 372
- 9.1.2 百纳音乐播放器开发环境和
- 目标平台 373
- 9.2 开发前的准备工作 374
- 9.2.1 数据库表的设计 374
- 9.2.2 数据库表的创建 375
- 9.2.3 使用Navicat for MySQL创建
- 新表并插入初始数据 377
- 9.3 系统功能预览及总体架构 378
- 9.3.1 PC端预览 378
- 9.3.2 Android客户端功能预览 380
- 9.3.3 Android客户端目录结构图 382
- 9.4 PC端的界面搭建与功能实现 383
- 9.4.1 用户登录功能的开发 383
- 9.4.2 主管理界面功能的开发 385
- 9.4.3 歌手管理功能的开发 386
- 9.4.4 歌曲管理功能的开发 389
- 9.4.5 专辑的功能的开发 390
- 9.5 服务器端的实现 392
- 9.5.1 常量类的开发 392
- 9.5.2 服务线程的开发 392
- 9.5.3 DB处理类的开发 394
- 9.5.4 图片处理类 395
- 9.5.5 辅助工具类 395
- 9.5.6 其他方法的开发 397
- 9.6 Android客户端的准备工作 397
- 9.6.1 图片资源的准备 397
- 9.6.2 XML资源文件的准备 397
- 9.6.3 本地数据库的准备 398
- 9.6.4 常量类的准备 400
- 9.7 Android客户端基本构架的开发 400
- 9.7.1 音乐播放器的基本构架 400
- 9.7.2 音乐播放模块的开发 401
- 9.7.3 音乐切换模块的开发 404
- 9.8 Android客户端功能模块的实现 406
- 9.8.1 主界面的实现 406
- 9.8.2 扫描音乐的实现 408
- 9.8.3 音乐列表的实现 410
- 9.8.4 播放界面的实现 413
- 9.8.5 网络界面的实现 418
- 9.9 Android客户端与服务器连接的实现 419
- 9.9.1 Android客户端与服务器连接
- 中的各类功能 419
- 9.9.2 Android客户端与服务器连接
- 中各类功能的开发 419
- 9.9.3 其他方法的开发 421
- 9.10 本章小结 421
- 第 10章 中学教育AR应用——化学可视
- 体验 422
- 10.1 背景以及功能概述 422
- 10.1.1 开发背景概述 422
- 10.1.2 应用功能简介 423
- 10.2 应用的策划及准备工作 424
- 10.2.1 应用的策划 424
- 10.2.2 开发前的准备工作 425
- 10.2.3 资料卡片的结构及制作 428
- 10.2.4 Vuforia部分的配置 429
- 10.2.5 服务器端数据包简介 430
- 10.3 应用的架构 431
- 10.3.1 各个类的简要介绍 432
- 10.3.2 应用架构简介 434
- 10.4 Vuforia相关类 435
- 10.5 界面绘制类 443
- 10.5.1 界面控制类 443
- 10.5.2 单独界面类 445
- 10.6 线程类 459
- 10.7 工具类 462
- 10.7.1 下载工具类 462
- 10.7.2 读取txt和bitmap工具类 464
- 10.7.3 解压缩工具类 467
- 10.7.4 读取模型工具类 468
- 10.8 常量类 469
- 10.9 管理类 471
- 10.9.1 声音管理类 471
- 10.9.2 着色器管理类 472
- 10.9.3 图片管理类 473
- 10.10 应用中着色器的开发 475
- 10.10.1 绘制3D模型的着色器 475
- 10.10.2 绘制2D界面的着色器 476
- 10.10.3 绘制波浪矩形的着色器 477
- 10.11 应用的优化与改进 478
- 第 11章 益智类游戏——污水征服者 480
- 11.1 游戏背景及功能概述 480
- 11.1.1 背景概述 480
- 11.1.2 功能介绍 480
- 11.2 游戏的策划及准备工作 483
- 11.2.1 游戏的策划 483
- 11.2.2 安卓平台下游戏开发的
- 准备工作 483
- 11.3 游戏的架构 487
- 11.3.1 各个类的简要介绍 487
- 11.3.2 游戏框架简介 489
- 11.4 常量及公共类 491
- 11.4.1 游戏主控类WaterActivity 491
- 11.4.2 游戏常量类Constant 494
- 11.5 界面相关类 495
- 11.5.1 游戏界面管理类
- ViewManager 495
- 11.5.2 欢迎界面类
- BNWelcomeView 497
- 11.5.3 选关界面类BNSelectView 500
- 11.5.4 主菜单界面类
- BNMenuView 505
- 11.5.5 游戏界面类BNGameView2 507
- 11.5.6 纹理矩形绘制类
- RectForDraw 519
- 11.5.7 地图数据结构相关类 521
- 11.5.8 屏幕自适应相关类 522
- 11.6 线程相关类 524
- 11.6.1 计算缓冲线程类
- CalculateFloatBufferThread 524
- 11.6.2 物理刷帧线程类
- UpdateThread 525
- 11.6.3 火焰线程类
- FireUpdateThread 527
- 11.7 水粒子计算相关类 528
- 11.7.1 单个水粒子类Particle 528
- 11.7.2 单个网格节点类Node 529
- 11.7.3 物理计算类PhyCaulate 529
- 11.8 游戏中着色器的开发 532
- 11.8.1 纹理的着色器 533
- 11.8.2 图像渐变的着色器 533
- 11.8.3 水纹理的着色器 534
- 11.8.4 加载界面闪屏纹理的
- 着色器 534
- 11.8.5 胜利失败对话框的纹理
- 着色器 535
- 11.8.6 烟火的纹理着色器 535
- 11.9 游戏地图数据文件介绍 536
- 11.10 游戏的优化及改进 537
- 第 12章 生活服务类应用——驾考宝典 538
- 12.1 应用背景及功能介绍 538
- 12.1.1 驾考宝典背景简介 538
- 12.1.2 驾考宝典功能概述 539
- 12.1.3 开发环境与目标平台 541
- 12.2 功能预览及架构 542
- 12.2.1 安卓端功能预览 542
- 12.2.2 PC端功能预览 546
- 12.2.3 目录结构图 549
- 12.3 开发前的准备工作 549
- 12.3.1 数据库设计 549
- 12.3.2 数据库表设计 551
- 12.3.3 使用Navicat for MySQL
- 创建表并插入初始数据 552
- 12.4 服务器端的实现 553
- 12.4.1 常量类的开发 553
- 12.4.2 服务线程的开发 554
- 12.4.3 DB处理类的开发 555
- 12.4.4 图片处理类 556
- 12.4.5 辅助工具类 557
- 12.4.6 其他方法的开发 560
- 12.5 PC端功能搭建及界面实现 560
- 12.5.1 用户登录功能的实现 560
- 12.5.2 主管理界面功能的开发 561
- 12.5.3 管理员信息及其他类型信息的开发 563
- 12.5.4 试题管理功能的开发 564
- 12.5.5 论坛管理功能的开发 566
- 12.6 Android客户端各功能模板实现 566
- 12.6.1 整体框架的搭建 566
- 12.6.2 常量类的开发 569
- 12.6.3 侧滑界面的实现 569
- 12.6.4 调用系统浏览器 571
- 12.6.5 启动界面功能的实现 572
- 12.6.6 定位功能的实现 573
- 12.6.7 返回键的监听 574
- 12.6.8 选车界面的实现 575
- 12.6.9 选驾校界面的实现 576
- 12.6.10 Android端与服务器的
- 连接 577
- 12.6.11 答题界面模块的实现 578
- 12.6.12 考试记录等功能的实现 582
- 12.6.13 车友圈模块的实现 584
- 12.6.14 个人中心模块的实现 587
- 12.7 本章小结 592