具体描述
本书是国内第一本同时讲述Android客户端开发和PHP服务端开发的经典著作。
本书以一个完整的微博应用项目实例为主线,由浅入深地讲解了Android客户端开发和PHP服务端开发的思路和技巧。从前期的产品设计、架构设计,到客户端和服务端的编码实现,再到性能测试和系统优化,以及最后的打包发布,完整地介绍了移动互联网应用开发的过程。同时,本书也介绍了Android系统中比较有特色的功能,比如Google地图、LBS功能、传感器、摄像头、多媒体以及语音功能的使用等。此外,本书还介绍了Android NDK的开发以及Android游戏开发的相关内容,包括OpenGL的使用、流行游戏引擎Cocos2d-x和Unity 3D。
本书适合于所有对Android和PHP技术有兴趣的读者。不管是客户端还是服务端的开发者,都可以从本书中获得不少有用的经验。另外,值得一提的是,全书绝大部分的实例代码均源自于真实项目,参考价值极高。
作者简介
黄隽实,国内顶级架构师,CSDN技术博客专家,具有多年大型互联网应用架构经验,通晓多门编程语言及相关技术,对Android平台和PHP语言有深入研究,近 期专注于移动互联网领域的发展。参与的大型项目有:盛大手机游戏平台、ValueClick广告站群、EsteeLauder国际站群、Ihush特卖平台等。
目录信息
第一篇 准 备 篇
第1章 学前必读 1
1.1 移动互联网时代的来临 1
1.2 为何选择Android和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.7 通知接口 189
6.8 Web版接口 192
6.8.1 Web版UI界面(jQuery Mobile) 193
6.8.2 Web版地图接口 195
6.9 小结 196
第7章 客户端开发 198
7.1 开发入门 198
7.1.1 开发思路梳理 198
7.1.2 掌握应用配置文件 200
7.1.3 常规程序开发与调试 211
7.2 界面布局和行为控制 221
7.2.1 使用Layout布局 221
7.2.2 使用Merge整合界面 224
7.2.3 使用Event控制用户行为 226
7.2.4 使用Intent控制界面切换 228
7.3 网络通信模块 231
7.3.1 使用HttpClient进行网络通信 231
7.3.2 支持CMWAP网络接入方式 237
7.3.3 使用JSON库为消息解码 240
7.3.4 使用Toast消息提示 245
7.4 异步任务模块 247
7.4.1 进程和线程 247
7.4.2 任务创建Thread 249
7.4.3 任务处理Handler 255
7.4.4 使用异步任务AsyncTask 257
7.5 全局功能模块 259
7.5.1 全局UI基类 259
7.5.2 全局Menu菜单 264
7.5.3 全局Dialog窗口 265
7.5.4 使用Service获取通知 266
7.5.5 使用Notification显示通知 270
7.6 用户登录界面 273
7.6.1 界面程序逻辑 273
7.6.2 使用TextView 273
7.6.3 使用EditText 274
7.6.4 使用Button 276
7.6.5 使用Shape和Selector 277
7.6.6 使用CheckBox 279
7.6.7 使用SharedPreference 280
7.7 微博列表界面 281
7.7.1 界面程序逻辑 281
7.7.2 使用ListView 286
7.7.3 使用ImageView 290
7.7.4 使用draw9patch 292
7.7.5 异步获取远程图片 294
7.7.6 使用SdCard缓存图片 297
7.7.7 使用SQLite缓存数据 300
7.8 我的微博列表 303
7.8.1 界面程序逻辑 303
7.8.2 使用ScrollView 309
7.8.3 使用自定义微博列表 310
7.9 微博文章界面 313
7.9.1 界面程序逻辑 313
7.9.2 界面布局进阶(综合使用UI控件) 319
7.9.3 发表评论功能实现 322
7.9.4 发表微博功能实现 326
7.10 用户配置界面 328
7.10.1 界面程序逻辑 328
7.10.2 使用自定义选项列表 333
7.10.3 修改签名功能实现 334
7.10.4 更换头像功能实现 334
7.11 网页界面开发 340
7.11.1 界面程序逻辑 340
7.11.2 使用WebView 341
7.11.3 使用ProgressDialog 343
7.11.4 使用WebView的重写和回调 346
7.11.5 网页地图实例分析 348
7.12 小结 349
第三篇 优 化 篇
第8章 性能分析 351
8.1 关于性能测试 351
8.1.1 服务端压力测试 352
8.1.2 客户端性能测试 359
8.2 瓶颈 364
8.2.1 服务端瓶颈分析 365
8.2.2 客户端瓶颈分析 366
8.3 优化的思路 366
8.4 小结 367
第9章 服务端优化 368
9.1 优化PHP程序 368
9.1.1 优化PHP代码 368
9.1.2 优化Session机制 371
9.1.3 使用缓存中间件 373
9.1.4 使用APC加速 376
9.2 优化数据传输 377
9.2.1 优化JSON协议 377
9.2.2 使用gzip压缩 379
9.3 其他优化 380
9.3.1 服务器优化 380
9.3.2 数据库优化 383
9.3.3 网络优化 386
9.4 小结 386
第10章 客户端优化 387
10.1 优化Android程序 387
10.1.1 优化Java代码 387
10.1.2 异步获取数据 391
10.1.3 文件资源缓存 391
10.1.4 数据库缓存 392
10.2 避免内存泄露 392
10.2.1 Android内存管理 392
10.2.2 如何判断内存泄露 393
10.2.3 常见内存泄露的处理 395
10.3 优化Android UI 396
10.3.1 模板代码优化 396
10.3.2 关于布局优化 397
10.3.3 使用Hierarchy Viewer工具 402
10.4 其他优化 403
10.4.1 优化图片 403
10.4.2 优化APK包 403
10.4.3 使用keytool和jarsigner签名 404
10.4.4 使用zipalign优化 407
10.5 小结 408
第四篇 进 阶 篇
第11章 Android特色功能开发 409
11.1 使用Google Map API 409
11.2 使用LBS功能 414
11.3 使用传感器 419
11.4 使用摄像头 422
11.5 多媒体开发 431
11.6 语音识别 439
11.7 小结 441
第12章 Android NDK开发 442
12.1 NDK开发基础 442
12.1.1 使用NDK的原因 442
12.1.2 使用NDK调用C或C++ 443
12.1.3 Android.mk和Application.mk 445
12.2 NDK开发入门 448
12.2.1 开发环境搭建 448
12.2.2 首个NDK项目 449
12.3 小结 456
第13章 Android游戏开发 457
13.1 手游开发基础 457
13.1.1 手游开发思路解析 457
13.1.2 贪食蛇和飞船游戏实例 462
13.1.3 认识Android游戏引擎 464
13.1.4 使用OpenGL和OpenGL ES 466
13.1.5 使用RenderScript 472
13.2 手游开发进阶 474
13.2.1 认识Cocos2d-x 475
13.2.2 架设Cocos2d-x开发环境 475
13.2.3 首个Cocos2d-x项目 475
13.2.4 认识Unity 3D 487
13.3 小结 489
附录A Hush Framework框架实例源码部署 490
附录B 微博应用实例源码部署 495
· · · · · · (收起)
读后感
目前刚好读完【准备篇】的1~3章,当初是冲着“Android结合PHP开发微博”这个购入的。 首先说一下知识背景,本人的工作是PHP开发(才开始工作),兴趣是Android开发,然后做过一些Android应用和游戏。然后才买的这本书。 读完这3章,觉得第2章介绍Android的知识和第3章介绍PHP的...
目前刚好读完【准备篇】的1~3章,当初是冲着“Android结合PHP开发微博”这个购入的。 首先说一下知识背景,本人的工作是PHP开发(才开始工作),兴趣是Android开发,然后做过一些Android应用和游戏。然后才买的这本书。 读完这3章,觉得第2章介绍Android的知识和第3章介绍PHP的...
目前刚好读完【准备篇】的1~3章,当初是冲着“Android结合PHP开发微博”这个购入的。 首先说一下知识背景,本人的工作是PHP开发(才开始工作),兴趣是Android开发,然后做过一些Android应用和游戏。然后才买的这本书。 读完这3章,觉得第2章介绍Android的知识和第3章介绍PHP的...
目前刚好读完【准备篇】的1~3章,当初是冲着“Android结合PHP开发微博”这个购入的。 首先说一下知识背景,本人的工作是PHP开发(才开始工作),兴趣是Android开发,然后做过一些Android应用和游戏。然后才买的这本书。 读完这3章,觉得第2章介绍Android的知识和第3章介绍PHP的...
目前刚好读完【准备篇】的1~3章,当初是冲着“Android结合PHP开发微博”这个购入的。 首先说一下知识背景,本人的工作是PHP开发(才开始工作),兴趣是Android开发,然后做过一些Android应用和游戏。然后才买的这本书。 读完这3章,觉得第2章介绍Android的知识和第3章介绍PHP的...
用户评价
更让我感到惊喜的是,作者对DevOps和自动化部署流程的整合性思考。在现代软件开发中,纯粹的编码能力已经不足以构成核心竞争力,如何实现快速、可靠、自动化的部署,才是衡量一个项目成熟度的重要标志。本书在这方面给出了非常前瞻性的指导。它不仅介绍了如何使用Jenkins或GitLab CI/CD来自动化编译和测试流程,更深入地探讨了如何将移动端的版本灰度发布策略与后端的微服务更新解耦,从而降低整体发布的风险。作者强调了“一致性环境”的重要性,并提供了一套模板化的配置文件和脚本示例,让原本看起来复杂无比的CI/CD流程变得触手可及。这种将前端、后端、测试和运维融为一体的“全栈思维”训练,让这本书的价值超越了单一的技术栈范畴,真正体现了对现代软件工程全貌的深刻理解。读完后,感觉自己对整个产品生命周期都有了更清晰的掌控感。
这本书的装帧设计真是让人眼前一亮,封面那深邃的蓝色调,配上简洁有力的银色字体,透着一股专业和沉稳的气息。光是捧在手里,就能感受到它分量十足的内涵。我一直对移动应用开发领域抱有浓厚的兴趣,尤其是在寻找如何将前端的用户体验与后端稳定高效的数据处理完美结合的途径。市面上关于单一技术的书籍汗牛充栋,但真正能深入剖析跨平台协作和架构选择的,却是凤毛麟角。这本书的排版也做得极其考究,代码块的字体大小和行间距都经过精心调整,即便是长时间阅读也不会感到视觉疲劳。我特别欣赏作者在章节过渡时使用的那些小插图和图表,它们总能精准地提炼出复杂概念的核心逻辑,让那些晦涩的技术点变得一目了然。这不仅仅是一本技术手册,更像是一本精心策划的艺术品,每一个细节都体现了对读者体验的尊重。从第一章导论开始,我就感觉到作者的用心,那种对“最佳实践”的执着追求,绝不是停留在理论层面,而是饱含着无数项目实战的经验沉淀。
我是一个对技术细节有强迫症的人,尤其关注代码的性能优化和可维护性。这本书在这方面的阐述简直是酣畅淋漓。它没有将性能优化视为一个孤立的环节,而是将其融入到整个开发生命周期的始终。比如,在讨论数据持久化策略时,作者不仅对比了SQLite、Realm以及NoSQL方案的优劣,更重要的是,他给出了在特定并发场景下,如何调整数据库事务处理级别以最大限度减少I/O阻塞的实战建议。接着,在谈到后端API设计时,那种对RESTful规范的精准把握,以及如何利用GraphQL的优势来避免移动端过度获取数据的“瀑布式请求”陷阱,都让我茅塞顿开。这些章节的逻辑层层递进,从宏观的架构选择,到微观的函数调用优化,形成了一个完整的优化闭环。对于希望将自己的应用推向千万级用户的工程师来说,这本书提供的洞察力是无价之宝,它教会你如何“聪明地”写代码,而不是仅仅“写出能跑起来的”代码。
坦白说,我挑选这本书时是带着一丝怀疑的,因为“最佳实践”这四个字在技术圈里常常被过度使用,很多时候只是换汤不换药的表面文章。然而,深入阅读后,我发现自己错得离谱。作者对安全性的探讨,简直是教科书级别的深度。他没有仅仅停留在那些老生常谈的输入验证上,而是深入挖掘了移动端与Web API交互过程中特有的一些安全盲区,比如对Token生命周期的管理、数据传输加密的最佳握手方式,以及如何构建一套健壮的防重放攻击机制。这些内容,对于那些在产品上线后才开始考虑安全加固的团队来说,无疑是及时雨。更让我印象深刻的是,作者在论述每一种技术选型时,都会提供一个非常清晰的决策树模型,帮助开发者根据自身的项目规模、团队能力和目标用户群来权衡利弊。这种不偏不倚、以解决实际问题为导向的叙述方式,极大地提升了阅读体验和知识的实用价值。
这本书的叙事风格非常独特,它没有采用那种高高在上的专家口吻,反而更像是一位经验丰富的资深工程师,拉着你一起在深夜的办公室里,一边喝着咖啡,一边分享他踩过的那些深坑和最终领悟的真谛。书中很多地方都穿插了作者当年在某个重大项目上遇到的棘手问题,以及他是如何运用一套系统性的思维去拆解、定位并最终解决的。比如,关于异步任务调度和后台处理的设计部分,作者详细描述了如何在高版本的Android系统中有效利用WorkManager,同时兼顾到跨端数据一致性的挑战,这种基于真实场景的教学方法,极大地增强了知识的代入感和记忆点。我发现自己阅读的速度虽然不慢,但吸收的效率却非常高,因为每一个知识点后面都有一个鲜活的案例作为支撑,这使得理论不再是空中楼阁,而是可以立即应用到我当前工作中的工具箱。
前期看了mars的讲解视频,然后从github下载了一个成型的开源软件捣鼓一阵,再看这本解析的书。。。还不错。。
一般吧,读到第七章以后不想看了,明天去换一本。
电子书
一般吧,读到第七章以后不想看了,明天去换一本。
电子书