封面图
目录
- 前言
- 第一篇 准备篇
- 第1章学前必读1
- 1.1移动互联网时代的来临1
- 1.2为何选择Android和PHP2
- 1.3如何学习Android和PHP3
- 1.3.1如何学习Android3
- 1.3.2如何学习PHP4
- 1.3.3同时学好Android和PHP4
- 1.4小结5
- 第2章Android开发准备6
- 2.1Android背景知识6
- 2.2Android系统框架8
- 2.3Android应用框架11
- 2.3.1活动(Activity)12
- 2.3.2消息(Intent)14
- 2.3.3视图(View)16
- 2.3.4任务(Task)17
- 2.4Android系统四大组件19
- 2.4.1活动(Activity)20
- 2.4.2服务(Service)21
- 2.4.3广播接收器(Broadcast Receiver)23
- 2.4.4内容提供者(Content Provider)24
- 2.5Android上下文25
- 2.5.1界面上下文(Activity Context)25
- 2.5.2应用上下文(Application Context)27
- 2.6Android数据存储28
- 2.6.1应用配置(Shared Preferences)28
- 2.6.2 本地文件(Files)29
- 2.6.3数据库(SQLite)30
- 2.7Android应用界面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.8Android图形界面43
- 2.8.1画笔(Paint)43
- 2.8.2画布(Canvas)44
- 2.8.3 基础几何图形46
- 2.8.4常见图形变换47
- 2.9Android动画效果50
- 2.9.1逐帧动画(Frame Animation)50
- 2.9.2补间动画(Tween Animation)51
- 2.10Android开发环境52
- 2.10.1开发环境的搭建53
- 2.10.2首个Android项目58
- 2.10.3使用DDMS调试工具63
- 2.11小结64
- 第3章PHP开发准备65
- 3.1PHP开发基础65
- 3.1.1PHP语言简介65
- 3.1.2PHP语法简介66
- 3.1.3PHP开发起步68
- 3.1.4PHP面向对象编程75
- 3.1.5PHP的会话78
- 3.2PHP开发环境80
- 3.2.1开发环境的搭建80
- 3.2.2安装配置Xampp81
- 3.2.3管理Apache83
- 3.2.4管理MySQL84
- 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与SOA136
- 5.2客户端程序架构设计136
- 5.2.1基础框架设计137
- 5.2.2核心类包设计138
- 5.2.3Android应用的MVC142
- 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.8Web版接口192
- 6.8.1Web版UI界面(jQuery Mobile)193
- 6.8.2Web版地图接口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任务创建Thread249
- 7.4.3任务处理Handler255
- 7.4.4使用异步任务AsyncTask257
- 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使用TextView273
- 7.6.3使用EditText274
- 7.6.4使用Button276
- 7.6.5使用Shape和Selector277
- 7.6.6使用CheckBox279
- 7.6.7使用SharedPreference280
- 7.7微博列表界面281
- 7.7.1界面程序逻辑281
- 7.7.2使用ListView286
- 7.7.3使用ImageView290
- 7.7.4使用draw9patch292
- 7.7.5异步获取远程图片294
- 7.7.6使用SdCard缓存图片297
- 7.7.7使用SQLite缓存数据300
- 7.8我的微博列表303
- 7.8.1界面程序逻辑303
- 7.8.2使用ScrollView309
- 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使用WebView341
- 7.11.3使用ProgressDialog343
- 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.1Android内存管理392
- 10.2.2如何判断内存泄露393
- 10.2.3常见内存泄露的处理395
- 10.3优化Android UI396
- 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 API409
- 11.2使用LBS功能414
- 11.3使用传感器419
- 11.4使用摄像头422
- 11.5多媒体开发431
- 11.6语音识别439
- 11.7小结441
- 第12章Android NDK开发442
- 12.1NDK开发基础442
- 12.1.1使用NDK的原因442
- 12.1.2使用NDK调用C或C++443
- 12.1.3Android.mk和Application.mk445
- 12.2NDK开发入门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 ES466
- 13.1.5使用RenderScript472
- 13.2手游开发进阶474
- 13.2.1认识Cocos2d-x475
- 13.2.2架设Cocos2d-x开发环境475
- 13.2.3首个Cocos2d-x项目475
- 13.2.4认识Unity 3D487
- 13.3小结489
- 附录AHush Framework框架实例源码部署490
- 附录B微博应用实例源码部署495