圖書資源下載
微博實例源碼安裝步驟(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 頁面手動下載了。php
說明2:若是本機已經安裝過 Apache 和 MySQL 服務,應該注意如下幾點:java
- 執行初始化命令「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:如下是服務端主要配置文件的說明,可能對理解框架有比較大的好處:mysql
- 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是否會有問題?android
考慮到向上的兼容性,本書全部客戶端實例都是基於Android2.2來開發的。客戶端實例源碼的安裝過程很簡單,只須要把客戶端實例源碼導入到 Eclipse中,而後在「項目屬性」中設置Android的SDK版本爲Android2.2版,便可運行。本書的實例均通過專門的測試,都是能夠正常 運行的;若是在實例源碼安裝過程當中遇到問題,請到做者博客(http://blog.csdn.net/shagoo)進行提問。web
問題2:我是Android的初學者,能夠些學習的建議嗎?sql
從Androider的角度,建議按照如下步驟學習本書:數據庫
- 閱讀《第2章.Android開發準備》學習Android開發基礎精要。
- 閱讀四、5兩章瞭解本書微博實例的項目架構和規劃。
- 閱讀《第3章.PHP開發準備》學習PHP開發基礎精要。
- 閱讀《第6章.服務端開發》學習使用PHP開發服務端接口。
- 閱讀《第7章.客戶端開發》學習如何結合PHP服務器API開發移動互聯應用。
- 閱讀8到10章,學習服務端和客戶端的壓力測試和優化方法。
- 閱讀剩下的進階章節學習Android特點功能開發、遊戲開發以及其餘擴展知識。
本書不只能讓你學到Android客戶端開發的技巧精要,還能夠學到流行腳本語言PHP的用法以及服務端開發的知識,準備篇、實戰篇、優化篇、進階篇的內容層層遞進、由淺入深,很是適合初學者進行系統的學習。另外,本書的內容也十分豐富,能夠看成參考手冊來使用。apache
問題3:若是隻會一點PHP,不會Android的開發,如何同時學好PHP和Android?編程
從PHPer的角度,建議按照如下步驟學習本書:服務器
- 閱讀《第3章.PHP開發準備》學習PHP開發基礎精要。
- 閱讀四、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代碼,或者按照如下方式修改代碼:一、找到Hush/Db/Config.php,將179行註釋掉,「//abstract public function getInstance();」。二、找到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) 下便可。