无码人妻丰满熟妇奶水区码,麻豆一区区三,亚洲日韩欧美精品综合,亚洲无码地址

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

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

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

020

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

1. Kotlin

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

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

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

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

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

2. Jetpack

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

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

020

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

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

3. 模塊化設(shè)計(jì)

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

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

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

020

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

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

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

4. App Bundle

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

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

020

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

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

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

5. 測試

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

020

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

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

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

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

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

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

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

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

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

最好的測試資源是官方文檔,因?yàn)樗峁┝怂袦y試類型的介紹,以及如何將其實(shí)現(xiàn)到項(xiàng)目中的教程。

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

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

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

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

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

相關(guān)推薦

  • 軟件 項(xiàng)目管理軟件

    軟件 項(xiàng)目管理軟件:讓項(xiàng)目管理更高效 隨著信息技術(shù)的不斷發(fā)展,軟件項(xiàng)目管理軟件已經(jīng)成為了項(xiàng)目管理中不可或缺的工具。這些軟件能夠幫助我們更好地組織和管理項(xiàng)目,提高項(xiàng)目的效率和質(zhì)量。本…

    科研百科 2024年7月28日
    10
  • 20個(gè)免費(fèi)工作流推薦

    在當(dāng)今數(shù)字化時(shí)代,工作流已經(jīng)成為企業(yè)提高效率和生產(chǎn)力的關(guān)鍵因素之一。以下是20個(gè)免費(fèi)的工作流推薦,可以幫助您快速搭建高效的工作環(huán)境。 1. Google Workspace:Goo…

    科研百科 2024年11月27日
    28
  • 進(jìn)度計(jì)劃的編制基本要求(進(jìn)度計(jì)劃的編制基本要求是什么)

    進(jìn)度計(jì)劃的編制基本要求。 ·(1)大家空時(shí)間去看一下就行了。 ·(2)是進(jìn)度計(jì)劃編制的原則,稍微有考一下選擇題,但是考的也非常少,也是理解為主不要去背。 ·(3)進(jìn)入編制的時(shí)候要對(duì)…

    科研百科 2024年3月9日
    116
  • 項(xiàng)目管理軟件 免費(fèi)

    項(xiàng)目管理軟件免費(fèi)使用的時(shí)代已經(jīng)到來 隨著數(shù)字化時(shí)代的到來,項(xiàng)目管理變得更加復(fù)雜和高效。傳統(tǒng)的項(xiàng)目管理軟件已經(jīng)無法滿足現(xiàn)代項(xiàng)目的需求,因此,免費(fèi)項(xiàng)目管理軟件的出現(xiàn)成為了必然。 免費(fèi)項(xiàng)…

    科研百科 2024年5月29日
    38
  • 2025項(xiàng)目管理系統(tǒng)

    2025項(xiàng)目管理系統(tǒng):現(xiàn)代項(xiàng)目管理的利器 隨著現(xiàn)代信息技術(shù)的不斷發(fā)展,項(xiàng)目管理也在不斷地更新和改進(jìn)。在過去的幾年中,我們一直在尋求更好的項(xiàng)目管理系統(tǒng),以便更好地管理項(xiàng)目并提高效率。…

    科研百科 2025年6月27日
    0
  • 2023年黨政機(jī)關(guān)辦公用房建設(shè)標(biāo)準(zhǔn)

    2023年黨政機(jī)關(guān)辦公用房建設(shè)標(biāo)準(zhǔn) 隨著國家政治和經(jīng)濟(jì)的不斷發(fā)展,黨政機(jī)關(guān)辦公用房建設(shè)標(biāo)準(zhǔn)也在不斷提高。為了更好地滿足黨政機(jī)關(guān)辦公需求,2023年黨政機(jī)關(guān)辦公用房建設(shè)標(biāo)準(zhǔn)進(jìn)行了修訂…

    科研百科 2024年11月18日
    18
  • 定制開發(fā)一款小程序的步驟是怎樣的?(定制化小程序開發(fā))

      現(xiàn)在很多企業(yè)都想定制小程序,但是大部分人對(duì)定制小程序的全過程了解不多。今天小編就來跟大家介紹一下,一起來了解一下吧!   一、事先溝通。   企業(yè)要直接向小程序開發(fā)公司表明自己…

    科研百科 2023年4月11日
    245
  • 農(nóng)殘科研項(xiàng)目

    農(nóng)殘科研項(xiàng)目 隨著農(nóng)業(yè)生產(chǎn)的發(fā)展和人口的增長,農(nóng)民在種植農(nóng)作物時(shí)需要更加謹(jǐn)慎,以確保農(nóng)作物的安全性。然而,農(nóng)作物在生長過程中難免會(huì)接觸到各種農(nóng)藥和化學(xué)物質(zhì),這些化學(xué)物質(zhì)可能會(huì)對(duì)人體…

    科研百科 2025年2月7日
    5
  • 醫(yī)學(xué)類科研項(xiàng)目申報(bào)書

    醫(yī)學(xué)類科研項(xiàng)目申報(bào)書 隨著現(xiàn)代醫(yī)學(xué)的不斷發(fā)展,醫(yī)學(xué)領(lǐng)域的研究也得到了越來越多的關(guān)注。在醫(yī)學(xué)研究中,科研項(xiàng)目是一個(gè)非常重要的組成部分。通過科研項(xiàng)目,科學(xué)家們可以探索新的醫(yī)學(xué)技術(shù)和方法…

    科研百科 2025年5月4日
    5
  • 科研項(xiàng)目申報(bào)系統(tǒng)學(xué)習(xí)

    科研項(xiàng)目申報(bào)系統(tǒng)學(xué)習(xí) 隨著科技的不斷發(fā)展,科研項(xiàng)目申報(bào)系統(tǒng)已經(jīng)成為許多科研工作者必不可少的工具。申報(bào)系統(tǒng)可以幫助科研工作者快速、準(zhǔn)確地申報(bào)各種科研項(xiàng)目,并且提供了豐富的功能和選項(xiàng),…

    科研百科 2025年4月17日
    2
av手机免费c| 国产精品污网站| 亚洲成人人妻福利在线| 亚洲啪啪啪综合| 久久国产少妇换妻| 91在线观看中文字幕| A∨人人天天操| 韩综合一五月激情av| 免费播放麻豆传媒激情| 欧洲人体艺术久久久久一区二区| 三级在线麻豆| 粉嫩视频在线播放| 色影院久久| yazhuseav| 亚洲视频图片区| 国产成人三区四区| 亚洲一一区二二区| 97精品人妻一区二区三区麻豆| 亚洲激情美女Aⅴ| 自拍偷拍在线一区二区三区| 一区二区国产亚洲| 大香蕉玖玖玖免费在线观看| 亚洲国久久三严多| 麻豆精品国产久久久| 精品欧美一区二区三区久久毛| 欧美黄日韩片| 欧美成人亚洲女孩| 欧美成人在线视频观看123| 欧美第一页精品一区| 2017大香蕉国产视频| 日韩欧美成人免费在线| 亚洲精品中文字幕日韩在线AI换脸| 妻精品丰满199| 91人人妻人人爽一区二区三区| 一区二区三区有码中文字幕| 久艹视频免费在线| 美女娇喘白浆| 在线偷拍亚洲| 国产青青操在线观看| 99日本s熟女| 日韩加勒比av|