android技術棧-現有使用的進行一個彙總(初稿)
android技術棧
開發工具
Android studio
開發語言
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. 外掛框架
其他小外掛依賴庫例如:圖表、輪播圖、側滑、圖片縮放等。
需要優化的地方
事件匯流排:近期引入RxJava,一個在 Java VM 上使用可觀測的序列來組成非同步的、基於事件的程式的庫。
應用層
目前主要開發架構:MVC + MVP 混合模式,簡單業務MVC分層,複雜業務MVP分層。
1.MVC
主要架構選型,優點:快速開發,熟悉度高。缺點:頁面與業務邏輯耦合度高。
2.MVP
次要架構選型,優點:分層明確,耦合度低,有利於複雜業務開發。缺點:簡單頁面有過度設計之嫌,反而會浪費時間。
3.MVVM
還在摸索中,熟悉度低。