移动应用开发技术丛书:Android和PHP开发最佳实践.pdf

移动应用开发技术丛书:Android和PHP开发最佳实践.pdf
 

书籍描述

编辑推荐
《移动应用开发技术丛书:Android和PHP开发最佳实践》是目前市面上第一本把Android移动互联网应用开发的完整解决方案分析透彻的书。

作者简介
黄隽实,国内顶级架构师,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

序言
前言
2012年,移动互联网革命正在如火如荼地进行,一个充满机遇的巨大市场正在开启,无论是创业者还是从业者都需要做好准备。Android和PHP两种技术,作为目前移动领域和互联网领域中的热门技术,已经受到广大开发者们的关注。本书是目前市面上唯一一本同时讲述Android客户端开发和PHP服务端开发两方面内容,并且把Android移动互联网应用开发的完整解决方案分析透彻的书籍。通过本书,您不仅可以学习到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游戏开发的学习会有很大帮助。
由于时间有限,书中难免存有疏漏,诚恳希望各位读者批评、指正。当然,如果你在阅读过程中发现了问题,或者遇到疑问,欢迎到作者的技术博客上留言和交流,博客地址为http://blog.csdn.net/shagoo,希望和大家一起共同进步。
源码简介
请读者登录华章网站(www.hzbook.com)的本书页面下载本书所有源码。高质量的应用实例是本书的一大特色,所有的实例代码都按照实际项目的规范来书写,且都经过严格的审核,保证运行无误。另外,本书实例源码的获取也采用了最接近实际项目开发的形式,有经验的读者甚至可以直接通过SVN工具从Google Code项目SVN源中获取。本书主要实例源码有以下几个。
1.Hush Framework实例源码
Hush Framework是本书重点介绍的PHP开源开发框架,该框架的核心类库和实例源码都可以从Google Code上的hush-framework项目主页的Downloads页面中直接下载,项目地址为http://code.google.com/p/hush-framework/。另外,与Hush Framework实例部署有关的内容请参考本书附录A。
2.微博实例源码
微博实例源码中包含了两个项目,即服务端PHP项目(app-demos-server)和客户端Android项目(app-demos-client),其源码包“android-php-weibo.zip”可以从Google Code上android-php项目的下载页面中直接下载,地址为http://code.google.com/p/android-php/。另外,与微博实例部署有关的信息请参考本书附录B。
3.特色功能源码
该实例项目包含了第11章“Android特色功能开发”中涉及的所有实例的源码,包含了Google Map API使用、传感器使用以及摄像头使用等实例,其源码包“android-php-special.zip”也可以从Google Code上的android-php项目主页的Downloads页面中直接下载。
4.OpenGL实例源码
该实例项目包含了第13章“Android游戏开发”中涉及的与OpenGL使用有关的实例源码,其中包括与2D和3D渲染有关的两个实例,其源码包“android-php-opengl.zip”也可以从Google Code上的android-php项目主页的Downloads页面中直接下载。
另外,以上所有实例项目的源码都可以通过Eclipse的Import工具(即File菜单中的Import选项)导入Eclipse开发工具中进行阅读。成功导入之后的项目代码树如下图所示。
此外,还有一些实例源码属于第三方的开发包(SDK),比如Android NDK中的hello-jni项目、Cocos2d-x开发包中的Hello World项目等。
致谢
首先,感谢华章公司的编辑们,没有你们的建议和帮助,绝对无法制作出如此经典的技术书籍;其次,感谢我的妻子和刚出世的宝宝,你们为我的创作提供了无穷的动力;再次,还要感谢我的父母和亲友,你们的支持和鼓励让我更有信心;最后,我必须向Android和PHP技术的创造者们致敬,你们创造出了如此优秀的产品,为我们开启了移动互联网的精彩世界。

文摘
第一篇
准备篇
第1章 学前必读
在学习任何知识之前,做好准备工作是非常有必要的。在本章,我们先来了解一下目前正如火如荼的移动互联网时代的大背景,然后我们会讲清楚我们为何要学习Android和PHP这套组合方案,以及学习Android和PHP开发的大体思路和学习方法。相信大家读完本章以后,不仅会对Android和PHP这个强大的组合更感兴趣,而且之后的学习之路会更加顺畅。
1.1 移动互联网时代的来临
2011年,Android操作系统就已经占领了全球智能手机市场份额的半壁江山,霸主的地位彰显无遗(如图1-1所示)。在国内,随着各大手机厂商的更新换代,Android操作系统的占有率也在火速上升中;中国移动公司已经早早推出了自己基于Android的OMS系统和OPhone,甚至连各大互联网巨头也在纷纷推出自己基于Android的手机产品。据统计,2012年内全球智能手机市场增长率达到49%,中国移动互联网用户量已经突破4亿,手机用户量也已经超越了PC。
看到这里,相信触觉敏感的你应该已经感觉到这个巨大市场里面无限的潜力了吧!我们来分析一下。首先,以目前移动互联网发展的迅猛势头,在可以预见的不久将来,全球移动终端将全面升级到智能系统,而以Android操作系统在其中占的比例来看,必将会瓜分到这块“大蛋糕”的很大一部分。其次,随着移动互联网市场的不断膨胀,对移动终端开发人员的需求量将会飞速增加,对于我们开发者来说,这是个绝好的提升自己的机会,试问,我们怎能放过?不要犹豫了,让我们一起加入到Android平台应用开发的大潮里来吧!
1.2 为何选择Android和PHP
时至今日,Android和PHP已经发展成为移动领域和互联网领域最领先的技术方案之一。那么,我们为何要选择Android和PHP这套解决方案呢?原因已经很明显。此外,我们还可以参考这两种技术的市场占有率。前面我们已经提到过Android系统的全球占有率,然而,目前PHP语言在互联网领域的使用率甚至比Android系统更高,所以,Android系统加上PHP语言如此强大的组合,我们又怎能忽视呢?接下来,让我们分析一下Android系统和PHP语言各自的优势所在。
1.Android平台的优势
开放性:毫无疑问,Android平台的开放性就是它在短时间内能占领市场的最强武器之一。Google希望通过Android平台打通运营商、设备制造商、开发商以及其他各个层面,建立起标准化、开放式的移动平台生态系统。
完备性:对于开发商或者开发者来说,系统平台的完备性无疑是他决定是否加入这个阵营最重要的因素之一。而Android系统无疑是目前功能最为强大,设计最为精良的移动操作系统之一,而且背后还有Google公司的强大实力作为支持,这也大大减少了项目开发的后顾之忧。
创造性:由于Android系统是开源的,允许第三方修改。对于开发商来说,在这个平台之上,可以把自己的创造力发挥到最大;而对于设备制造商来说,根据自己的硬件进行调优,从而能够更好地适应硬件,与之形成良好的结合。
2.PHP语言的优势
稳定性:毫无疑问,PHP已经是目前互联网服务端使用最广泛的编程语言之一,目前PHP在互联网应用领域的占有率位居全球第一。试问,如果本身不够成熟和稳定,如何能占有如此大的市场呢?
易用性:简单实用,学习成本低,这也是很多开发者愿意选择PHP的最重要原因,特别是对于互联网项目来说,需求变动是非常大的,因此,如果选择PHP,就可以节省出更多时间和精力去做其他的事情。
开放性:PHP本身是开源的,允许开发者对其进行扩展和优化,其整套服务端部署解决方案也是免费的,因此,使用这套解决方案能大大地降低成本,对于大部分资金紧张的互联网企业来说,何乐而不为呢?
完备性:LAMP(Linux+Apache+MySQL+PHP)这个绝佳组合早已闻名业界,而现在Nginx+PHP FastCGI的出现使其HTTP服务端的性能更上一层楼。对于目前绝大部分互联网应用来说,这套解决方案都可以很好地满足它们的需求。
事实上,目前已经有很多成功的移动互联网应用软件和游戏正在使用Android加PHP的架构,其中就包括风头正劲的“新浪微博”和“腾讯微博”。这些成功的例子很好地验证了Android加PHP这个组合的强大。当然,我们的开发团队在许多的实际项目中也都使用这套架构来进行开发。Android加PHP所展现出的灵活度和扩展性也确实让我们相当满意。
总而言之,Android的创造性加上PHP的灵活性确实是“天造之和”,也可以满足绝大部分的移动互联网应用快速变化的需求。当然,如果我们希望在服务端采用其他的技术,例如Java、Python或者Ruby On Rails,这也是没有问题的。因为我们的服务端用于和客户端打交道的实际上是JSON协议,而JSON是一种跨语言的协议,我们在服务端可以用任意语言来组合JSON数据并供给Android客户端使用。关于JSON协议的内容我们会在本书3.3节中详细介绍。
1.3 如何学习Android和PHP
前面我们已经讨论过“为何学”的问题,大家应该对Android加PHP这套应用开发解决方案有了大致的了解。接下来介绍“如何学”的问题,由于本书的内容比较广泛,既涉及客户端开发的技术也包含很多服务端开发的内容,所以在正式开始学习本书之前,先搞清楚应该使用什么样的学习方法比较有效是非常有必要的。接下来,笔者会把这个问题分解为以下几个部分来探讨。
1.3.1 如何学习Android
由于Android学习是本书最核心的内容,因此我们先来分析。由于Android应用框架是基于Java语言的,所以在学习Android之前,最理想的状态是您已经具有一定的Java语言编程基础,对Java语言的常用语法和常用类包(package)的使用也有一定的认识。当然,即使您是一名Java初学者,同样也可以从本书中学到一些非常有用的Java编程的经验。以下是Android SDK中包含的一些比较重要的Java基础类包,建议大家先自行熟悉起来。
表1-1 Android SDK中的重要Java基础类包
Java类包名 作用
java.io Java普通I/O包
java.nio Java异步I/O包
java.lang Java基础语言包
java.math Java算数类包(提供高精度计算)
java.net Java基础网络接口包(URI/URL)
java.text Java文本通用接口包(DateFormat/NumberFormat)
java.util Java常用辅助工具包(ArrayList/HashMap)
javax.crypto Java基础加解密工具包(Cipher)
javax.xml Java的Xml工具类包(SAXParser)
org.apache.http Java的Http网络工具包(HttpClient)
org.json Java的Json工具类包(JSONObject/JSONArray)
当然,在Android SDK中除了以上这些Java基础包之外,更多的还是Android系统本身的功能类包。当然,如果要查阅更多关于Android类包的说明文档,就需要参考Android的SDK文档了。我们可以在浏览器中打开Android的SDK里的docs/reference/packages.html网页进行查阅。想要把这里面的类包全部弄懂,必将是一个漫长而艰苦的过程。当然,假如坚持到了那一天,我相信你也已经成为Android大师了。
结合本书来讲,如果你没有任何的Java编程经验或者Android基础,那么一定要更加认真地阅读本书第2章的内容,此章不仅对Android系统框架和应用框架进行了精辟的讲解,而且结合实例让你快速熟悉Android的开发框架。接下去,在阅读完本书“实战篇”的内容并慢慢熟悉Android开发之后,还要注意学习和理解“优化篇”中关于系统优化的技巧,因为没有经过优化的系统是非常脆弱的。只有在把本书“实战篇”和“优化篇”的内容全部理解透彻之后,才能往下学习“进阶篇”的内容。总而言之,学习Android开发一定要坚持“稳扎稳打,层层递进”的学习原则,这样才能达到最佳的学习效果。

内容简介
《移动应用开发技术丛书:Android和PHP开发最佳实践》是国内第一本同时讲述Android客户端开发和PHP服务端开发的经典著作。《移动应用开发技术丛书:Android和PHP开发最佳实践》以一个完整的微博应用项目实例为主线,由浅入深地讲解了Android客户端开发和PHP服务端开发的思路和技巧。从前期的产品设计、架构设计,到客户端和服务端的编码实现,再到性能测试和系统优化,以及最后的打包发布,完整地介绍了移动互联网应用开发的过程。同时,书中也介绍了Android系统中比较有特色的功能,比如Google地图、LBS功能、传感器、摄像头、多媒体以及语音功能的使用等。此外,还介绍了Android NDK的开发以及Android游戏开发的相关内容,包括OpenGL的使用、流行游戏引擎Cocos2d-x和Unity 3D。
《移动应用开发技术丛书:Android和PHP开发最佳实践》适合于所有对Android和PHP技术有兴趣的读者。不管是客户端还是服务端的开发者,都可以从书中获得不少有用的经验。另外,值得一提的是,全书绝大部分的实例代码均源自于真实项目,参考价值极高。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多