(本部落格為原創:
前言:
一 、功能架構
二 、移動端架構概述
三、服務端架構概述
一、功能架構
公共部分
使用者管理
登入 登入方式
帖子模組
瀏覽:
按編輯
按型別(內容布局各不相同
)
我的作品,**混排,瀑布流顯示
操作:
文章模組
發布:
相容:
許可權 我的模組(使用者資訊)
我的訊息模組
資料管理模組
帖子管理
我的設定模組
搜尋模組
型別
說實話,這個專案的資料夾已達1.5g,安裝包混淆編譯後27m,我在寫之前,就在想要怎麼把它攤開來講,想想真的很複雜,腦子東西東西太多。
二、移動端架構概述
1,框架層
網頁2,執行緒層
由於我網路請求這塊沒使用框架,所以執行緒的選用時thread + handler
組合或asynctask
,需要明確一點,asynctask 比 thread + handler 更耗資源,不過使用起來比較方便。
3,快取層
android 的資料儲存方式有5種,分別是 sharedprefrences、file、sqlite、contentprovider、network。我採用的是 sharedprefrences 和 file即是檔案儲存,其中
4,網路層
5,實現層
1) 註冊與登入
密碼 簡訊驗證
手機登入
第三方登入
2) 發表帖子功能的實現
部分顯示
在發帖頁面顯示縮圖,提供有點選看大圖和移除的功能
1,具備縮放功能,方便生成、載入縮圖
2,可以自定義新增水印
3,鑑黃圖,這是最重要的
!
上傳先上傳,在上傳成功後,再開始上傳文字內容,如果出錯,可以直接覆蓋,文字成功,失敗時,帖子避免資料混亂
採用執行緒池
上傳,一來方便控制併發數,二來方便**記憶體
3) 帖子列表的顯示
選用了安卓5.0 的 swiperefreshlayout + recyclerview,原因是 swiperefreshlayout 自身帶有下拉重新整理,最早的時候使用的是 pulltorefresh 開源專案。recyclerview 重寫onscroll() 就可以搞定載入更多,還有乙個原因,recyclerview 自帶有瀑布流布局屬性。
早之前我使用的是 linearlayout 實現的,不斷地 addview 再 remove,致命的缺點是記憶體消耗不合理。
4) 帖子詳情頁的顯示
邏輯點讚
布局5) 訊息提醒
訊息提醒採用了極光推送的sdk實現
6) 表情模組
顯示7) 其他部分
收藏、刪除、舉報,這些操作進行一次get操作,傳遞帖子的id給伺服器,伺服器處理完畢後,就做對應操作
其他功能能的實現基本同上述。
8) 優化
記憶體9) 使用的庫
第三方自己派生
三、服務端架構概述
第二部分結束得有點匆忙,我真的很想把所有的東西都寫下來
,如果加上我一路遇到過的 bug 及其解決方法,估計還要寫兩天。主要原因是,有很多我記得已經不是太清楚了。
1,伺服器
mysql 資料庫,myisam 與 innodb 引擎
php 語言開發介面
2,資料庫引擎
3,資料庫設計
對於資料庫設計,不應該過多依賴正規化,適度的冗餘
可以加快搜尋速度,在伺服器的配置還可以的情況下,可以採用冗餘來解決查詢慢的問題。
常被update
的字段,不應該出現在多張表,應該使用一張表,例如使用者的名稱,username 這個肯定是會被經常改變的。否則在update資料的時候你要多張表更新!
使用者資訊兩張表
4,介面
未完待續……
APP開發 教你從零開始製作乙個APP
二 相關平台的開發者賬號申請 2.蘋果平台的申請花的時間相對時間長點一般在15 30之間。1.分析 了解客戶的需要開發平台,對產品的功能 設計需求 專案的完成時間以及開發的預算等。2.評估 評估需求技術難度 設計需求可行性 專案預期完成時間及開發費用。1 上線到安卓各大市場,所有安卓市場都是免費的,...
我開發的乙個基於地理位置的社交應用
drift 飄 是乙個基於地理位置的社交平台,該軟體的開發旨在給人們一種很隨意 輕鬆 有趣的方式交友聊天。開啟軟體後,它會把使用者周圍使用該軟體的人顯示在地圖上,然後你可以建立或加入他人建立的房間進行聊天,聊天分兩種模式 一種是傳統模式,就是一左一右彈出氣泡 另一種是地圖模式,每個聊天的人都在地圖上...
我的第乙個App開發過程
產品 功能定義 1.設定 計算預產期,提示懷孕天數,可檢視每週狀態。2.孕婦日曆,包括農曆 孕周標記。4.寶寶 可計算血型,星座,屬相等。美工 工具 安裝了photoshop,但很難駕馭,使用網頁版美圖秀秀做了幾張圖,但做一些精緻的圖的時候比如圖示就無能為力了,最後還是使用photoshop完成了後...