今年一月初我開始思考,我是一個純粹的android用戶端程式員,但我想一個人開發出移動的小型bbs論壇應用,我沒有伺服器怎麼辦?沒有資料庫怎麼辦?服務端編程全部忘掉了怎麼辦?
於是我有了一個想法:利用百度推送向用戶端推送指令和資料,用戶端做出響應請求百度雲端硬碟!
經過一個多月的連續開發,最終結果證明,這個方案是完全可行的而且高效的,沒有花一分錢,就開發出了高效能的小型bbs論壇應用《環球吐槽》,在我下面介紹具體開發步驟之前,先看一看最終:下載體驗 (ps:由於小論壇裡政治內容太多,被除百度外所有市場拒絕收錄,哭.....)
第一步:分析百度推送的原理
1.基本原理:一聽推送很多朋友都可能想到的是煩人的notify通知提醒和每次只能發送可憐的幾十個短訊息,這肯定是不行的,好在百度推送沒這麼水,百度推送的富媒體推送很好的解決了推送容量的問題,富媒體的原理是這樣的,你在推送網頁上編輯一個Html的文檔,點擊發送,這個文檔就發送到了安裝了你應用的用戶端上,客戶點擊就會開啟一個網頁。
2.我的改造:
①反編譯百度推送的jar包,替換掉會使應用彈出通知欄的類,加入自己的class檔案,使得推送不再有任何提醒或者打擾客戶的行為
②把自己發布的長篇大論的文章寫入到html中,通過自己定義的一種資料群組織結構,方便在用戶端的排版,把它推送到用戶端
③在用戶端收到的是一個html,肯定不能讓客戶直接開啟這個網頁看,因為太醜,而且千篇一律,所以要把這個html中的自己定義過的特殊組織形式的資料的內容寫入到xml中
④通過控制解析xml可以在用戶端轉譯出自己想要的文字排版效果,比如大家上面看到的,我的內容就是老外對話的樣子。
⑤所以重點是大家要在html中寫入未經處理資料時,資料群組織的格式要容易在用戶端解析。
第二步:利用百度雲做出評論跟帖系統
1.基本原理:客戶在手機看完你的文章要回帖,所以把回帖內容上傳到百度雲端硬碟。
2.我的改造:每日發帖可能十幾條,如何管理好所有的文章以及數量更多的回帖,這裡最方便的是充分利用百度富媒體推送時html檔案的時間戳記, 使用者每次回複一條文章,
就把回帖內容放入一個txt文檔,利用雲端硬碟API,它可以攜帶一個檔案夾名字,檔案夾名字就是這個文章的時間戳記,這樣,回帖txt都自動歸檔到各自的文章時間戳記的檔案夾下了
,使用者想看評論的時候,請求當前文章時間戳記的檔案夾就可以把檔案夾下所有的txt評論下載下來,在用戶端控制一下,展示出來就可以了
總結:說的很少,其實做起來很麻煩,比如推送只是發了一個zip包的下載連結,所以我們還有下載解壓解析,但是這樣做出來的效果,客戶絕對看不出來是用推送實現的
完全和c/s 模式的請求,響應的體驗效果是一樣的,也沒有任何打擾客戶的行為。
我說的挺好,可能大家不相信,那麼你可以去百度應用下載下來,體驗一下,看我說的是不是:
環球吐槽 移動bbs :點擊下載