android技術棧
開發工具
Android studioandroid
開發語言
Java數據庫
自動化構建
gradle緩存
app技術組織架構
基礎層
基礎框架層專一於技術領域實現,提供app公有特性,避免重複製造輪子。注重性能和穩定性。須要不斷穩固提升健壯性。
1. 網絡通訊
網絡通訊底層選型的是成熟框架okhttp,上層則是自有封裝庫,針對原生框架進行了請求和回調上的封裝。
2. 數據庫操做
少於5張表的單表CRUD工做通常用原生DB搞定,較複雜數據存儲業務選用greenDAO框架。是一個輕量級且快速的ORM框架。
3. JSON解析
選用Google公司的gson框架,能夠將JSON字符串反序列化爲對應的Java對象。
4. 日誌記錄
集成騰訊Bugly工具,提供異常上報、運營統計以及版本升級功能。
5. 適配器
針對RecycleView封裝的列表適配器框架,實現上拉加載、下拉刷新、頭部尾部view和分類type等功能。穩定無bug。
6. 屏幕適配
選用AutoLayout百分比適配框架,能夠自適應適配90%屏幕分辨率。
7. 依賴注入
選用jakewharton的ButterKnife註解框架,同時集成生成器插件可自動生成view對象。
8. 圖片緩存
選用Google推薦的Glide圖片框架,輕便靈活。服務器
須要優化的地方
網絡框架上層考慮選用Rrtrofit框架,是將REST API轉換爲Java接口的一個開源函數庫,基於註解使代碼變得更簡潔,須要服務器遵循REST規範。微信
組件層
組件層會針對行業領域的實現、業務類型的實現進行不一樣的選型,下面列舉的是最經常使用的可固定選型的基礎組件。
1. 支付功能
目前支持支付寶和微信,有成熟的對接方案。
2. 社交分享
目前支持微信好友、微信朋友圈、QQ分享及短信分享。
3. 視頻服務
基於保利威視開源視頻庫進行的再封裝和重構,能夠實現視頻上傳、視頻下載、視頻播放的功能。
4. 即時通信
目前選用環信即時通信技術,包括兩個庫,一個底層通信庫、一個UI庫。
5. 推送服務
目前選用極光推送。
6. 圖片壓縮
自封裝圖片壓縮工具類,主要實現Bitmap圖像壓縮和圖片文件壓縮。
7. 視頻壓縮
基於FFmpeg開源庫自編寫的視頻壓縮工具類,實現百分比進度、多比率調節、視頻截取第一幀等功能。
8. 插件框架
其餘小插件依賴庫例如:圖表、輪播圖、側滑、圖片縮放等。markdown
須要優化的地方
事件總線:近期引入RxJava,一個在 Java VM 上使用可觀測的序列來組成異步的、基於事件的程序的庫。網絡
應用層
目前主要開發架構:MVC + MVP 混合模式,簡單業務MVC分層,複雜業務MVP分層。
1.MVC
主要架構選型,優勢:快速開發,熟悉度高。缺點:頁面與業務邏輯耦合度高。
2.MVP
次要架構選型,優勢:分層明確,耦合度低,有利於複雜業務開發。缺點:簡單頁面有過分設計之嫌,反而會浪費時間。
3.MVVM
還在摸索中,熟悉度低。架構