Android JetPack介紹

1、什么是Jetpack

Google 官方解釋:

Jetpack 是一個由多個庫組成的套件呆抑,可幫助開發(fā)者遵循最佳做法汁展,減少樣板代碼并編寫可在各種 Android 版本和設(shè)備中一致運行的代碼厌殉,讓開發(fā)者精力集中編寫重要的代碼公罕。

Jetpack 是 Google 為解決 Android 開發(fā)碎片化耀销,打造成熟健康生態(tài)圈提出的戰(zhàn)略規(guī)劃,是 Google 對 Android 未來提出的發(fā)展方向罐柳,同時它也是眾多優(yōu)秀 Android 組件的集合狰住。

2、為何使用 Android Jetpack

  • 遵循最佳做法:Android Jetpack 組件采用最新的設(shè)計方法構(gòu)建肮蛹,具有向后兼容性创南,可以減少崩潰和內(nèi)存泄露。

  • 消除樣板代碼:Android Jetpack 可以管理各種繁瑣的 Activity(如后臺任務(wù)昆码、導(dǎo)航和生命周期管理)邓深,以便您可以專注于打造出色的應(yīng)用芥备。

  • 減少不一致:這些庫可在各種 Android 版本和設(shè)備中以一致的方式運作,助您降低復(fù)雜性萌壳。

Jetpack 的優(yōu)勢:

Jetpack 擁有基于生命周期感知的能力袱瓮,可以減少 NPE(空指針異常) 崩潰、內(nèi)存泄漏绊起,為開發(fā)出健壯且流暢的程序提供強力保障燎斩;

Jetpack 可以消除大量重復(fù)樣板式的代碼蜂绎,可以加速 Android 的開發(fā)進(jìn)程师枣,組件可搭配工作萧落,也可單獨使用,同時配合 Kotlin 語言特性能夠顯著提高工作效率陨倡;

統(tǒng)一開發(fā)模式许布,拋棄傳統(tǒng)的 MVC, MVP;

3、JetPack 的構(gòu)成

image

Android Jetpack組件共分為四大類灵妨,Architecture落竹、Foundation述召、Behavior和UI。

Architecture(架構(gòu)組件):
架構(gòu)組件可幫助開發(fā)者設(shè)計穩(wěn)健积暖、可測試且易維護(hù)的應(yīng)用夺刑。它包含如下組件庫:

  • Data Binding(數(shù)據(jù)綁定):數(shù)據(jù)綁定庫是一種支持庫,借助該庫存淫,可以使用聲明式將布局中的界面組件綁定到應(yīng)用中的數(shù)據(jù)源沼填。
  • Lifecycles:方便管理 Activity 和 Fragment 生命周期坞笙,幫助開發(fā)者書寫更輕量荚虚、易于維護(hù)的代碼忌愚。
  • LiveData:是一個可觀察的數(shù)據(jù)持有者類。與常規(guī)observable不同院水,LiveData是有生命周期感知的简十。
  • Navigation:處理應(yīng)用內(nèi)導(dǎo)航所需的一切螟蝙。
  • Paging:幫助開發(fā)者一次加載和顯示小塊數(shù)據(jù)。按需加載部分?jǐn)?shù)據(jù)可減少網(wǎng)絡(luò)帶寬和系統(tǒng)資源的使用场斑。
  • Room:Room持久性庫在SQLite上提供了一個抽象層牵署,幫助開發(fā)者更友好、流暢的訪問SQLite數(shù)據(jù)庫青责。
  • ViewModel:以生命周期感知的方式存儲和管理與UI相關(guān)的數(shù)據(jù)取具。
  • WorkManager:即使應(yīng)用程序退出或設(shè)備重新啟動暇检,也可以輕松地調(diào)度預(yù)期將要運行的可延遲異步任務(wù)。

Foundation(基礎(chǔ)組件):
基礎(chǔ)組件提供了橫向功能心墅,例如向后兼容性榨乎、測試以及Kotlin語言的支持蜜暑。它包含如下組件庫:

  • Android KTX:Android KTX 是一組 Kotlin 擴(kuò)展程序,它優(yōu)化了供Kotlin使用的Jetpack和Android平臺的API隐绵。以更簡潔、更愉悅依许、更慣用的方式使用Kotlin進(jìn)行Android開發(fā)峭跳。
  • AppCompat:提供了一系列以AppCompat開頭的API,以便兼容低版本的Android開發(fā)悬襟。
  • Cars(Auto):有助于開發(fā) Android Auto 應(yīng)用的組件拯刁,無需擔(dān)心特定于車輛的硬件差異(如屏幕分辨率、軟件界面割捅、旋鈕和觸摸式控件)帚桩。
  • Benchmark(檢測):從 Android Studio 中快速對基于 Kotlin 或 Java 的代碼進(jìn)行基準(zhǔn)化分析朗儒。衡量代碼性能参淹,并將基準(zhǔn)化分析結(jié)果輸出到 Android Studio 控制臺。
  • Multidex(多Dex處理):為方法數(shù)超過 64K 的應(yīng)用啟用多 dex 文件恳不。
  • Security(安全):按照安全最佳做法讀寫加密文件和共享偏好設(shè)置。
  • Test(測試):用于單元和運行時界面測試的 Android 測試框架开呐。
  • TV:構(gòu)建可讓用戶在大屏幕上體驗沉浸式內(nèi)容的應(yīng)用烟勋。
  • Wear OS:有助于開發(fā) Wear 應(yīng)用的組件。

Behavior(行為):
行為組件可幫助開發(fā)者的應(yīng)用與標(biāo)準(zhǔn) Android 服務(wù)(如通知筐付、權(quán)限卵惦、分享和 Google 助理)相集成。它包含如下組件庫:

  • CameraX:幫助開發(fā)者簡化相機應(yīng)用的開發(fā)工作瓦戚。它提供一致且易于使用的 API 界面沮尿,適用于大多數(shù) Android 設(shè)備,并可向后兼容至 Android 5.0(API 級別 21)较解。
  • DownloadManager(下載管理器):可處理長時間運行的HTTP下載畜疾,并在出現(xiàn)故障或在連接更改和系統(tǒng)重新啟動后重試下載赴邻。
  • Media & playback(媒體&播放):用于媒體播放和路由(包括 Google Cast)的向后兼容 API啡捶。
  • Notifications(通知):提供向后兼容的通知 API姥敛,支持 Wear 和 Auto。
  • Permissions(權(quán)限):用于檢查和請求應(yīng)用權(quán)限的兼容性 API瞎暑。
  • Preferences(偏好設(shè)置):提供了用戶能夠改變應(yīng)用的功能和行為能力彤敛。
  • Sharing(共享):提供適合應(yīng)用操作欄的共享操作欢摄。
  • Slices(切片):創(chuàng)建可在應(yīng)用外部顯示應(yīng)用數(shù)據(jù)的靈活界面元素瞬沦。

UI(界面組件):
界面組件可提供各類view和輔助程序,讓應(yīng)用不僅簡單易用坏平,還能帶來愉悅體驗揍拆。它包含如下組件庫:

  • Animation & Transitions(動畫&過度):提供各類內(nèi)置動畫渠概,也可以自定義動畫效果。
  • Emoji(表情符號):使用戶在未更新系統(tǒng)版本的情況下也可以使用表情符號嫂拴。
  • Fragment:組件化界面的基本單位播揪。
  • Layout(布局):xml書寫的界面布局或者使用Compose完成的界面。
  • Palette(調(diào)色板):從調(diào)色板中提取出有用的信息筒狠。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末猪狈,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子辩恼,更是在濱河造成了極大的恐慌雇庙,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灶伊,死亡現(xiàn)場離奇詭異疆前,居然都是意外死亡,警方通過查閱死者的電腦和手機聘萨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門竹椒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人米辐,你說我怎么就攤上這事胸完。” “怎么了翘贮?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵赊窥,是天一觀的道長。 經(jīng)常有香客問我狸页,道長誓琼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮腹侣,結(jié)果婚禮上叔收,老公的妹妹穿的比我還像新娘。我一直安慰自己傲隶,他們只是感情好饺律,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著跺株,像睡著了一般复濒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乒省,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天巧颈,我揣著相機與錄音,去河邊找鬼袖扛。 笑死砸泛,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蛆封。 我是一名探鬼主播唇礁,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼惨篱!你這毒婦竟也來了盏筐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤砸讳,失蹤者是張志新(化名)和其女友劉穎琢融,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體簿寂,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡吏奸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了陶耍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡她混,死狀恐怖烈钞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情坤按,我是刑警寧澤毯欣,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站臭脓,受9級特大地震影響酗钞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一砚作、第九天 我趴在偏房一處隱蔽的房頂上張望窘奏。 院中可真熱鬧,春花似錦葫录、人聲如沸着裹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽骇扇。三九已至,卻和暖如春面粮,著一層夾襖步出監(jiān)牢的瞬間少孝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工熬苍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留稍走,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓冷溃,卻偏偏與公主長得像钱磅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子似枕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容