0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Android碎片化 JetPack有何意義

張康康 ? 2019-06-13 10:48 ? 次閱讀

前言

作為一名Android老司機,什么Square全家桶,Glide, 各種Bus, MVP,MVVM等等跟Android開發(fā)相關的主流的名詞那都是如數家珍 。

很多時候我們吐槽,Android碎片化嚴重,Google爸爸又天高皇帝遠,對國內的Android生態(tài)又心有余而力不足。國內的Android開發(fā)者很長一段時間也基本處于散養(yǎng)的狀態(tài)。項目的庫基本都是用上面說到的主流庫,自己動手,豐衣足食。

可能大部分開發(fā)者們更focus的是當下的某個技術點,而缺乏從整個架構戰(zhàn)略的方向去看待圈內的整個生態(tài)。

于是搜集了這方面的資料并做出總結,讓閱讀本文的人大體了解這是什么?為什么有這個?這個東西主要包含了哪些功能?都解決了什么問題?以及學習成本等問題。

1.相關歷史背景

官方JetPack介紹(科學上網)

大體上,JetPack是Google推出的一些庫的集合。是Android基礎支持庫SDK以外的部分。包含了組件、工具、架構方案等...開發(fā)者可以自主按需選擇接入具體的哪個庫。

從Goole IO 2017開始。Google 開始推出Architecture Component, ORM庫Room, 用戶生命周期管理的ViewModel/ListData.

Goole IO 2018將Support lib 更名為androidx. 將許多Google認為是正確的方案和實踐集中起來。以高效的開發(fā)Android APP.

以上種種,現在統(tǒng)稱為JetPack. 其最核心的出發(fā)點就是幫助開發(fā)者快速構建出穩(wěn)定、高性能、測試友好同時向后兼容的APP。

2.組成部分

前面講到過,JetPack是一系列庫和工具的集合,它更多是Google的一個提出的一個概念,或者說態(tài)度。

并非所有的東西都是每年在IO大會上新推出的,它也包含了對現有基礎庫的整理和擴展。在大部分項目中其實我們都有用到JetPack的內容,也許你只是不知道而已。讓我們以上帝視角來看看整個JetPack除了你熟悉的部分,還有哪些是你不熟悉但是聽過的內容??纯此麄兌寄茏鲂┦裁词虑?。

對于一些較少接觸到的一些庫我會提供一些第三方鏈接(CSDN、簡書、掘金)作為拓展閱讀,參考和學習。

從官方的介紹來看。JetPack總體包含四部分內容:

基礎

AppCompat : 使得支持較低的Android版本。從以前繼承Activity到現在繼承AppCompatActivity 就是屬于這一部分。

Android KTX: Kotlin的擴展支持庫

Multidex: 多dex文件支持

Test: 測試支持庫

架構

Data Binding: MVVM的一種實踐

Lifecycles: 管理你的 Activity 和 Fragment 生命周期

LiveData: 通過觀察者模式感知數據變化,類比RxJava

Navigation: 處理Fragment導航相關邏輯

Paging: 分頁數據加載方案

Room: 官方ORM庫

ViewModel: 通過數據驅動V視圖發(fā)生改變

WorkManager: 管理后臺任務

行為

DownloadManager: 管理下載任務

Media app: 多媒體播放和一些向后兼容的API。主要包含MediaPalyer和ExoPlayer

Notifications: 提供向后兼容的通知 API,支持 Wear 和 Auto

Permissions: 權限管理,這個應該都接觸過。用于檢查和請求應用權限

Settings: Preference相關API?;久總€應用都會用到

Share Action: 提供分享操作。這塊在國內使用的不多,都是自己封裝或者采用第三方方案。

Slices: 可以讓應用通過外部(其他APP)顯示APP界面(通過設備自帶的搜索,語音助手等)

界面

界面部分所包含的東西基本是我們接觸的最多的了:

Animations and Transitions: 動畫,界面轉場等

Auto: 針對車輛的標準化界面和模式。這方面實在接觸的少,不感妄加評論。

Emoji: Emoji 相關。這個...同上面的Auto吧

Fragment: 基礎概念

Layout: 基礎概念

Palette-Colors: 調色板。接觸的不多

TV: Android TV 開發(fā)相關

Wear: 可穿戴設備(目前主要是手表)開發(fā)相關

3.如何看待JetPack?

前文說過了,JetPack更多是一種概念和態(tài)度。相當于Google把自己的Android生態(tài)重新整理了一番。確立了Android未來的版圖和大方向。

JetPack里目前包含的內容,未來也會是Google大力維護和擴展的內容。對應開發(fā)者來說也是值得去學習使用的且相對無后顧之憂的。JetPack里沒有的,除開一些優(yōu)秀的第三方庫,未來應該也會慢慢被新的API替代,逐漸邊緣化,直至打上Deprecate注解。

以當下的環(huán)境來說,要開發(fā)出一個完全擺脫JetPack的APP是很難做到的。但是反過來講JetPack也遠遠沒有到成熟的地步,目前也還存在亟待解決的問題,未來可以做的事情還有很多。

關于使用的話,并不是所有庫都建議使用,因為目前還有很多庫在alpha版本。但是作為學習還是很有必要的,能給你日常的開發(fā)中多提供一些思路,這些是無可厚非的。

總的來說,JetPack的推廣對廣大開發(fā)者而言是利遠遠大于弊的。

最后,感謝你閱讀到這里。但愿這篇文章能讓你對Android有一個新的視角和看法。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    3937

    瀏覽量

    127454
收藏 人收藏

    評論

    相關推薦

    集成運放這種形式有何意義

    整個結構只有上面的電阻和電容,該運放不需要平衡電阻。最大的困惑是在2腳前沒有電阻形成固定增益,該電路輸出等于電源電壓,增益無窮大,這樣有何意義?
    發(fā)表于 10-07 17:24

    這種集成運放結構有何意義

    整個結構只有上面的電阻和電容,該運放不需要平衡電阻。最大的困惑是在2腳前沒有電阻形成固定增益,該電路輸出等于電源電壓,增益無窮大,這樣有何意義?
    發(fā)表于 10-07 17:26

    研究保險絲的溫升有何意義

    研究保險絲的溫升有何意義?深圳市松美健電子實業(yè)有限公司專員回答:保險絲的溫升主要是指保險絲中在流過1.1倍率(110%)的額定電流的時候,保險絲的溫度上升值。也就是實際測得的溫度減去環(huán)境溫度的值
    發(fā)表于 05-15 10:04

    物聯(lián)網生物識別技術究竟有何意義?

    說到物聯(lián)網生物識別技術大家感覺脫離我們的日常生活,本文帶大家近距離了解物聯(lián)網生物識別技術究竟有何意義?各位工程師讀完此文心里就清楚多了!
    發(fā)表于 10-21 09:57

    基地址已經可以區(qū)分了,加一個相同的偏移地址有何意義?

    `基地址已經可以區(qū)分了,加一個相同的偏移地址有何意義?`
    發(fā)表于 02-02 13:55

    基于嵌入式計算平臺去設計虛擬儀器系統(tǒng)有何意義

    基于嵌入式計算平臺去設計虛擬儀器系統(tǒng)有何意義?
    發(fā)表于 04-09 07:08

    雙層屏蔽有何意義?

    雙層屏蔽有何意義
    發(fā)表于 05-27 06:27

    晶體管的電參數在實際使用中有何意義?

    晶體管的電參數可分為哪幾種?晶體管的電參數在實際使用中有何意義?
    發(fā)表于 06-08 06:11

    慣量是什么意思?有何意義?

    慣量是什么意思?慣量有什么作用?有何意義?伺服電機選型時,為什么要慣量匹配?
    發(fā)表于 06-28 09:11

    斷路器符號的含義是什么?斷路器符號有何意義?

    斷路器符號的含義是什么?斷路器用什么電路符號表示?斷路器符號有何意義?
    發(fā)表于 07-11 07:46

    STM32F407看門狗有何意義

    STM32F407看門狗有何意義?STM32F407看門狗有何功能?
    發(fā)表于 09-24 06:55

    DCS集散控制系統(tǒng)時鐘同步有何意義

    DCS集散控制系統(tǒng)時鐘同步有何意義?DCS系統(tǒng)現場時鐘同步有哪些應用?
    發(fā)表于 09-30 08:45

    研究保險絲的溫升有何意義?

    研究保險絲的溫升有何意義?   保險絲的溫升是指保險絲中流過1.1倍(110%)額定電流時,保險絲的溫度上升值,即實測溫度減去環(huán)境溫度的值。UL標準將其上限
    發(fā)表于 11-12 09:14 ?1039次閱讀

    MT-002: 奈奎斯特準則對數據采樣系統(tǒng)設計有何意義

    MT-002: 奈奎斯特準則對數據采樣系統(tǒng)設計有何意義
    發(fā)表于 03-20 10:16 ?4次下載
    MT-002: 奈奎斯特準則對數據采樣系統(tǒng)設計<b class='flag-5'>有何意義</b>

    空氣質量實時監(jiān)測系統(tǒng)的使用有何意義

    空氣質量實時監(jiān)測系統(tǒng)的使用有何意義【霍爾德HED-APEG-AQ1】近幾年,環(huán)境污染問題一直都困擾著人們的生活,尤其是大氣污染問題不僅嚴重威脅著人類的生命健康,而且也造成了生態(tài)破壞。隨著城市大氣污染的日益惡化
    發(fā)表于 06-11 10:52 ?1173次閱讀