Jetpack一統江湖!一個月徹底修改你的App架構!

要想成爲一名優秀的Android開發,一份 知識體系 是必不可少的~

還記得15年那個時候,好像Android就是解析數據,列表展示,瞭解下四大組件生命週期,已經可以幹活了,還記得當年一個View只要能滑動,就大呼自定義控件牛逼。

不過,近幾年的變化頗大。

爲了豐富大家日常開發的UI效果效果: Material Design進入大家的視野,後面陸陸續續湧現出一大批UI組件:DrawerLayout,AppbarLayout,CoordinateLayout,ToolBar,NestedScrollView,FlexBoxLayout等…

在UI組件日益完善的同時,也開始出現了RecyclerView、ConstraintLayout、MotionLayout等一些可以輔助大家寫出更加符合性能要求的界面效果。

在UI控件日益滿足需求的同時,系統的安全與穩定性、用戶隱私也越來越被重視,所以每個版本都出現了一些大的適配工作,例如運行時權限,FileProvider適配,限制後臺服務、廣播,限制反射SDK 私有API,引導使用HTTPS,甚至去除SDCard訪問權限等…

用一張圖來表示大家的學習歷程,就像:

在這些基礎能力完善後, Google終於開始對架構下手了。

大家都知道後端一般的項目大多數都是MVC架構,而且大多數後端寫出來的代碼很自然就遵守了這個架構。

爲什麼呢?並不是說後端開發人員架構思想就比我們強很多, 而是後端的框架相對成熟,由框架引導架構的落地。比如現在Java後端非常火的Spring框架,他會引導你去做ioc,aop,分層,Controller、Service、Dao一應俱全,你只要按照框架的指引,寫出來的基本都符合MVC了。

但是在Android上,由於很多業務非常簡單,簡單到只需要發個請求、解析結果就完事了,這種情況下,很難讓去劃分業務層、控制層等等,並且Android也有自己的特殊的平臺特性,比如組件生命週期、頁面重建與恢復等等。

所以需要一系列的套件來引導大家去遵守某一架構,並針對平臺特性做一些特殊支持,提供組件生命週期的感知套件,幫助大家更好的完成界面重建恢復等工作,以便於更好的管理大家的代碼。

因此,Jetpack來了!

Jetpack是什麼?

Jetpack是Google推出的一套系列組件集。

Jetpack的出現以及Google標準化開發模式的確立,代表了Android原生開發的未來方向,意味着Android發展已經逐漸成熟。

Jetpack知識圖譜

爲什麼要學?

在開發世界,永遠是技術至上,一門新技術的盛行總是有原因的,要麼比老框架性能提升不少,要不更加易用等等。作爲開發者,更是要不斷學習、嘗試各種新出來的技術。

遇到新技術也不主動去學習,一邊感慨着程序員薪資提升慢,35歲無路可去,一邊上班摸魚嘻嘻哈哈。對不起,程序員漲薪不是熬年齡,無處可去更不是因爲年齡,而是不思上進。

網易員工能力強但因生病被辭退,全國人民都站出來爲他發聲;

但是,之前那位騰訊被辭退的員工,無辜缺勤曠工,每天上班時間不足八小時,真的冤嗎?

Google推出的Jetpack如何應用到工作中來呢?

可以極大提高工作效率還是有深坑呢?

實際上很多移動端開發者聽都沒聽過。

從工作到現在,經歷過了MVC、MVP、MVVM、Clean等,每個項目由於項目特點和需求的不同,都會出現一套基於開發者所設計的架構模式,分層、組件化、模塊化,每一種設計都是基於項目所在場景的,很難適合所有項目場景。

APP自身在飛速發展,版本不斷迭代,新功能不斷增加,業務模塊數量不斷增加,業務上的處理邏輯越變越複雜,同時每個模塊代碼也變得越來越多,這就引發一個問題,所維護的代碼成本越來越高,稍微一改動可能就牽一髮而動全身,改個小的功能點就需要回歸整個APP測試,對開發和維護會帶來很大的挑戰。

外行看熱鬧,內行看門道。

我們到底該怎樣優雅地開發App呢?

模塊化、層次化、控件化、組件化怎麼應用到實踐當中?

Artifactory對模塊化和組件化大有幫助;

Jetpack可以有效減少OOM和No Pointer Exception;

Mvvm則可以滿足需求的變化。

也許單個的技術點你瞭解過,我們又該怎樣將Artifactory、最新的Jetpack和Mvvm結合呢?

另外,如何在搭建app架構的同時,進行App啓動速度的性能優化呢?

一個基於MVVM+Jetpack組件的App案例(作者:teaOf)

我之前詳細研究過Jetpack,其中組件設計之妙,可以極大方便開發者的日常工作,可以更好的解決Android開發中的各種問題,尤其是對代碼的數據邏輯和UI界面深層解耦,實現數據驅動型的ui。

許多重複性的代碼,可以通過模版工具自動生成,提高效率的同時,還可以避免人工失誤,大大降低bug數量。

在面試的時候,Jetpack也是面試官十分青睞的內容。

  • Lifecycle、LiveData、ViewModel、DataBinding各有功效,你都知道多少?
  • 我們該如何學習Jetpack系列組件庫?
  • 如何使用Lifecycle、LiveData解決項目中的問題?
  • 你知道DataBinding的高級用法嗎?

考慮到篇幅原因,我就不繼續往下講了,有需要的朋友們可以拿到《Android開發核心知識點筆記》研讀

還有個小小的讀者福利:

在這裏我分享自己收錄整理的Android學習PDF,裏面對Jetpack有詳細的講解,希望可以幫助大家學習提升進階,也節省大家在網上搜索資料的時間來學習,可以分享給身邊好友一起學習

如果你有需要的話,可以順手點贊+評論,關注一波後點擊Android學習PDF+架構視頻+面試文檔+源碼筆記免費領取

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章