《Android和PHP開發最佳實踐》是2013年機械工業出版社出版的圖書,作者是黃雋實。本書以一個完整的微博套用項目實例為主線,由淺入深地講解了Android客戶端開發和PHP服務端開發的思路和技巧。
基本介紹
- 書名:Android和PHP開發最佳實踐
- 作者:黃雋實
- ISBN:9787111410508
- 頁數:516
- 出版社:機械工業出版社
- 出版時間:2013-3-15
- 裝幀:平裝
- 開本:16開
內容簡介,編輯推薦,作者簡介,圖書目錄,
內容簡介
本書從前期的產品設計、架構設計,到客戶端和服務端的編碼實現,再到性能測試和系統最佳化,以及最後的打包發布,完整地介紹了移動網際網路套用開發的過程。同時,本書也介紹了Android系統中比較有特色的功能,比如Google地圖、LBS功能、感測器、攝像頭、多媒體以及語音功能的使用等。此外,本書還介紹了Android NDK的開發以及Android遊戲開發的相關內容,包括OpenGL的使用、流行遊戲引擎Cocos2d-x和Unity 3D。
全書內容分為四大部分:準備篇、實戰篇、最佳化篇、進階篇。準備篇主要介紹PHP和Android開發基礎,包括語法、環境配置這些;實戰篇主要介紹微博實例項目從前期準備,開發編碼以及接口調試的內容;最佳化篇會介紹項目發布之前的壓力測試、性能分析、代碼最佳化以及網路最佳化的內容;最後的進階篇則會介紹Android的特色功能以及遊戲開發的基礎內容。
本書適合於所有對Android和PHP技術有興趣的讀者。不管是客戶端還是服務端的開發者,都可以從本書中獲得不少有用的經驗。另外,值得一提的是,全書絕大部分的實例代碼均源自於真實項目,參考價值極高。
編輯推薦
國內第一本囊括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
第一篇 準備篇
第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