丁香五月亚洲,日女人在线,太阳城色网,韩日AV在线秒放

2020 年需要關(guān)注的 5 大 Android 開發(fā)技術(shù)(android開發(fā)相關(guān)技術(shù))

雖然編程環(huán)境每天都有新變化,但 Android 無疑是其中更新迭代最頻繁的,每年甚至每個月都有新東西。本文介紹了 2020 年開發(fā)者最需要關(guān)注的 5 大 Android 開發(fā)技術(shù)。

在眾多 Android 開發(fā)團隊參加的 Droidcon London 2019 大會上,一系列新技術(shù)令人眼花繚亂。從 Joe Birch 介紹的無障礙智能吉他到即將到來的 Jetpack Compose 庫,創(chuàng)新內(nèi)容實在太多了,主流社區(qū)需要找到幾項核心技術(shù)才不至于迷失方向。

020

這篇文章就帶著大家一起看看需要重點關(guān)注的一些核心技術(shù),同時本文會解釋為什么應(yīng)該優(yōu)先實現(xiàn)這些技術(shù),以及實現(xiàn)的一些初始途徑。需要特別強調(diào)一下,實現(xiàn)這些技術(shù)雖然不會讓你的終端用戶發(fā)出驚嘆,但它們能幫助開發(fā)者打造震撼人心的特性,并為開發(fā)人員帶來更賞心悅目的代碼庫!

1. Kotlin

Kotlin 通常被視為下一個 Java,它是由谷歌和 JetBrains(Android Studio 開發(fā)者)贊助的。Java 從一開始就一直是 Android 應(yīng)用的首選開發(fā)語言,但近年來 Kotlin 迅速普及,如今在 10,000 種 Google Play 應(yīng)用中有近 60%使用了 Kotlin 。雖說在少數(shù)需要訪問底層原生代碼的情況下,仍會繼續(xù)使用 C ;但在其他情況下,Kotlin 都可以代替 Java。

Kotlin 的主要優(yōu)勢是與 Java 的完全互操作性,這意味著開發(fā)人員可以盡可能遷移舊代碼,而不用完全重寫整個應(yīng)用程序。這兩種語言兼容得很好,Android Studio 甚至可以自動從 Java 轉(zhuǎn)換為 Kotlin。

這種兼容性,加上更簡潔的語法和數(shù)百項細小改進,使 Kotlin 在 StackOverflow 的 2019 年開發(fā)人員調(diào)查中成為第四大“最受歡迎”和第五大“想要”的編程語言,在所有移動編程語言中排名最高。

遷移現(xiàn)有應(yīng)用有一個好方法,就是在修改現(xiàn)有 Java 文件時將其轉(zhuǎn)換為 Kotlin。雖然這意味著你要把經(jīng)常編輯的文件轉(zhuǎn)換過去,會增加代碼審查的復(fù)雜度(比如會面臨潛在的沖突),但由于轉(zhuǎn)換后的區(qū)域能得到審查,因此可以確保任何問題都能被發(fā)現(xiàn)。

目前 Candyspace 中使用的 Kotlin 代碼占 86%(并且一直在增長),其余的 14%是實用工具 / 轉(zhuǎn)換代碼,這些代碼已經(jīng)有些年頭沒改動過了。

2. Jetpack

谷歌的 AndroidX/Jetpack 庫是一組實用工具,旨在簡化常見的應(yīng)用需求。例如用于設(shè)備上數(shù)據(jù)庫的 Room ,或用來在底層數(shù)據(jù)更改時更新顯示內(nèi)容的 LiveData 。

有了 Jetpack 庫,新項目就省掉了重新發(fā)明輪子的麻煩,也不必等待其他開發(fā)人員來開源他們的實現(xiàn)方式,現(xiàn)在每位開發(fā)者都能獲取到那些基礎(chǔ)要素了。這些庫更新非常頻繁,新功能不斷推出,錯誤修復(fù)也會及時發(fā)布。由于這些庫是為了協(xié)同工作而構(gòu)建的,因此多使用 AndroidX 庫有助于最大程度地減少應(yīng)用中出現(xiàn)意外。

020

從開發(fā)工作起步開始就使用 Jetpack 庫可以節(jié)省數(shù)百小時的時間,但我們也可以將已有的應(yīng)用遷移到 Jetpack 庫上面。雖然看起來很麻煩,但由于這些庫非常流行,針對遷移工作的指南也很容易找到。至少,底層 Android 元素(視圖、片段等)可以自動轉(zhuǎn)換。

在 Candyspace,我們使用了 Data Binding 和 ViewModel,并可能很快加入 Room 和 Navigation。

3. 模塊化設(shè)計

一直以來,應(yīng)用都被構(gòu)建為一個巨大的“應(yīng)用”模塊,其中包含整個應(yīng)用所需的一切。盡管這樣做確實能讓資源共享起來更容易,但也意味著這個應(yīng)用的某些部分無法為其他應(yīng)用 / 開源項目所重用;更重要的是,對應(yīng)用做出更改時必須重新編譯整個代碼庫。

相反,如果應(yīng)用由許多較小的模塊組成,則只需重新編譯做出更改的代碼即可,從而大大縮短了構(gòu)建時間。此外,模塊化設(shè)計還為高級 Android 特性(例如即時應(yīng)用——用戶無需安裝任何內(nèi)容即可使用你的應(yīng)用的部分功能,和動態(tài)特性——按需安裝應(yīng)用的各個部分)的應(yīng)用打開了大門。

將一款現(xiàn)有應(yīng)用拆分為多個模塊可能會是一個很復(fù)雜的工作,因為會因此而發(fā)現(xiàn)之前隱藏的問題(“DateUtility 是什么東西?為什么每個類都需要它?。俊保?;但是一旦改造完成,代碼庫就會進入一種更加健康的狀態(tài)。另外,如果一款新的應(yīng)用需要類似的功能,則可以快速重用已有模塊,從而大大節(jié)省時間!

020

模塊化應(yīng)用架構(gòu)的一個示例(來源:本文作者創(chuàng)建?。?/p>

雖然設(shè)計一個模塊化架構(gòu)可能是很復(fù)雜的任務(wù),但我之前已經(jīng)寫過一些指導(dǎo)性原則,這些原則受到了 Nikits Kozlov 關(guān)于模塊化和構(gòu)建時間的文章的啟發(fā)。Plaid 也寫了一篇介紹他們向模塊化設(shè)計遷移經(jīng)驗的文章。

在 Candyspace,我們的應(yīng)用設(shè)計都是完全模塊化的,以盡量減少構(gòu)建時間對開發(fā)工作的中斷影響。

4. App Bundle

使用傳統(tǒng)的 APK 將應(yīng)用分發(fā)到用戶的設(shè)備時,必須安裝針對所有設(shè)備準備的所有資源。這意味著每張位圖圖像可能會有 5 個副本(用于不同的屏幕精度),還要安裝針對不同設(shè)備架構(gòu)的多個庫版本,甚至還得安裝多組邊距和填充值。

使用 App Bundle 分發(fā)一款應(yīng)用時,用戶下載的 APK 只包含他們實際所需要的資源。這樣一來,平均的應(yīng)用大小就會減少 20%,而未經(jīng)優(yōu)化的應(yīng)用改換格式后應(yīng)用大小將會得到更顯著的縮減。

020

縮減應(yīng)用大小的示例(資料來源: https://events.google.com/io2018/)

App Bundles 是 18 個月前剛剛誕生的,但已經(jīng)有超過 25%的應(yīng)用安裝時使用了這種格式!這是谷歌推薦使用的格式,并且大多數(shù)應(yīng)用幾乎無需改動就能使用這種格式,只需在 Play 商店上處理一下 App Bundle 的簽名即可。

在 Candyspace,我們正在遷移到 App Bundles 上,同時盡量避免破壞我們現(xiàn)有的工作流程(Slack、QAing 構(gòu)建、非 Google Play 安裝)。Alistair Sykes 的文章是一份很棒的遷移參考資料,文章考慮到了 CI 服務(wù)器、Slack 和 Google Play 內(nèi)部應(yīng)用共享等事項。

5. 測試

是的,測試。當然,測試并不是什么閃亮的新特性,也不是用戶能看到的內(nèi)容,但想要確保一款已有一定用戶基礎(chǔ)的應(yīng)用的可靠性,就必須要徹底測試你的應(yīng)用程序才行。由于崩潰率會直接影響你的 Play 商店評分(并且肯定會拖累評分?。?,因此應(yīng)該設(shè)法將其保持在較低水平上。

020

測試金字塔(來源:developer.android.com)

Android 的三種最常見的測試類型分別是(降序排列):

  • 單元測試,例如:我的平方根函數(shù)會返回平方根嗎?

這些測試將構(gòu)成你測試流程的大部分內(nèi)容,它們用來確保特定的代碼段(例如一個函數(shù))能按預(yù)期正常運行。當你對一個部件建立起信心后,就可以將其用于…

  • 集成測試。例如:我的數(shù)學模塊可以與位置模塊協(xié)同工作嗎?

這些測試可確保你的各個代碼區(qū)域(模塊或?qū)樱┛梢哉f(xié)同工作。知道應(yīng)用的組件可以正確相互通信后,你就可以添加…

  • 自動化的 UI 測試,例如:用戶可以在應(yīng)用上標記一個位置嗎?

在設(shè)備或仿真器上只會運行這些測試,它們能確保應(yīng)用按預(yù)期提供完整的用戶體驗。這些測試通常比其他類型的測試要慢得多(并且運行起來更加不便)。

谷歌建議將測試的分布定為 70%的單元測試、20%的集成測試和 10%的大型測試,占比較小的部分需要更長的執(zhí)行時間、維護時間和實施時間。

最好的測試資源是官方文檔,因為它提供了所有測試類型的介紹,以及如何將其實現(xiàn)到項目中的教程。

在 Candyspace,我們將重點放在單元測試上,其占比要比谷歌建議的比例更大,以確保所有新類的行為都是可預(yù)測的。我們目前還在改進自動 UI 測試,以減少對手動測試的依賴。

在編程的任何領(lǐng)域,關(guān)于解決問題的最佳方法都會有一百種不同的意見;但 Android 有絕對優(yōu)勢:Android 擁有一個龐大的開發(fā)者社區(qū),這意味著一個十分優(yōu)秀的新技術(shù)會迅速在開發(fā)者中普及。當你在互聯(lián)網(wǎng)上向陌生人尋求幫助時,如果你找的是“Jetpack LiveData”而不是“之前的開發(fā)人員從 Web 開發(fā)者朋友那里復(fù)制并轉(zhuǎn)換的庫”,成功獲得答案的可能性就會大得多!

維持一個健康的代碼庫的關(guān)鍵,就是能夠適應(yīng)這些不斷變化的標準并重構(gòu)現(xiàn)有項目。為了了解最新的 Android 開發(fā)實踐和最佳做法,我推薦大家關(guān)注 Android 開發(fā)者博客、 /r/AndroidDev subreddit 和 Fragmented 播客。

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2023年4月20日 上午9:24
下一篇 2023年4月20日 上午9:40

相關(guān)推薦

  • 黃頁88 中智信投研究網(wǎng)

    黃頁88 中智信投研究網(wǎng):投資界的“百科全書” 黃頁88 中智信投研究網(wǎng)是一家專業(yè)的投資研究機構(gòu),致力于為客戶提供全方位的投資咨詢和解決方案。作為投資界的“百科全書”,黃頁88 中…

    科研百科 2024年11月11日
    3
  • 安徽大學科研獎勵

    安徽大學科研獎勵 近年來,安徽大學在學術(shù)研究方面取得了令人矚目的成就,獲得了多項重要的科研獎勵。這些獎勵不僅是對安徽大學研究人員辛勤工作的肯定,更是對學校科研實力的提升和推動。 2…

    科研百科 2024年10月7日
    5
  • WeTool 不能用了 還能用什么微信群管理軟件(wetool微信社群管理工具)

    WeTool可以說是很多社群運營人最喜歡的軟件之一,它能在客戶入群后,自動發(fā)送歡迎語,無需我們手動發(fā)送。將群聊中打廣告的客戶自動踢出,并拉進黑名單,幫助我們高效管理群聊。 然后還有…

    2022年7月2日
    923
  • 中國石油:揚起“智慧黨建”的風帆(中國石油智慧黨建研究)

    來源:鐵人先鋒 七一前夕,中國石油慶祝中國共產(chǎn)黨成立100周年表彰大會在“鐵人先鋒”平臺同步直播,10.4萬名黨員在線聆聽中國石油集團公司黨組書記、董事長戴厚良講授專題黨課,重溫入…

    科研百科 2023年6月27日
    573
  • 九大三維軟件,Maya用途最廣,C4D運算最高,渲染強大!(三維maya軟件下載)

    今天給大家?guī)淼氖侨S軟件,三維軟件就是用于三維設(shè)計(3D設(shè)計)的軟件,三維設(shè)計是建立在平面和二維設(shè)計的基礎(chǔ)的一種更立體化,更形象化的設(shè)計方法。大家可能都知道,在我們平時的生活中,…

    科研百科 2024年5月6日
    64
  • 5min速成游戲外掛開發(fā)指南

    Hello,各位小伙伴,我是元蟲。 不知道收假后的周一,你們還好嗎。 作為一名資深的游戲肥宅,元蟲本準備宅夠3天,和鐘愛手游甜蜜共渡。然而,吃雞老司機的我,第一次被“神仙”(俗稱“…

    科研百科 2024年5月1日
    47
  • 科技計劃項目經(jīng)費預(yù)算表

    科技計劃項目經(jīng)費預(yù)算表 本文介紹了科技計劃項目經(jīng)費預(yù)算表的結(jié)構(gòu)和內(nèi)容??萍加媱濏椖拷?jīng)費預(yù)算表是一份用于計劃和跟蹤科技項目資金需求的表格,它可以幫助組織更好地管理項目資金,確保項目能…

    科研百科 2024年7月11日
    26
  • 云協(xié)同辦公下載

    云協(xié)同辦公下載: 實現(xiàn)高效協(xié)作的利器 隨著云計算技術(shù)的不斷發(fā)展,云協(xié)同辦公下載已成為現(xiàn)代企業(yè)實現(xiàn)高效協(xié)作的利器。下載云協(xié)同辦公軟件,可以輕松地與同事進行在線溝通、文件共享和協(xié)作,大…

    科研百科 2025年1月2日
    2
  • 課題類型

    課題類型: 教育研究 題目: 學生自主學習能力培養(yǎng)的重要性 摘要: 學生自主學習能力是學生在學習過程中自主探究、思考和解決問題的能力,是學生綜合素質(zhì)的重要組成部分。隨著教育改革的不…

    科研百科 2024年11月16日
    4
  • 象山投資項目管理系統(tǒng)

    象山投資項目管理系統(tǒng) 隨著經(jīng)濟的發(fā)展,企業(yè)投資項目越來越多,但是投資項目的管理卻存在著許多問題。為了更好地管理投資項目,象山投資項目管理系統(tǒng)應(yīng)運而生。 象山投資項目管理系統(tǒng)是一種集…

    科研百科 2024年12月13日
    1
免费看无码超爽激情视频| av无码免费播放淫片| 国产精品麻豆三级一区视频| 高潮喷水免费在线观看视频| 欧美激情精品久久久久久变态| 久久精品免费观看久久| 日韩欧美亚洲日韩| 欧美走宗合精品| 无码一二三区| 欧美一级在线现看| 久久久密挑| 日韩视频在线观看| 麻豆91久久久久综合| 久久久大尺度视频| 亚洲有码欧美有码| 四虎影视MP4| 簧片大全一区二区| www.成人自慰| 欧美综合色久| 精品www久久蜜桃| 国产粉嫩在线| 国产图区综合| 国产免看一级a一片成人AV| 免费港奥台特级毛片| 亚洲Av色无码乱码在线观看国产| 老司机www日韩| 久久精品欧美日本| 日本乱伦息子中文| 老熟妇奶水在线| 日韩69Av视频在线观看| 开心5月综合另类一区| 久久国产AV电影| 日韩欧美另类久久久精品 | 天天舔日日| 天天综合色香| 91.www成人福利网站| a天堂中文在线| 亚洲人成在线观看网站无码| 欧美丝袜高跟鞋一区二区| 亚洲色A炮| 亚洲国产aⅴ精品一区二区麻豆 |