android敏捷開發介紹與實現
文章目錄
序
說起敏捷開發,大家或多或少會有些印象。而在android上的敏捷開發可能還並未普及。博主將與大家共同討論一起交流android上的敏捷開發、框架搭建等知識。
本博將通過 講解敏捷開發概念->敏捷開發架構思想->開發環境搭建->專案原始碼敏捷開發構建、拆分 等逐步帶您走進android敏捷開發的世界。
學敏捷開發,開啟 架構師之路…(誇張了呵呵,其實沒有,這是基礎)
首先讓我們瞭解一下什麼是敏捷開發。
1.什麼是敏捷開發
簡單的說,敏捷開發是一種以人為核心、迭代、循序漸進的開發方法。在敏捷開發中,軟體專案的構建被切分成多個子專案,各個子專案的成果都經過測試,具備整合和可執行的特徵。換言之,就是把一個大專案分為多個相互聯絡,但也可獨立執行的小專案,並分別完成,在此過程中軟體一直處於可使用狀態。
1.1現狀
博主認為其核心是:原子+穩定+複用=敏捷開發。拿實際專案來說,稍大一點的專案可能涉及到多種功能與多種發行版本。
以下可能是您的現狀:
- 所有原始碼在一個工程,臃腫龐大,命名各異
- 每次都為分佈在各地的工具方法而整篇的查詢專案原始碼
- 為客戶BT的需求一遍又一遍的拆分、整合那些固化功能
- 為新的產品開發copy舊的程式碼無限複製貼上
- 在舊版本fix bug後呆呆的把變更一遍又一遍的在高版本上修復(也許還忘記修復)
- 浪費大量的時間在每次編譯整個專案上(編譯整體專案可能需要數分鐘,而編譯單模組也許只需要數十秒)
- com.xxx.xxx.A.java,這TM到底是那個功能的類(挨個問同事吧)
- 不知到如何提升自己
如果您有以上困擾,很好,因為春天很快就要到了,因為我們有敏捷開發。
1.2 敏捷開發帶給我們什麼
- 清晰框架結構
- 高度複用介面
- 靈活的模組組合
- 高速穩定的產品迭代
- UI與邏輯的解藕
- 低廉的維護成本
舉例來說:
某網聊軟體(可想像成微信)中功能包括
- 文字、語音通訊
- 聯絡人管理
- 朋友圈
- 搖一搖
- …
多個功能在專案中很容易分成多個模組來交給工程師實現,普通的工作方法我們不再贅述,試想一下,如果這每個功能看作一個模組,每個模組可獨立執行並且可以被任意專案整合,那麼,也許公司的音樂播放器專案加入朋友圈說不定也不錯呢,而這一切只需要配置一些xml而已。
2.敏捷開發的架構圖
糾錯:圖中Modle應為Module,由於引用的其他文章的圖就沒做修改。
2.1 幾個概念
- Frame 整個專案的框架、組織者。裡面並沒有實際的程式碼,只是通過配置檔案決定了專案需要哪幾個模組
- Module 模組,專案的組成部分,通常表示單一或部分功能集合。
- Component 元件,包含Model的UI以及需求邏輯,在android敏捷開發中包含(Activity、Service、BroadCast Receiver、Provider)
- Lib lib庫,為Component提供了具體的實現,封裝了其需要的各種方法。
2.2 架構分析
-
從圖中我們看到,首先Frame包通過配置檔案決定專案的模組,這樣來滿足我們上話提到的各種需求,
-
此處的Module是我強加來的,其實Frame只需要依賴Component即可以構成專案,因為從依賴鏈看往往Component會依賴一個特定Lib,但是從邏輯看Component + Lib才完整。所以建議大家把Component + Lib想象成一個Model。
-
然後每一個模組又通常被分為獨立的元件和Lib,這樣的好處很明顯,通常變化的只有元件,而Lib一但完成只需要維護其穩定即可,當專案介面需要大變化的或需要我們向三方提供此模組功能的時候可以直接提供此Lib,也就是我們說的SDK。
-
最後是我們專案積累封裝好的各中jar包,例如圖上提到的HTTP、FILE等工具類,可以直接被依賴進來,提高了複用率,我們還可以隨時豐富其介面,供大家使用。
敏捷開發的的架構基本是這樣,他充分體現了靈活、高效,怎麼樣,一起開始我們的敏捷開發之旅!