歡迎你們加入Android和PHP技術交流羣:122860896php
電子書完整掃描版下載地址:java
CSDN:http://download.csdn.net/detail/laoge/7120945mysql
51CTO:http://down.51cto.com/data/1116398android
若是喜歡這本書,請支持正版!web
Xampp 開發環境下載:http://pan.baidu.com/share/link?shareid=531771&uk=773037279數據庫
微博實例完整源碼包下載:http://pan.baidu.com/share/link?shareid=531769&uk=773037279apache
Hush Framework 框架源碼及相關資源下載:http://code.google.com/p/hush-framework/downloads/list編程
其餘 Android 客戶端的實例源碼請到如下地址下載:http://code.google.com/p/android-php/downloads/list服務器
下載 「圖書資源下載」 列表中前兩項的內容。
解壓下載到的 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),在文件末尾加入如下虛擬站點配置:
127.0.0.1 hush-app-frontend127.0.0.1 hush-app-backend
重啓 Xampp 的 Apache 和 MySQL,依次訪問如下站點,確保可訪問。
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開發基礎精要。
閱讀四、5兩章瞭解本書微博實例的項目架構和規劃。
閱讀《第3章.PHP開發準備》學習PHP開發基礎精要。
閱讀《第6章.服務端開發》學習使用PHP開發服務端接口。
閱讀《第7章.客戶端開發》學習如何結合PHP服務器API開發移動互聯應用。
閱讀8到10章,學習服務端和客戶端的壓力測試和優化方法。
閱讀剩下的進階章節學習Android特點功能開發、遊戲開發以及其餘擴展知識。
本書不只能讓你學到Android客戶端開發的技巧精要,還能夠學到流行腳本語言PHP的用法以及服務端開發的知識,準備篇、實戰篇、優化篇、進階篇的內容層層遞進、由淺入深,很是適合初學者進行系統的學習。另外,本書的內容也十分豐富,能夠看成參考手冊來使用。
問題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)下便可。