溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

還不知道Jetpack,你可能趕不上Android開(kāi)發(fā)時(shí)代的新腳步

發(fā)布時(shí)間:2020-08-11 00:42:30 來(lái)源:ITPUB博客 閱讀:257 作者:yilian 欄目:移動(dòng)開(kāi)發(fā)

第一次看文章的朋友可以關(guān)注我,會(huì)不定期發(fā)布Android面試內(nèi)容、進(jìn)階專題等等。

有句話說(shuō)得好“落后就要挨打”,你想不想被淘汰呢?

簡(jiǎn)介

谷歌在 2018 I/O 大會(huì)上發(fā)布了一系列輔助android開(kāi)發(fā)者的實(shí)用工具,這套工具就是Jetpack,它是一套庫(kù)、工具和指南的合集,可以幫助開(kāi)發(fā)者更輕松地編寫(xiě)和構(gòu)建出色的 Android 應(yīng)用程序。

Jetpack中的有些組件并不是第一次推出,其中LifeCycle、LiveData、ViewModel、Room等組件早在 Google I/O 2017年大會(huì)上就隨著 Android Architecture Component(AAC)一起推出了,但是推廣效果一般。時(shí)隔一年后谷歌在AAC的基礎(chǔ)之上發(fā)布了Jetpack,并發(fā)布了其他工具以解決Android技術(shù)選型亂以及開(kāi)發(fā)不規(guī)范等問(wèn)題。

Jetpack有以下特點(diǎn):

  • 加速開(kāi)發(fā):組件可以單獨(dú)采用(不過(guò)這些組件是為協(xié)同工作而構(gòu)建的),同時(shí)利用 Kotlin 語(yǔ)言功能幫助您提高工作效率。
  • 消除樣板代碼:Jetpack 可管理繁瑣的 Activity(如后臺(tái)任務(wù)、導(dǎo)航和生命周期管理)。
  • 構(gòu)建高質(zhì)量的強(qiáng)大應(yīng)用:Jetpack 組件圍繞現(xiàn)代化設(shè)計(jì)實(shí)踐構(gòu)建而成,具有向后兼容性,可以減少崩潰和內(nèi)存泄漏。

Jetpack分類

Android Jetpack組件共分為四大類,F(xiàn)oundation、Architecture、Behavior和UI。

Foundation(基礎(chǔ)組件):

基礎(chǔ)組件提供了橫向功能,例如向后兼容性、測(cè)試以及Kotlin語(yǔ)言的支持。它包含如下組件庫(kù):

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

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

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

谷歌推薦的應(yīng)用架構(gòu):

還不知道Jetpack,你可能趕不上Android開(kāi)發(fā)時(shí)代的新腳步

Behavior(行為):

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

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

界面組件可提供各類view和輔助程序,讓?xiě)?yīng)用不僅簡(jiǎn)單易用,還能帶來(lái)愉悅體驗(yàn)。它包含如下組件庫(kù):

  • Animation & Transitions(動(dòng)畫(huà)&過(guò)度):提供各類內(nèi)置動(dòng)畫(huà),也可以自定義動(dòng)畫(huà)效果。
  • Emoji(表情符號(hào)):使用戶在未更新系統(tǒng)版本的情況下也可以使用表情符號(hào)。
  • Fragment:組件化界面的基本單位。
  • Layout(布局):xml書(shū)寫(xiě)的界面布局或者使用Compose完成的界面。
  • Palette(調(diào)色板):從調(diào)色板中提取出有用的信息。

使用Jetpack

目前Jetpack組件已經(jīng)包含在AndroidX中,所以如果項(xiàng)目以及遷移到了AndroidX了,就不需要額外導(dǎo)包。如果沒(méi)有兼容AndroidX 那么需要在gradle中進(jìn)行配置:

打開(kāi)項(xiàng)目的build.gradle添加google()代碼庫(kù),如下:

allprojects {
    repositories {
        google()
        jcenter()
    }}復(fù)制代碼

比如只是單純的使用Lifecycle,那么打開(kāi)app的build.gradle 進(jìn)行依賴的添加:

implementation "android.arch.lifecycle:runtime:$lifecycle_version"annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version"implementation "android.arch.lifecycle:common-java8:$lifecycle_version"復(fù)制代碼

總結(jié)

本篇文章主要介紹了Jetpack組件的由來(lái)以及分類,詳細(xì)解釋了每一個(gè)細(xì)分組件的含義。讓大家對(duì)Jetpack有充分的了解,每一個(gè)組件都可以單獨(dú)或者組合使用。

還有Java語(yǔ)言進(jìn)階與內(nèi)核、Android進(jìn)階、移動(dòng)架構(gòu)師項(xiàng)目、微信小程序員開(kāi)發(fā)、跨平臺(tái)flutter開(kāi)發(fā)等學(xué)習(xí)視頻

還不知道Jetpack,你可能趕不上Android開(kāi)發(fā)時(shí)代的新腳步 Android學(xué)習(xí)PDF_源碼筆記_面試文檔_進(jìn)階視頻.pdf

還不知道Jetpack,你可能趕不上Android開(kāi)發(fā)時(shí)代的新腳步

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI