Android和PHP开发最佳实践(第2版)
上QQ阅读APP看书,第一时间看更新

前言

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章 服务端优化

根据第8章中总结的优化思路,本章将教会读者如何对PHP服务端的各个组成部分实施优化策略,着重介绍了PHP代码优化、JSON协议优化,以及HTTP服务器和MySQL数据库优化相关的内容,相信这些经验在深入学习PHP服务端开发的过程中会起到非常大的作用。

第10章 客户端优化

在本章中,您将学到许多有用的Android开发中的优化思路和方法。本章重点介绍了Android程序优化、Android UI优化、图片优化,以及与避免内存泄露相关的内容,这些经验对能否写出一个高质量的Android应用来说是非常重要的。

第11章 Android特色功能开发

本章主要介绍一些与Android系统提供的特色功能开发相关的知识,比如Google Map API的使用、LBS相关功能、传感器的使用、摄像头的使用,以及语音识别功能等。相信掌握了这些知识后,我们可以开发出许多别具特色的Android应用。

第12章 Android NDK开发

本章介绍了与Android NDK开发相关的基础知识,并创建首个NDK项目。如果您需要使用C或C++语言来开发Android程序,或者想把一些基于C或C++的程序或者类库移植到Android平台下,那么肯定会对本章内容比较感兴趣。

第13章 Android游戏开发

本章介绍了与Android游戏开发相关的基础知识,包含了OpenGL和RenderScript的基础用法,以及Cocos2d-x和Unity 3D游戏引擎的相关内容。游戏开发和应用开发的思路还是有很大区别的,如果您对Android游戏开发比较感兴趣,请关注本章内容,相信本章知识对Android游戏开发的学习也会有所帮助。

由于时间有限,书中难免存有疏漏,诚恳希望各位读者批评、指正。当然,如果您在阅读过程中发现了问题,或者遇到疑问,欢迎加入本书QQ群(122860896),与大家一起交流,或者发邮件给我,我的邮箱是:huangjuanshi@163.com,真切希望和大家共同进步。

源码简介

请读者登录华章网站(www.hzbook.com)的本书页面下载本书所有源码。高质量的应用实例是本书的一大特色,所有的实例代码都按照实际项目的规范来书写,且都经过严格的审核,保证运行无误。另外,本书实例源码的获取也采用了最接近实际项目开发的形式,有经验的读者甚至可以直接通过SVN工具从Google Code项目SVN源中获取。本书主要实例源码有以下几个。

1.Hush Framework实例源码

Hush Framework是本书重点介绍的PHP开源开发框架,该框架的核心类库和实例源码都可以从GitHub上的项目主页直接下载,地址是https://github.com/jameschz/hush。与Hush Framework实例部署有关的内容请参见本书附录A。

2.微博实例源码

微博实例源码中包含了两个项目,即服务端PHP项目(app-demos-server),以及客户端Android项目(app-demos-client),其源码包“android-php-source.zip”也可以从GitHub上的本书官方网站下载,地址是https://github.com/jameschz/androidphp。与微博实例部署有关的信息请参考本书附录B。

3.特色功能源码

该实例项目包含了第11章中涉及的所有实例的源码,包含了Google Map API使用、传感器使用以及摄像头使用等实例,源码包含在微博实例源码中,详见android-php-source/androidphp/special目录。

4.OpenGL实例源码

该实例项目包含了第13章中涉及的与OpenGL使用有关的实例源码,其中包括了与2D和3D渲染有关的两个实例,源码包含在微博实例源码中,详见android-php-source/androidphp/opengl目录。

另外,以上所有实例项目的源码都可以通过Eclipse的Import工具(即File菜单中的Import选项)导入Eclipse开发工具中进行阅读。成功导入之后的项目代码树如下图所示。

此外,还有一些实例源码属于第三方的开发包(SDK),比如Android NDK中的hello-jni项目、Cocos2d-x开发包中的Hello World项目等。

致谢

首先,感谢华章公司的编辑们,没有你们的建议和帮助,绝对无法制作出如此经典的技术书籍;其次,感谢我的妻子和刚出世的宝宝,你们为我的创作提供了无穷的动力;再次,还要感谢我的父母和亲友,你们的支持和鼓励让我更有信心;最后,我必须向Android和PHP技术的创造者们致敬,你们创造出了如此优秀的产品,为我们开启了移动互联网的精彩世界。