圖書資源下載
- Xampp 開發環境下載:http://pan.baidu.com/share/link?shareid=531771&uk=773037279
- 微博實例完整源碼包下載:http://pan.baidu.com/share/link?shareid=531769&uk=773037279
- Hush Framework 框架源碼及相關資源下載:http://code.google.com/p/hush-framework/downloads/list
- 其他 Android 客戶端的實例源碼請到以下地址下載:http://code.google.com/p/android-php/downloads/list
微博實例源碼安裝步驟(for Windows)
- 下載 “圖書資源下載” 列表中前兩項的內容。
- 解壓下載到的 Xampp 開發環境(xampp.zip)到 D:\xampp 目錄下。
- 點擊 D:\xampp 目錄下的 setup_xampp.bat 文件,輸入1,然后回車,安裝好 Xampp。
- 把 D:\xampp\php 和 D:\xampp\mysql\bin 目錄加入到 Windows 系統環境變量 Path 中去。
- 解壓下載到的微博實例完整源碼包(android-php-source.zip),並拷貝目錄 android-php-source 下的所有文件到 D:\workspace 目錄下,比如:D:\workspace\hush-framework。
- 使用源碼目錄(D:\workspace)下的 httpd-vhosts.conf 文件覆蓋 D:\xampp\apache\conf\extra 目錄下的同名 Apache 配置文件。
- 在 Xampp 控制台(D:\xampp\xampp-control.exe)啟動 Xampp 的 Apache 和 MySQL。
- 打開系統命令提示符,進入 D:\workspace\hush-framework\hush-app\bin 目錄,運行“hush sys init”命令初始化 Hush Framework 框架實例。
- 打開系統命令提示符,進入 D:\workspace\android-php-weibo\server\bin 目錄,運行“cli sys init”命令初始化微博應用服務端的實例。
- 修改 Windows 系統本地 hosts 文件(C:\WINDOWS\system32\drivers\etc\hosts),在文件末尾加入以下虛擬站點配置:
- Hush Framework 實例前台:http://hush-app-frontend
- Hush Framework 實例后台:http://hush-app-backend
- 本書微博實例 API 調試后台:http://127.0.0.1:8001
- 本書微博實例 WEB 站點:http://127.0.0.1:8002
- 使用 ipconfig 命令獲取本機的局域網地址,比如 192.168.1.28(也可以直接用 Android 模擬器的映射地址 10.0.2.2),然后找到服務端源碼中的 etc/app.config.php 文件,以及客戶端源碼 com.app.demos.base 包中的 C.java 文件,將 192.168.1.2 替換成本機的局域網地址(或者 10.0.2.2)。
- 將客戶端源碼安裝到 Android 模擬器上,即可運行!
特別說明(幫助理解源碼)
說明1:如果遇到網絡問題導致 Google 上的類庫代碼無法下載,可以使用 hush/cli sys uplib 嘗試下載更新,如果還不成功就只能到 Hush Framework 項目網站的 Downloads 頁面手動下載了。
說明2:如果本機已經安裝過 Apache 和 MySQL 服務,應該注意以下幾點:
- 執行初始化命令“cli sys init”命令前,請修改 bin/cli.php 中的 MYSQL_USER 和 MYSQL_NAME 為本地 MySQL 的用戶密碼。
- 如果是 Hush Framework 無法導入數據庫,請手動把 doc/sql/ 下面的兩個 sql 文件導入到數據庫中,然后再修改數據庫配置文件即可(見下點)。
- 運行系統之前,請先修改 etc/database.mysql.php 配置文件中的 self::DEFAULT_USER 和 self::DEFAULT_PASS 為本地 MySQL 的用戶密碼。
說明3:以下是服務端主要配置文件的說明,可能對理解框架有比較大的好處:
- app.config.php:源碼配置的入口文件
- app.mapping.ini:URL路由配置文件,這里主要針對 Debug 后台
- database.mysql.php:數據庫配置文件,可以在這里手動修改數據庫的用戶/密碼
- global.datamap.php:協議配置文件,定義 M 方法來定制 JSON 協議的返回數據結構
- global.defines.php:全局配置文件,主要用於配置類庫(基礎/Hush類庫)的路徑
- global.message.php:國際化配置文件,定義 L 方法用於獲取國際化文字
- global.session.php:會話配置文件,定義服務器 Session 會話的配置
常見問題解答(沙龍精選)
問題1:本書的客戶端實例是基於Android哪個版本開發的,使用新版SDK是否會有問題?
考慮到向上的兼容性,本書所有客戶端實例都是基於Android2.2來開發的。客戶端實例源碼的安裝過程很簡單,只需要把客戶端實例源碼導入到 Eclipse中,然后在“項目屬性”中設置Android的SDK版本為Android2.2版,即可運行。本書的實例均經過專門的測試,都是可以正常 運行的;如果在實例源碼安裝過程中遇到問題,請到作者博客(http://blog.csdn.net/shagoo)進行提問。
問題2:我是Android的初學者,可以些學習的建議嗎?
從Androider的角度,建議按照以下步驟學習本書:
- 閱讀《第2章.Android開發准備》學習Android開發基礎精要。
- 閱讀4、5兩章了解本書微博實例的項目架構和規划。
- 閱讀《第3章.PHP開發准備》學習PHP開發基礎精要。
- 閱讀《第6章.服務端開發》學習使用PHP開發服務端接口。
- 閱讀《第7章.客戶端開發》學習如何結合PHP服務器API開發移動互聯應用。
- 閱讀8到10章,學習服務端和客戶端的壓力測試和優化方法。
- 閱讀剩下的進階章節學習Android特色功能開發、游戲開發以及其他擴展知識。
本書不僅能讓你學到Android客戶端開發的技巧精要,還可以學到流行腳本語言PHP的用法以及服務端開發的知識,准備篇、實戰篇、優化篇、進階篇的內容層層遞進、由淺入深,非常適合初學者進行系統的學習。另外,本書的內容也十分豐富,可以當作參考手冊來使用。
問題3:如果只會一點PHP,不會Android的開發,如何同時學好PHP和Android?
從PHPer的角度,建議按照以下步驟學習本書:
- 閱讀《第3章.PHP開發准備》學習PHP開發基礎精要。
- 閱讀4、5兩章,了解本書微博實例的項目架構和規划。
- 閱讀《第6章.服務端開發》學習使用PHP開發服務端接口。
- 閱讀《第2章.Android開發准備》學習Android開發基礎精要。
- 閱讀《第7章.客戶端開發》學習如何結合PHP服務器API開發移動互聯應用。
- 閱讀8到10章,學習服務端和客戶端的壓力測試和優化方法。
- 閱讀剩下的進階章節學習Android特色功能開發、游戲開發以及其他擴展知識。
PHP和 Android(Java)畢竟是兩種不同的語言,學習的時候注意多類比,多思考;相信對你的編程之路會很有幫助。就本書的內容比重而言,Android 和PHP各占一半左右,比較合適對移動互聯網有興趣的讀者來拓寬思路,當然如果你對作架構有興趣的話,本書也是不錯的選擇。
問題4:應用服務端開發和常見WEB站點的開發有什么不同?
應用服務端開發確實和開發普通的WEB站點不大一樣。最直觀的不同點就是應用服務端都是API形式的,而web站點是有界面的。從調試的角度來看,API的調試會更加麻煩一些,恰好本書的PHP服務端框架提供了一套很方便的調試框架,有興趣的話可以多研究一下~
問題5:運行初始化命令(hush/cli sys init)后提示數據庫導入失敗如何解決?
- 錯誤提示1:提示 Can't connect to MySQL server on '127.0.0.1'
- 解決方法1:原因是本地 MySQL 沒有啟動。請確認一下 Xampp 的 MySQL 服務是否已啟動。
- 錯誤提示2:提示 Access denied for user 'root'@'localhost'
- 解 決方法2:原因是MySQL密碼不對。如果不想改變原有密碼,可以修改數據庫配置文件 etc/database.mysql.php,將文件中的 self::DEFAULT_PASS 修改成現有的 root 密碼;或者直接使用 mysqladmin -u root -p password passwd 將 root 密碼改為 passwd。
問題6:微博客戶端為何無法連接服務器(提示“網絡錯誤”)?
首先,請確認本機的微博服務端是否已經啟動,即 http://127.0.0.1:8001 是 否可以訪問;如果可以,請再確認本機的局域網地址是什么(Windows 下可使用 ipconfig 命令獲取,比如:192.168.1.28;或者直接使用 Android 模擬器的映射地址 10.0.2.2),然后,找到客戶端源碼 com.app.demos.base 包中的 C.java 文件,將 192.168.1.2 替換成本機的局域網地址(或者 10.0.2.2),重新安裝運行微博客戶端即可。此外,最好把服務端代碼中的 etc/app.config.php 中的 HOST_SERVER 和 HOST_WEBSITE 常量也替換掉,這樣不至於出現其他問題。
問題7:服務端代碼報錯提示:Strict Standards: Non-static method MysqlConfig::getInstance() should not be called statically ...?
與PHP新版本沖突導致的報警信息,請從SVN更新最新的Hush Framework代碼,或者按照以下方式修改代碼:1、找到Hush/Db/Config.php,將179行注釋掉,“//abstract public function getInstance();”。2、找到etc/database.mysql.php,把57行改為“public static function getInstance()”。
問題8:為何運行“cli doc build”提示報錯,無法生成文檔?
這是書本代碼使用的 Hush Framework 版本較老的問題(新版本 Hush Framework 沒有此問題),可以到官網的 Downloads 頁面下載微博實例源碼修正包(weibo-patch-20130502.zip),解壓並覆蓋到原來的源碼目錄(android-php-weibo) 下即可。