1. 程式人生 > >android技術棧-現有使用的進行一個彙總(初稿)

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
還在摸索中,熟悉度低。

相關推薦

android技術-現有使用的進行一個彙總初稿

android技術棧 開發工具 Android studio 開發語言 Java 自動化構建 gradle app技術組織架構 基礎層 基礎框架層專注於技術領域實現,提

Android手機通過wifi進行資料傳輸

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

未來生活進行時: 暢想未來新興技術40年——百大趨勢性技術彙總

前言: 來自倫敦的技術戰略研究專家Michell Zappa長時間來致力於整理所有目前我們市面上能看到的各個領域的新興技術,包含業已實現並付諸應用的重要技術,以及處於研究階段的攻堅技術等,並將其歸納為11個重要領域:ARTIFICIAL INTELLIGENCE人工

Android多渠道打包彙總—— 為什麼要進行多渠道打包

1. 什麼是多渠道包? 渠道包就是要在安裝包中新增渠道資訊,也就是channel,對應不同的渠道,例如:小米市場、360市場、應用寶市場等 2. 為什麼要提供多渠道包? 我們要在安裝包中新增不同的標識,應用在請求網路的時候攜帶渠道資訊,方便後臺做運營統

Android開發—智能家居系列】:用手機對WIFI模塊進行配置

名稱 ash 端口 clas 方式 mac class 二階 target 【Android開發—智能家居系列】(二):用手機對WIFI模塊進行配置 http://blog.csdn.net/u010924834/article/details/4949672

如何對第一個Vue.js元件進行單元測試

  首先,為什麼要單元測試元件?   單元測試是持續整合的關鍵。通過專注於小的、獨立的實體,確保單元測試始終按預期執行,使程式碼更加可靠,你可以放心地迭代你的專案而不必擔壞事兒。   單元測試不僅限於指令碼。可以獨立測試的任何東西都是可單元測試的,只要你遵循一些好的做法。這些例項包括單一責任、可預測性和鬆

如何對第一個Vue.js元件進行單元測試

我們的首次測試 讓我們來寫首個測試。我們首先需要使用shallowMount手動掛載我們的元件,並將其儲存在我們將執行斷言的變數中。我們還可以通過propsData屬性傳遞道具作為物件。 已安裝的元件是一個物件,它有一些實用方法: 然後,我們可以寫第一個斷言: 讓我們來

如何對第一個Vue.js組件進行單元測試

發生 清理 定位元素 after 斷言 www. array 12c 良好的 我們的首次測試 讓我們來寫首個測試。我們首先需要使用shallowMount手動掛載我們的組件,並將其存儲在我們將執行斷言的變量中。我們還可以通過propsData屬性傳遞道具作為對象。

開發工具:全開發工具彙總——後端

二、後端 ideaIU-2016.2:java開發工具 常用快捷鍵 作用 Ctrl+Alt+L 格式化程式碼

開發工具:全開發工具彙總——彙總

本文中將各類開發過程中需要使用的工具進行彙總,後面會有詳細介紹 一、前端 AxureRP:原型圖設計工具 JetBrains WebStorm:網頁編輯工具 EditPlus:網頁編輯工具 HBuilder:輕量級網頁編輯工具 ace_admin:ac

開發工具:全開發工具彙總——其他工具

四、其他工具 Beyond_Compare:文字比較工具 mindmaster pro6.2.2:腦圖工具 MindManager15EN_破解版:腦圖工具 Fish-v320:百度文件下載工具 fscapture_gr:小型截圖工具(可實現滾屏擷取

兩個實現一個佇列java

一、問題描述 使用兩個棧實現一個佇列 二、演算法分析 棧是先進後出,因此兩個可以模擬實現先進先出 三、演算法設計 定義資料結構 Stack<Integer> stack1 Stack<Integer> stack2 對於push操作:元素入佇列

Java開發後臺介面+Android開發客戶端的一個例項學生成績管理

本文主要是一個查詢學生成績的一整套系統,主要為功能實現,串聯起來後端和移動端的連線。UI後期可以根據自己的愛好再調整,這裡分為兩部分進行介紹: 1、使用Java開發後臺介面,使用現如今非常流行的SpringBoot框架,使用MySql資料庫,持久層框架使用MyBatis,後臺開發平臺為idea,

手把手教你如何在Android進行JNI開發入門

在進行Android開發的過程中,我們必定會遇到視訊影象處理、高強度密集運算、特殊演算法等場景,這時我們就不得不需要去接觸一些C/C++程式碼,進行JNI開發。下面我將從Android.mk和CMake這兩種方式教大家如何進行開發。文章結尾將給出演示的專案程式碼,如果你能耐心地仔細看完,相信你一定能掌握

分割流:例如,將一個圖片53k以10k為單位單位的大小可隨著檔案的大小進行調整)進行分割,並將分割資訊以鍵值對的形式儲存到.properties檔案中。最後還可以將分割的檔案能夠完整的合併在一起

將一個53k的圖片以10k為單位進行分割,最後再將分割的檔案合併到一起。 首先進行檔案的分割,這裡使用了兩種方法: (1)其中splitFile(file)方法只是簡單地將圖片進行了分割。 (2)splitFile_2(file)方法除了將檔案進行分割,還將一些配置資訊進行了儲存

如何用 Java 對 PDF 檔案進行電子簽章概述及技術選型

參考: 一、 概述   印章是我國特有的歷史文化產物,古代主要用作身份憑證和行駛職權的工具。它的起源是由於社會生活的實際需要。早在商周時代,印章就已經產生。如今的印章已成為一種獨特的,融實用性和藝術性為一體的藝術瑰寶。傳統的印章容易被壞人、小人私刻;從而新聞鮮

Go語言進行web開發 搭建一個簡單的web伺服器

Go語言也被成為“自帶電池”的語言,有大量的web相關工具整合在其中,構建web應用成了一件信手拈來的事情,只要呼叫http包的兩個函式就可以了。 package main import (

使用IDEA進行Spark開發-第一個scala程式

上面一篇文章博主已經給大家演示好了如何去配置一個本機的scala開發環境,現在我們就一起去寫我們的第一個spark開發的scala程式吧! 開啟IDEA,選擇建立一個新的工程檔案。 點選scala,建立一個scala工程 輸入我們程式名稱——word

Android AIDL技術實戰專案-音樂播放器

實現功能 使用AIDL服務實現: 音樂播放、暫停、上一曲、下一曲、歌詞功能 音樂播放模式:順序播放 、隨機播放、單曲播放 多個頁面呼叫AIDL服務 主頁面底部音樂迷你控制器 音樂詳情頁面 程式

Android AIDL技術實戰專案-音樂播放器-使用retrofit完成音樂API的封裝

使用retrofit完成音樂API的封裝 程式碼結構 1、匯入retrofit相關庫 compile 'com.squareup.retrofit2:retrofit:2.2.0' 2、編寫介面API public interfac