日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

JetPack現(xiàn)在都成了Android開發(fā)必備技能嘛?

 

一、Android JetPack——google多么痛的領(lǐng)悟

最近好幾個小伙伴問我什么是Android JetPack,聽說這個包好像有點(diǎn)牛,帥哥你會不?

我心想什么鬼!Android JetPack這貨不是一個庫,是一整套的庫,是一種信仰一種態(tài)度好么。從前,Android開發(fā)者基本都是被放養(yǎng)的。生態(tài)基本全靠自建,代表有Square全家桶,Glide,Google自己也肯定是出力的,但是并沒有明確Android開發(fā)的幾個大方向,所以安卓的開發(fā)生態(tài)一直是百花齊放百家爭鳴。帶來的問題就是經(jīng)常出現(xiàn)包引用莫名報錯。

事情從2017年發(fā)生了轉(zhuǎn)機(jī),在Google IO 2017,官方終于正視了這個問題開始嘗試管理這個混亂的Android開發(fā)環(huán)境,并推出了Architecture Component,主要有以下幾項(xiàng):

Room: 官方的ORM庫(個人認(rèn)為比GreenDao好用)ViewModel/LiveData:生命周期管理工具,自此Android才真正的應(yīng)用上了MVVM(BTW,DataBinding也歸到了JetPack里)

在2018年,AndroidX橫空出世,并且從1開始,意圖取代經(jīng)常自己打自己臉的Support Lib。

一張圖來看看Google對JetPack有多看重

JetPack現(xiàn)在都成了Android開發(fā)必備技能嘛?

 

那JetPack到底是啥呢?

Jetpack is a suite of libraries, tools, and guidance to help developers write high-quality Apps easier. These components help you follow best practices, free you from writing boilerplate code, and simplify complex tasks, so you can focus on the code you care about.

Jetpack 是一套庫、工具和指南,可幫助開發(fā)者更輕松地編寫優(yōu)質(zhì)應(yīng)用。這些組件可幫助您遵循最佳做法、讓您擺脫編寫樣板代碼的工作并簡化復(fù)雜任務(wù),以便您將精力集中放在所需的代碼上。

二、JetPack里的組件

JetPack現(xiàn)在都成了Android開發(fā)必備技能嘛?

 

上圖就是JetPack中包含的組件列表,每個組件都是相對獨(dú)立的,可以被單獨(dú)使用和構(gòu)建。其中像被介紹的最多,也是最常被使用的LiveData, ViewModel, Room, Navigation, WorkManager之類的都發(fā)布了正式版,而CameraX, Compose之類的還處在Alpha版本,未正式發(fā)布,官方并不建議在生產(chǎn)環(huán)境中使用。

然后說下,JetPack所有的組件都是基于AndroidX構(gòu)建的,如果想在項(xiàng)目中使用JetPack需要先將項(xiàng)目中對Support Lib的依賴全部換成AndroidX。

Android目前已經(jīng)發(fā)展了11年,可以說是比較成熟的技術(shù)了,一開始時框架很少,也沒有什么規(guī)范,所有的代碼都是要自己寫,比如網(wǎng)絡(luò)請求,數(shù)據(jù)庫請求,數(shù)據(jù)解析等等。后來出現(xiàn)了一些框架來幫助開發(fā)者快速進(jìn)行開發(fā),比如XUtils、Volley、OKHttp、EventBus等,隨著框架越來越多,一個應(yīng)用可以有多種技術(shù)選型,直接導(dǎo)致應(yīng)用開發(fā)越來越不規(guī)范,導(dǎo)致做出來的應(yīng)用質(zhì)量參差不齊,這顯然不是谷歌想看到的。谷歌隨后推出了MVP和MVVM相關(guān)的官方例子,效果很一般,而且覆蓋面只是在架構(gòu)上,Goole I/O 2018大會上推出的Android Jetpack有望解決以上的問題。

三、Android Jetpack簡介

Jetpack并不是一個框架或者組件,它是一套庫、工具和指南的集合,可幫助開發(fā)者更輕松地編寫優(yōu)質(zhì)應(yīng)用。這些組件可幫助開發(fā)者遵循最佳做法、擺脫編寫樣板代碼的工作并簡化復(fù)雜任務(wù),以便將精力集中放在所需的代碼上。

Android Jetpack中的很多組件并不都是新開發(fā)的,而是很早就有了,比如在Goole I/O 2017大會時推出了 Android Architecture Component(AAC),它包括了LifeCycle、LiveData、ViewModel、Room。在Goole I/O 2018大會上, 用AndroidX替代了Android Support Library,并在Android Architecture Component的基礎(chǔ)上發(fā)布了Android Jetpack,AndroidX也是屬于Android Jetpack。

Jetpack主要特性有以下三點(diǎn):

1.加速開發(fā) 組件可單獨(dú)使用,也可以協(xié)同工作,當(dāng)使用kotlin語言特性時,可以提高效率。

2.消除樣板代碼 Android Jetpack可管理繁瑣的Activity(如后臺任務(wù)、導(dǎo)航和生命周期管理)。

3.構(gòu)建高質(zhì)量的強(qiáng)大應(yīng)用 Android Jetpack組件圍繞現(xiàn)代化設(shè)計實(shí)踐構(gòu)建而成,具有向后兼容性,可以減少崩潰和內(nèi)存泄漏。

四、Android Jetpack分類

下圖是Jetpack的分類。

JetPack現(xiàn)在都成了Android開發(fā)必備技能嘛?

 

谷歌仍舊不斷的完善Android Jetpack,截至到2019年8月已經(jīng)有很多新加的組件并沒有顯示在上圖中,比如CameraX等。Android Jetpack分類有4種,分別是Architecture、Foundationy、Behavior、UI,下面分別介紹下。

1. Architecture(架構(gòu)組件)

Architecture指的是架構(gòu)組件,幫助開發(fā)者設(shè)計穩(wěn)健、可測試且易維護(hù)的應(yīng)用。架構(gòu)組件可以說是對應(yīng)用開發(fā)幫助最大的組件,本系列也是圍繞著架構(gòu)組件進(jìn)行講解。

DataBinding:以聲明方式將可觀察數(shù)據(jù)綁定到界面元素,通常和ViewModel配合使用。

Lifecycle:用于管理Activity和Fragment的生命周期,可幫助開發(fā)者生成更易于維護(hù)的輕量級代碼。

LiveData: 在底層數(shù)據(jù)庫更改時通知視圖。它是一個可觀察的數(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:友好、流暢的訪問SQLite數(shù)據(jù)庫。它在SQLite的基礎(chǔ)上提供了一個抽象層,允許更強(qiáng)大的數(shù)據(jù)庫訪問。

ViewModel: 以生命周期的方式管理界面相關(guān)的數(shù)據(jù),通常和DataBinding配合使用,為開發(fā)者實(shí)現(xiàn)MVVM架構(gòu)提供了強(qiáng)有力的支持。

WorkManager: 管理Android的后臺的作業(yè),即使應(yīng)用程序退出或設(shè)備重新啟動也可以運(yùn)行可延遲的異步任務(wù)。

官方推薦的Android應(yīng)用架構(gòu)如下圖所示。

JetPack現(xiàn)在都成了Android開發(fā)必備技能嘛?

 

這些架構(gòu)組件既可以配合使用,也可以單獨(dú)使用,這里建議還是盡量按照官方推薦的來。

2. Foundationy(基礎(chǔ)組件)

基礎(chǔ)組件提供橫向功能,例如向后兼容性、測試、安全、Kotlin 語言支持,并包括多個多個平臺開發(fā)的組件。

Android KTX:優(yōu)化了供Kotlin使用的Jetpack和Android平臺API。幫助開發(fā)者以更簡潔、更愉悅、更慣用的方式使用Kotlin進(jìn)行Android開發(fā)。 AppCompat:幫助較低版本的Android系統(tǒng)進(jìn)行兼容。 Auto: 開發(fā)Android Auto應(yīng)用的組件,提供了適用于所有車輛的標(biāo)準(zhǔn)化界面和用戶交互。 檢測:從AndroidStudio中快速檢測基于Kotlin或JAVA的代碼。 多Dex處理:為具有多個Dex文件應(yīng)用提供支持。 安全:安全的讀寫加密文件和共享偏好設(shè)置。 測試:用于單元和運(yùn)行時界面測試的Android 測試框架。 TV: 構(gòu)建可讓用戶在大屏幕上體驗(yàn)沉浸式內(nèi)容的應(yīng)用。 Wear OS:開發(fā)Wear應(yīng)用的組件。

3. Behavior(行為組件)

行為組件可幫助開發(fā)者的應(yīng)用與標(biāo)準(zhǔn)Android服務(wù)(如通知、權(quán)限、分享)相集成。 CameraX:幫助開發(fā)簡化相機(jī)應(yīng)用的開發(fā)工作。它提供一致且易于使用的界面,適用于大多數(shù)Android。 設(shè)備,并可向后兼容至Android 5.0(API 21)。 DownloadManager:處理長時間運(yùn)行的HTTP下載的系統(tǒng)服務(wù)。 媒體和播放:用于媒體播放和路由(包括Google Cast)的向后兼容API。 通知:提供向后兼容的通知API,支持Wear和Auto。 權(quán)限:用于檢查和請求應(yīng)用權(quán)限的兼容性API。 設(shè)置:創(chuàng)建交互式設(shè)置,建議使用AndroidX Preference Library庫將用戶可配置設(shè)置集成到應(yīng)用中。 分享操作:可以更輕松地實(shí)現(xiàn)友好的用戶分享操作。 切片:切片是一種UI模板,創(chuàng)建可在應(yīng)用外部顯示應(yīng)用數(shù)據(jù)的靈活界面元素。

4. UI(界面組件)
Animation and Transition:該框架包含用于常見效果的內(nèi)置動畫,并允許開發(fā)者創(chuàng)建自定義動畫和生命周期回調(diào)。 Emoji Compatibility:即便用戶沒有更新Android系統(tǒng)也可以獲取最新的表情符號。 Fragment:組件化界面的基本單位。 布局:用XML中聲明UI元素或者在代碼中實(shí)例化UI元素。 調(diào)色板:從調(diào)色板中提取出有用的信息。

五、在應(yīng)用中引入Jetpack相關(guān)組件

在項(xiàng)目build.gradle中添加google() 庫,如下所示。

  allprojects {
        repositories {
            google()
            jcenter()
        }    }

如果想引入Room,可以在模塊build.gradle中這么寫:

    implementation   "android.arch.persistence.room:runtime:1.1.1"
    annotationProcessor   "android.arch.persistence.room:compiler:1.1.1 "
    androidTestImplementation  "android.arch.persistence.room:testing:1.1.1"

總結(jié)

這篇文章內(nèi)部不多,旨在讓大家了解Android Jetpack是什么,包括什么,如何引用,從下一篇開始,就開始學(xué)習(xí)Android Jetpack的架構(gòu)組件。

最后對于程序員來說,要學(xué)習(xí)的知識內(nèi)容、技術(shù)有太多太多,要想不被環(huán)境淘汰就只有不斷提升自己,從來都是我們?nèi)ミm應(yīng)環(huán)境,而不是環(huán)境來適應(yīng)我們!

分享到:
標(biāo)簽:開發(fā) Android
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定