内容简介
本书是国内一本同时讲述Android客户端和PHP服务端开发的经典著作。本书以一个完整的微博应用项目实例为主线,由浅入深地讲解了Android客户端开发和PHP服务端开发的思路和技巧。从前期的产品设计、架构设计,到客户端和服务端的编码实现,再到性能测试和系统优化,以及最后的打包发布,完整地介绍了移动互联网应用开发的过程。同时,本书也介绍了Android系统中比较有特色的功能,比如Google地图、LBS功能、传感器、摄像头、多媒体以及语音功能的使用等。此外,书中还介绍了AndroidNDK的开发以及Android游戏开发的相关内容,包括OpenGL的使用、流行游戏引擎Cocos2d-x和Unity3D。
目录
前言
第一篇 准 备 篇
第1章 学前必读 1
1.1 移动互联网时代的来临 1
1.2 为何选择Android和PHP 2
1.2.1 Android平台的优势 2
1.2.2 PHP语言的优势 2
1.3 如何学习Android和PHP 3
1.3.1 如何学习Android 3
1.3.2 如何学习PHP 4
1.3.3 同时学好Android和PHP 4
1.4 小结 5
第2章 Android开发准备 6
2.1 Android背景知识 6
2.2 Android系统框架 8
2.3 Android应用框架 11
2.3.1 活动(Activity) 12
2.3.2 消息(Intent) 14
2.3.3 视图(View) 16
2.3.4 任务(Task) 17
2.4 Android系统四大组件 19
2.4.1 活动(Activity) 20
2.4.2 服务(Service) 21
2.4.3 广播接收器(Broadcast Receiver) 23
2.4.4 内容提供者(Content Provider) 24
2.5 Android上下文 25
2.5.1 界面上下文(Activity Context) 25
2.5.2 应用上下文(Application Context) 27
2.6 Android数据存储 28
2.6.1 应用配置(Shared Preferences) 28
2.6.2 本地文件(Files) 29
2.6.3 数据库(SQLite) 30
2.7 Android应用界面 31
2.7.1 控件属性 31
2.7.2 布局(Layout) 33
2.7.3 事件(Event) 37
2.7.4 菜单(Menu) 39
2.7.5 主题(Theme) 41
2.7.6 对话框(Dialog) 42
2.8 Android图形界面 43
2.8.1 画笔(Paint) 43
2.8.2 画布(Canvas) 44
2.8.3 基础几何图形 46
2.8.4 常见图形变换 47
2.9 Android动画效果 50
2.9.1 逐帧动画(Frame Animation) 50
2.9.2 补间动画(Tween Animation) 51
2.10 Android开发环境 52
2.10.1 开发环境的搭建 53
2.10.2 首个Android项目 58
2.10.3 使用DDMS调试工具 63
2.11 小结 64
第3章 PHP开发准备 65
3.1 PHP开发基础 65
3.1.1 PHP语言简介 65
3.1.2 PHP语法简介 66
3.1.3 PHP开发起步 68
3.1.4 PHP面向对象编程 75
3.1.5 PHP的会话 78
3.2 PHP开发环境 80
3.2.1 开发环境的搭建 80
3.2.2 安装配置Xampp 81
3.2.3 管理Apache 83
3.2.4 管理MySQL 84
3.3 使用JSON通信 87
3.4 常用PHP开发框架 88
3.5 认识Smarty模板引擎 90
3.6 开发框架简介 93
3.6.1 框架的特点和优势 94
3.6.2 框架的基础目录结构 94
3.6.3 框架MVC思路讲解 97
3.6.4 框架MVC实例分析 99
3.7 小结 108
第二篇 实 战 篇
第4章 实例产品设计 109
4.1 为何选择微博 109
4.2 开发前的准备 110
4.2.1 选择开发模式 110
4.2.2 了解项目策划 111
4.2.3 了解原型设计 112
4.3 功能模块设计 112
4.4 应用界面设计 114
4.5 应用架构设计 115
4.6 通信协议定义 116
4.7 数据库结构设计 118
4.8 小结 120
第5章 程序架构设计 121
5.1 服务端程序架构设计 121
5.1.1 基础框架设计 122
5.1.2 调试框架设计 127
5.1.3 核心类库设计 130
5.1.4 服务端的MVC与SOA 136
5.2 客户端程序架构设计 136
5.2.1 基础框架设计 137
5.2.2 核心类包设计 138
5.2.3 Android应用的MVC 142
5.3 客户端界面架构设计 142
5.3.1 界面框架设计 143
5.3.2 主要界面设计 144
5.4 小结 146
第6章 服务端开发 147
6.1 开发入门 147
6.1.1 接口程序开发 147
6.1.2 调试框架开发 151
6.1.3 生成接口文档 155
6.2 验证接口 156
6.2.1 用户登录接口 156
6.2.2 用户登出接口 160
6.3 用户接口 162
6.3.1 新建用户接口 162
6.3.2 更新用户信息接口 164
6.3.3 查看用户信息接口 165
6.3.4 添加粉丝接口 167
6.3.5 删除粉丝接口 171
6.4 微博接口 172
6.4.1 发表微博接口 172
6.4.2 查看微博接口 174
6.4.3 微博列表接口 176
6.5 评论接口 180
6.5.1 发表评论接口 180
6.5.2 评论列表接口 182
6.6 图片接口 184
6.6.1 用户头像接口 185
6.6.2 头像列表接口 188
6.6.3 图片上传接口 189
6.7 通知接口 192
6.8 Web版接口 195
6.8.1 Web版UI界面(jQuery Mobile) 196
6.8.2 Web版地图接口 198
6.9 小结 199
第7章 客户端开发 201
7.1 开发入门 201
7.1.1 开发思路梳理 201
7.1.2 掌握应用配置文件 203
7.1.3 常规程序开发与调试 214
7.2 界面布局和行为控制 224
7.2.1 使用Layout布局 224
7.2.2 使用Merge整合界面 227
7.2.3 使用Event控制用户行为 229
7.2.4 使用Intent控制界面切换 231
7.3 网络通信模块 234
7.3.1 使用HttpClient进行网络通信 234
7.3.2 支持CMWAP网络接入方式 240
7.3.3 使用JSON库为消息解码 243
7.3.4 使用Toast消息提示 248
7.4 异步任务模块 250
7.4.1 进程和线程 250
7.4.2 任务创建Thread 252
7.4.3 任务处理Handler 258
7.4.4 使用异步任务AsyncTask 260
7.5 全局功能模块 262
7.5.1 全局UI基类 262
7.5.2 全局Menu菜单 267
7.5.3 全局Dialog窗口 268
7.5.4 使用Service获取通知 269
7.5.5 使用Notification显示通知 273
7.6 用户登录界面 276
7.6.1 界面程序逻辑 276
7.6.2 使用TextView 276
7.6.3 使用EditText 277
7.6.4 使用Button 279
7.6.5 使用Shape和Selector 280
7.6.6 使用CheckBox 282
7.6.7 使用SharedPreference 283
7.7 微博列表界面 284
7.7.1 界面程序逻辑 284
7.7.2 使用ListView 289
7.7.3 使用ImageView 293
7.7.4 使用draw9patch 295
7.7.5 异步获取远程图片 297
7.7.6 使用SdCard缓存图片 300
7.7.7 使用SQLite缓存数据 303
7.8 我的微博列表 306
7.8.1 界面程序逻辑 306
7.8.2 使用ScrollView 312
7.8.3 使用自定义微博列表 313
7.9 微博文章界面 316
7.9.1 界面程序逻辑 316
7.9.2 界面布局进阶(综合使用UI控件) 322
7.9.3 发表评论功能实现 325
7.9.4 发表微博功能实现 329
7.9.5 图片微博功能实现 331
7.10 用户配置界面 341
7.10.1 界面程序逻辑 341
7.10.2 使用自定义选项列表 346
7.10.3 修改签名功能实现 347
7.10.4 更换头像功能实现 348
7.11 网页界面开发 353
7.11.1 界面程序逻辑 353
7.11.2 使用WebView 354
7.11.3 使用ProgressDialog 356
7.11.4 使用WebView的重写和回调 359
7.11.5 网页地图实例分析 361
7.12 小结 362
第三篇 优 化 篇
第8章 性能分析 365
8.1 关于性能测试 365
8.1.1 服务端压力测试 366
8.1.2 客户端性能测试 373
8.2 瓶颈 378
8.2.1 服务端瓶颈分析 379
8.2.2 客户端瓶颈分析 380
8.3 优化的思路 380
8.4 小结 381
第9章 服务端优化 382
9.1 优化PHP程序 382
9.1.1 优化PHP代码 382
9.1.2 优化Session机制 385
9.1.3 使用缓存中间件 387
9.1.4 使用APC加速 390
9.2 优化数据传输 391
9.2.1 优化JSON协议 391
9.2.2 使用gzip压缩 393
9.3 其他优化 394
9.3.1 服务器优化 394
9.3.2 数据库优化 397
9.3.3 网络优化 400
9.4 小结 400
第10章 客户端优化 401
10.1 优化Android程序 401
10.1.1 优化Java代码 401
10.1.2 异步获取数据 405
10.1.3 文件资源缓存 405
10.1.4 数据库缓存 406
10.2 避免内存泄露 406
10.2.1 Android内存管理 406
10.2.2 如何判断内存泄露 407
10.2.3 常见内存泄露的处理 409
10.3 优化Android UI 410
10.3.1 模板代码优化 410
10.3.2 关于布局优化 411
10.3.3 使用Hierarchy Viewer工具 416
10.4 其他优化 417
10.4.1 优化图片 417
10.4.2 优化APK包 417
10.4.3 使用keytool和jarsigner签名 418
10.4.4 使用zipalign优化 421
10.5 小结 422
第四篇 进 阶 篇
第11章 Android特色功能开发 423
11.1 使用Google Map API 423
11.2 使用LBS功能 428
11.3 使用传感器 433
11.4 使用摄像头 436
11.5 多媒体开发 445
11.6 语音识别 453
11.7 小结 455
第12章 Android NDK开发 456
12.1 NDK开发基础 456
12.1.1 使用NDK的原因 456
12.1.2 使用NDK调用C或C++ 457
12.1.3 Android.mk和Application.mk 459
12.2 NDK开发入门 462
12.2.1 开发环境搭建 462
12.2.2 首个NDK项目 463
12.3 小结 470
第13章 Android游戏开发 471
13.1 手游开发基础 471
13.1.1 手游开发思路解析 471
13.1.2 贪食蛇和飞船游戏实例 476
13.1.3 认识Android游戏引擎 478
13.1.4 使用OpenGL和OpenGL ES 480
13.1.5 使用RenderScript 486
13.2 手游开发进阶 488
13.2.1 认识Cocos2d-x 489
13.2.2 架设Cocos2d-x开发环境 489
13.2.3 首个Cocos2d-x项目 489
13.2.4 认识Unity 3D 501
13.3 小结 503
附录A Hush Framework框架实例源码部署 504
附录B 微博应用实例源码部署 509
前言/序言
2015年,移动互联网革命已经到了白热化的阶段,一个充满机遇的巨大市场已经开启,全球无数的行业精英都已投身其中,书写出不少令人瞩目的传奇事迹;对于我们普通的开发者来说,则更需要做好准备,迎接随时可能到来的机遇和挑战。Android和PHP,作为目前移动互联网领域中最热门的两门技术,早已受到广大开发者们的关注。
本书是目前市面上唯一一本同时讲述Android客户端开发和PHP服务端开发两方面内容,并且能把Android和PHP技术相结合的移动应用开发方案分析透彻的书籍。通过本书,你不仅可以学习到Android客户端开发技巧,同时还可以掌握PHP服务端开发的精华,甚至还可以开拓你进行软件架构的思路。选择了本书,你就真正找到了一条能够精通“Android客户端和PHP服务端开发”的捷径!
本书的写作风格大众化,注重实用性,章节精心编排,讲解由浅入深,力求让读者能够在最快的时间内上手,同时也可以拓宽读者在移动互联网应用开发方面的思路。特别要指出的是,本书的代码实例都源自真实的项目,实用价值极高。此外,书中很多内容都融合了笔者多年来在互联网软件架构方面的经验。总而言之,本书绝对是一本不可多得的经典之作!
如何使用本书在开始阅读本书之前,请您先阅读以下内容,以确保能最快地了解本书的思路和结构,并快速地找到最适合自己的阅读方式。考虑到实用性,也为了让思路更清晰,本书独创性地采用了“项目跟进式”的结构,以具有代表性的“微博应用”实例项目为主线,贯穿始终。全书内容分为四大部分:准备篇、实战篇、优化篇、进阶篇,简介如下。
? 准备篇:本篇主要介绍Android和PHP开发中需要用到的基础概念与用法,为后面的“实战篇”做准备。不管做什么事情,打好基础是至关重要的,所以笔者建议大家好好阅读本篇内容。
? 实战篇:在本篇中,我们将带领您逐步完成一个完整的“微博应用”项目,从前期的产品设计、架构设计,到服务端和客户端的编码,直至最后的大功告成,整个过程一气呵成,让读者感觉仿佛亲身参与到这个项目中,以达到最好的学习效果。
? 优化篇:系统优化已经成为当代软件开发过程中至关重要的一个环节。在本篇中,读者将学到一些从实际项目中总结出的非常实用的优化经验和技巧;如果您想更深入地学习使用Android平台和PHP语言,绝不能错过本篇。
? 进阶篇:本篇包含一些Android开发中的进阶内容,主要包括Android NDK和Android游戏开发相关的入门知识。此外,本篇内容还涉及OpenGL、RenderScript相关的高级用法,以及包括Cocos2d-x和Unity 3D在内的主流游戏引擎的相关知识,适合希望进一步学习的读者阅读。
本书共13章,每章的主要内容见下面的“章节简介”,方便读者快速查找感兴趣的部分。
章节简介第1章 学前必读本章的主要目的是让读者对移动互联网应用开发有一个比较清晰的认识,同时讲清楚选择Android加PHP这套解决方案的原因,并向读者介绍在学习过程中所要使用的正确的学习方法和思路。
第2章 Android开发准备本章内容包含了对Android系统框架、Android应用程序框架、Android图形界面系统以及Android常见开发思路的介绍。另外,通过本章的学习,读者还将学会如何安装和使用Android的开发环境和必备工具(Eclipse和ADT),并学会创建自己的第一个Android项目(Hello World项目),由此开始您的Android开发之旅。
第3章 PHP开发准备通过本章的学习,您将快速地学会如何使用PHP进行服务端开发,如果您已经有一定的服务端开发基础,学习起来会更加轻松。当然,本章也包括PHP开发环境(Xampp)的架设和一些其他配套服务端组件(Apache和MySQL)的基础管理。最后,本章还重点介绍了一个基于Zend Framework和Smarty的PHP开发框架:Hush Framework,本书实例的服务端正是采用这个框架进行开发的。
第4章 实例产品设计从这一章开始,我们将动手完成一个完整的移动互联网项目,即“微博应用”实例的项目。本章所讲的主要是项目的前期工作,包括功能模块设计以及一些项目策划的内容。当然,如果您是项目管理人员,可能会比开发者们对本章更感兴趣,里面所涉及的一些设计方法和思路,均是很实用的经验。
第5章 程序架构设计本章应该算是本书的核心章节之一,这里我们将对“微博应用”项目实例的服务端以及客户端的整体代码框架进行深入的剖析。由于架构设计是整个项目的基础,所以如果您要继续往下学习,就必须把这里的思路都理清楚。如果您善于思考,应该能从本章学习到不少Android和PHP应用架构的精髓。
第6章 服务端开发本章也是本书的重点章节之一,这里我们将在第5章的服务端架构基础上展开,分析和讲解实例服务端的代码逻辑和写法,带领您进一步深入认识PHP服务端开发的方法。读者可以将本章的部分章节内容和第7章的部分章节内容进行对照阅读,这样对理解移动互联网应用的开发思路会很有帮助。
第7章 客户端开发本章也是本书的重点章节之一,在本章中你可以逐步学习Android应用开发的实用技巧,以及如何在客户端与服务器之间进行通信(包括图片的上传和展示)。通过对本章的学习,读者不仅能学会如何正确地使用这些开发技巧,更重要的是还能掌握如何把这些技巧运用到实际项目中去,这是完全不同的两个境界,也正是本书最宝贵、最特别的地方,希望大家能好好阅读和体会。
第8章 性能分析有过项目实战经验的朋友应该都知道,其实在编码阶段完成之后,项目最多也才进行了一半,后面还有很多的事情需要我们来做,而性能测试和优化就是其中非常重要的一个环节,本章我们将对性能分析的相关内容进行详细介绍。另外,在本章中,读者也可以学到一些非常实用的优化思路和经验。
第9章 服务端优
Android和PHP开发最佳实践(第2版) 电子书 下载 mobi epub pdf txt