JetPack自2018年面世,迎來了它的第三個年頭。但是在國內的受歡迎程度遠遠及不上國外,國內開發者一聽到別人說JetPack,腦海中蹦出來的詞就是“不成熟”、“不好用”、“調試有點難”,但是事實真的是如此嘛?
我們首先來看看JetPack在發佈的時候的雄心壯志:
Jetpack是一套庫、工具和指南,可幫助開發者更輕鬆地編寫優質應用。這些組件可幫助您遵循最佳做法、讓您擺脫編寫樣板代碼的工作並簡化複雜任務,以便您將精力集中放在所需的代碼上。
以上來自谷歌語錄,總結起來就是:
- JetPack是一整套組件庫
- 它能幫我們寫出優質應用
- 它能讓我們不需要去寫毫無營養的樣板代碼
- 它能規範我們的開發行爲
接下來來看看JetPack組件庫到底包含了哪些組件:
從上圖我們可以看出,JetPack組件庫主要分爲四個部分,分別是架構(Architecture)、界面(UI)、行爲(behavior)和基礎(foundation)。每個組件都可以單獨使用,也可以配合在一起使用。其中用的比較多的是DataBinding、LiveData、Paging、Room、ViewModel、Lifecycles。
但爲什麼國內的開發者很難接受呢?其實大概可以分析出幾點原因:
- 對新技術的嗅覺比較遲鈍
- JetPack單一組件不知道怎麼用,在哪裏用
- 沒有完整版的Copy源
- 老項目之前沒有用JetPack,現在改會牽一髮動全身,懶的改,愛誰誰
- 對JetPack是什麼都不知道
以上幾點分析可能有點直擊要害,但是確實是事實。其實把以上的原因總結到一起,就是對JetPack不是特別瞭解,就算用過但對其源碼以及底層原理不熟,這就好比你找了一個不太瞭解的另一半,你會輕易把自己交給他或者她嘛?
正是因爲這些原因,導致大家完全忽略了JetPack的強大以及它能給我們帶來的改變,接下來我們分析下它能給我們帶來什麼。
1.解決了 Android 架構問題
由於之前 Google 並沒有推出關於 Android 應用程序架構設計的標準,所以各個企業的開發者都需要打磨出一套符合自己項目的開發方案。但是這就會造成兩個明顯的問題,第一個是這些方案都是野路子出生,沒有官方身份、第二個是無法從這些方案中找出一套符合所有人期望的方案。說直白了就是沒有統一標準,碎片化嚴重。所以Google也意識到了這個問題就推出了JetPack,讓開發者能夠使用標準的架構組件,而不用去糾結架構的方案設計,可以將更多的精力放在自己的業務代碼上。
2.提升了代碼質量
Jetpack 擁有基於生命週期感知的能力,可以減少內存泄漏、NPE崩潰,爲我們開發出健壯且流暢的程序提供強力保障,同時樣板代碼的自動生成可以讓人爲遺留BUG減少。
3.提升了開發效率
Jetpack 可以減少樣板代碼,有助於提升 Android 開發的效率。這些組件可以單獨使用,也可以組合使用,並且在不同 Android 版本中運行一致。
看到這些JetPack帶來的改變,難道大家還能放任不管嘛,還能不動心?接下來我們從實際工作崗位需求出發:
看到這裏大家應該已經明白了,JetPack現在在很多的崗位需求中都明確了,也意味着以後的面試過程中除了以前的知識點,又出現了JetPack。
說到這裏,接下來我們聊聊如何去學JetPack,很多人平時在開發中都是一通複製粘貼,不屑瞭解原理,但是JetPack你如果不知曉原理你會發現很容易出現人爲錯誤,這就回到了最開始的問題,很多人覺得JetPack問題多,實際上,並不是,而是你對它的瞭解不夠深而已。所以,要學,就要學透,要把它們的原理全部搞懂,而不僅僅是停留在用的層面。
亡羊補牢,爲時不晚。如果前文的描述,能讓你意識Jetpack對於當前一個Android開發者來說是多麼的重要,而你又剛好有一個想要學習進步的心態的話,爲了幫助大家學習,我特地整理了關於這份詳細的jetpack從入門到精通(含項目實戰解析)的PDF資料,應該能給予你很大的幫助。需要的朋友可以隨手點贊+評論後,私信回覆【學習】獲取免費領取方式!
Jetpack架構組件從入門到精通
目錄:
正文:
1. 什麼是Jetpack
- 簡介
- 特性
- 分類
- 應用架構
2. Android Jetpack - Navigation
- 前言
- 簡介(定義、優點、準備、學習方式)
- 實戰(第一步 添加依賴、第二步 創建navigation導航、第三步 建立 NavHostFragment、第四步 界面跳轉、參數傳遞和動畫)
- 更多
- 總結
3. Android Jetpack - Data Binding
- 前言
- 介紹(MVVM介紹、Data Binding介紹)
- 實戰(第一步 在app模塊下的 build.gradle 文件添加內容、第二步 構建LoginModel、第三步 創建佈局文件、第四步 生成綁定類)
- 更多(佈局中屬性的設置、雙向綁定)
- 總結
4. Android Jetpack - ViewModel & LiveData
- 前言
- LiveData(介紹、使用方式、使用場景)
- ViewModel(介紹、使用方法、實戰)
- 更多(LiveData數據變換、LiveData如何共享數據、使用ViewModel在同一個Activity中的Fragment之間共享數據)
- 總結
5. Android Jetpack - Room
- 前言
- 介紹——Room優點
- 實戰——第一步 添加依賴、第二步 創建表(實體)、第三步 創建Dao、第四步 創建數據庫、第五步 簡要封裝
- 更多——類型轉換器、數據庫遷移
- 總結
6. Android Jetpack - Paging
- 前言
- 介紹——優點
- 實戰——第一步 添加依賴、第二步 創建數據源、第三步 構建LiveData、第四步 創建PagedListAdapter、第五步 監聽數據
- 更多
- 總結
7. Android Jetpack - WorkManger
- 前言
- 介紹——定義、選擇WorkManager的理由、多線程任務如何選擇?
- 實戰——第一步 添加依賴、第二步 自定義Worker、第三步 創建WorkManger、第四步 構建WorkRequest、第五步 取消任務、第六步 觀察任務狀態
- 更多——選擇適合自己的Worker
- 總結
8. Android Jetpack架構組件之Lifecycle
- Lifecycle簡介
- Lifecycle使用
- Lifecycle源碼分析——Lifecycle註冊流程、通知觀察者
9. Android Jetpack Compose 最全上手指南
- 聲明式 UI 的前世今生
- Jetpack Compose 介紹
- Jetpack Compose 環境準備和Hello World
- 佈局
- 使用Material design 設計
- Compose 佈局實時預覽
- 總結
10. Android Jetpack架構組件--App Startup
- 解決的問題
- 使用App Startup
- App Startup實現懶加載
- 剖析App StartUp
- App Startup利弊
11. Android Jetpack最新更新組件介紹
- Hilt - Jetpack 推薦的依賴注入類庫
- Paging3 - 逐步加載和顯示數據
- App Startup - 在應用啓動時初始化組件
- Auto-fill IME
- 更簡單的動畫 — core-animation 和 SeekableAnimatedVectorDrawable
- 使用 Database Inspector 調試數據庫
- WindowManger - 更好的設備支持
- MotionLayout,構建流暢的交互式動畫
12. Android Jetpack項目實戰(從0搭建Jetpack版的
WanAndroid客戶端)
- 項目目的
- 項目簡介
- 項目實戰——登陸模塊、文章模塊、其餘模塊
- 總結
點擊查看:Jetpack架構組件從入門到精通
由於篇幅較長,就暫時只展示這些。
還有耗時一年多整理的一系列Android學習資源:Android源碼解析、Android第三方庫源碼筆記、Android進階架構師七大專題學習、歷年BAT面試題解析包、Android大佬學習筆記
等等,這些內容均免費分享給大家,需要完整版的朋友,點這裏可以看到全部內容
寫在最後:
曾經的你激情滿滿,“我輩豈是蓬蒿人,直掛雲帆濟滄海”。
現在的你得過且過,“老婆孩子熱炕頭,過了一天少三晌”。
你也曾爲生活焦慮,工資低、沒對象、身體發福、年紀增長、20歲就能看到60歲的生活。
可是你太安逸了,然後慢慢的停止了奮鬥,找不到方向,成爲你曾經討厭的樣子。
但現在還來得及嗎?就從這一刻開始吧!