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

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

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

你的代碼質(zhì)量應(yīng)該隨著經(jīng)驗(yàn)的增加而提高,在本文作者基于 Android 開發(fā)者六年間,其都學(xué)到了什么?

從事 Android 開發(fā)六年,我學(xué)到的那些事

作者 | Mrudula

譯者 | 彎月,責(zé)編 | 屠敏

以下為譯文:

六年來(lái),我為多家公司編寫過(guò)各種應(yīng)用程序。你編寫代碼或處理代碼庫(kù)的文化和方式會(huì)隨著你的經(jīng)驗(yàn)而不斷變化。

你的代碼質(zhì)量應(yīng)該隨著經(jīng)驗(yàn)的增加而提高,否則就需要反思了。

選擇正確的架構(gòu)

如果你是從頭開始開發(fā)應(yīng)用程序,那么就會(huì)有許多優(yōu)勢(shì)。

其中之一就是選擇正確的體系結(jié)構(gòu)。通常,我們喜歡將所有內(nèi)容都寫在同一個(gè)activity文件中,因?yàn)檫@樣做很容易。但是,當(dāng)你的代碼量增多時(shí),這就會(huì)成問(wèn)題。你的代碼庫(kù)會(huì)變得十分龐大,每個(gè)文件包含的代碼行數(shù)也會(huì)非常龐大。

考慮到代碼的性能和維護(hù),在早期階段選擇正確的體系結(jié)構(gòu),才是明智的做法。

MVC、MVP、MVVM和MVI等許多體系結(jié)構(gòu)可幫助 Android 開發(fā)人員輕松維護(hù)、測(cè)試和開發(fā)新功能。

從事 Android 開發(fā)六年,我學(xué)到的那些事

上圖說(shuō)明了在設(shè)計(jì)完應(yīng)用程序后,所有模塊應(yīng)如何相互交互。盡管這完全取決于你的組織,但你也有可能會(huì)有機(jī)會(huì)選擇適合應(yīng)用程序的體系結(jié)構(gòu)。

但是,強(qiáng)烈建議你選擇適合需求的特定體系結(jié)構(gòu)。

關(guān)于哪種架構(gòu)最好這個(gè)話題也是眾說(shuō)紛紜。

根據(jù)開發(fā)人員指南:

“沒(méi)有任何一種方法能夠編寫出適用于每種情況的最佳應(yīng)用程序。話雖如此,對(duì)于大多數(shù)情況和工作流來(lái)說(shuō),這種推薦的體系結(jié)構(gòu)都是一個(gè)很好的起點(diǎn)。”

善加利用Android Studio

Android Studio 提供了最快的工具,可以為每種類型的 Android 設(shè)備構(gòu)建應(yīng)用程序。

不幸的是,我們僅探索了該IDE的一小部分。Android Studio附帶了許多工具,以下是我們?cè)谌粘i_發(fā)中應(yīng)使用的各種工具。

Visual Layout Editor

在這款Layout Editor中,我們可以將UI元素拖到可視化設(shè)計(jì)編輯器中,并以此來(lái)快速構(gòu)建布局,同時(shí)無(wú)需手動(dòng)編寫布局XML。

這款設(shè)計(jì)編輯器可以在各種 Android 設(shè)備和版本上預(yù)覽布局,而且你還可以動(dòng)態(tài)調(diào)整布局的大小,以確保在各種屏幕尺寸上正常工作。

當(dāng)你使用這款Layout Editor構(gòu)建新布局時(shí),尤其能感受到其強(qiáng)大之處。

APK Analyzer

我們可以利用 APK Analyzer 減少花在調(diào)試應(yīng)用程序內(nèi)DEX文件和資源問(wèn)題上的時(shí)間,而且還可以減小APK的大小。此外,你還可以在命令行中使用 APK Analyzer 。

APK Analyzer 的功能包括:

  • 查看APK中文件的絕對(duì)大小和相對(duì)大小,例如DEX和Android資源文件。

  • 了解DEX文件的組成。

  • 并排比較兩個(gè)APK。

從事 Android 開發(fā)六年,我學(xué)到的那些事

Fast Emulator

如果你需要應(yīng)對(duì)各種版本的 Android, 而且還希望在各種 API 級(jí)別上測(cè)試你的應(yīng)用,那么這款模擬器甚至比真正的設(shè)備還好。

這款模擬器提供了Android設(shè)備所具備的所有功能。你可以模擬打電話和發(fā)短信、指定設(shè)備的位置、模擬不同的網(wǎng)絡(luò)速度、模擬旋轉(zhuǎn)和其他硬件傳感器、訪問(wèn) google 應(yīng)用商店等等。

與在物理設(shè)備上的測(cè)試相比,從某種程度上來(lái)說(shuō),在模擬器中測(cè)試應(yīng)用程序更快捷、更方便。

Profilers

Android Profiler工具提供了實(shí)時(shí)數(shù)據(jù),可以幫助你了解應(yīng)用使用CPU、內(nèi)存、網(wǎng)絡(luò)和電池資源的情況。

從事 Android 開發(fā)六年,我學(xué)到的那些事

雖然我們有各種的分析器,例如CPU分析器、內(nèi)存分析器、網(wǎng)絡(luò)分析器和能耗分析器。

但 Android Profiler 可以兼容Android 5.0(API級(jí)別21)及更高版本。你可以使用 Android Studio 中的高級(jí)事件探查器來(lái)監(jiān)視應(yīng)用會(huì)話消耗CPU資源和內(nèi)存的狀況。

內(nèi)存探查器可以幫助我們使用Leak Canary調(diào)試內(nèi)存泄漏。

配置構(gòu)建變化

你可以使用構(gòu)建變化為你的應(yīng)用創(chuàng)建不同的版本,還可以正確管理依賴項(xiàng)和簽名配置。

大多數(shù)組織都有測(cè)試和生產(chǎn)環(huán)境。如果想針對(duì)每種環(huán)境構(gòu)建不同的應(yīng)用程序,你可以利用不同的構(gòu)建類型指定不同的基本URL。

從事 Android 開發(fā)六年,我學(xué)到的那些事

你還可以根據(jù)API級(jí)別或其他設(shè)備變化,為不同的設(shè)備構(gòu)建應(yīng)用程序的不同版本。
 

4.使用 Lint Checks 改進(jìn)代碼

這個(gè) lint 工具可以幫助你找出結(jié)構(gòu)不良的代碼,而這些代碼可能會(huì)影響應(yīng)用程序的可靠性和效率。

Lint會(huì)告訴你布局中是否存在占用大量空間的命名空間。

它還告訴你其他結(jié)構(gòu)性的問(wèn)題,例如使用了棄用的元素或目標(biāo)API版本不支持的API調(diào)用。它還會(huì)建議你使用所有庫(kù)的最新版本。

使用新的 SparseArray<String>(...) 代替 HashMap,可以獲得更好的性能。SparseArrays 會(huì)將整數(shù)映射到對(duì)象。與普通的對(duì)象數(shù)組不同,下標(biāo)間可能存在間隙。

它比使用 HashMap 將整數(shù)映射成對(duì)象的效率更高。

測(cè)試應(yīng)用程序

測(cè)試驅(qū)動(dòng)的開發(fā)(TDD)是確保你會(huì)測(cè)試每一行新代碼的一種方法。如果采用這種方式,那么在編寫要實(shí)現(xiàn)的代碼之前,你需要為添加的內(nèi)容編寫測(cè)試。

由于時(shí)間和資源有限,大多數(shù)創(chuàng)業(yè)公司可能不會(huì)采用測(cè)試驅(qū)動(dòng)的開發(fā)環(huán)境。但是它已被許多公司廣泛接受。

從事 Android 開發(fā)六年,我學(xué)到的那些事

Android 有三種類型的測(cè)試。

1.單元測(cè)試

單元測(cè)試用于測(cè)試方法和小模塊。無(wú)需模擬器或真實(shí)設(shè)備即可運(yùn)行這些測(cè)試,因?yàn)樗鼈兛梢栽贘VM上運(yùn)行。

JUnit 和 Robolectric 是流行的 Android 單元測(cè)試框架,可以在JVM上快速運(yùn)行測(cè)試。

2. 設(shè)備測(cè)試

設(shè)備測(cè)試依賴于Android 框架。由于這種依賴性,你需要模擬器或物理設(shè)備才能運(yùn)行這種測(cè)試。我們使用 Mockito 模擬設(shè)備測(cè)試中使用的對(duì)象。

3. UI測(cè)試

我們可以利用UI測(cè)試活動(dòng)的啟動(dòng)是否正確,或視圖的存在是否正確。Espresso和UI Automater 是UI測(cè)試中廣泛使用的工具。

以下是應(yīng)用當(dāng)前所包含測(cè)試的軟件包結(jié)構(gòu)。

從事 Android 開發(fā)六年,我學(xué)到的那些事

Test:?jiǎn)卧獪y(cè)試都保存在這個(gè)文件夾中。這些測(cè)試在JVM上運(yùn)行,不需要 Android 設(shè)備或模擬器。

Android test:所有設(shè)備和UI測(cè)試都保存在這個(gè)文件夾中。這些測(cè)試需要 Android 物理設(shè)備或模擬器才能運(yùn)行。

使用版本控制

Git 和 BitBucket 是最常用的版本控制系統(tǒng)。

版本控制可以跟蹤文件的改動(dòng),可以記錄完成的操作,并且可以根據(jù)需要恢復(fù)特定版本。

但給你與團(tuán)隊(duì)一起工作時(shí),版本控制有利于協(xié)作,而且還可以將所有的更改合并到源代碼中。如果沒(méi)有版本控制,則你需要進(jìn)行備份,并將代碼存儲(chǔ)到安全的地方。

有了Git以后,代碼就安全了。你可以跟蹤更改,還可以針對(duì)某次發(fā)布維護(hù)多個(gè)代碼庫(kù)。它可以簡(jiǎn)化兩個(gè)人一起工作時(shí)合并代碼的工作。

此外,你也可以利用Git展示你的工作,并向許多開源項(xiàng)目貢獻(xiàn)代碼。Git已成為許多公司篩選人才的地方,因?yàn)樗麄兛梢酝ㄟ^(guò)Git查看候選人的工作成果和個(gè)人項(xiàng)目。

發(fā)布產(chǎn)品的知識(shí)

無(wú)論你是否是將新版本發(fā)布到生產(chǎn)環(huán)境的主要負(fù)責(zé)人,我都建議你掌握將應(yīng)用發(fā)布到應(yīng)用商店的方法。

掌握使用密鑰存儲(chǔ)文件對(duì)APK進(jìn)行簽名的方法。記下你的密鑰庫(kù)密碼和別名。你甚至可以在Gradle文件中配置它們,以簡(jiǎn)化簽名過(guò)程。

使用 Crashlytics

Crashlytics 是最強(qiáng)大,最輕便的應(yīng)用崩潰報(bào)告解決方案。

Crashlytics 提供了深刻且可付諸行動(dòng)的見解,甚至包括應(yīng)用崩潰時(shí)確切的代碼行號(hào)。你可以使用 crashlytics 來(lái)減少識(shí)別故障和修復(fù)故障的時(shí)間。

此外,它還提供了各種分析報(bào)告,例如出現(xiàn)頻率最高的崩潰,崩潰百分比等等。

Crashlytics 還包括 Crashlytics Beta,該服務(wù)可以讓你輕松地將預(yù)發(fā)行的 IOS 和 Android 應(yīng)用分發(fā)給測(cè)試人員,以便快速獲得反饋。

原文:https://medium.com/better-programming/six-years-of-lessons-what-i-learned-as-an-android-developer-a825b55db7f0

本文為 CSDN 翻譯,轉(zhuǎn)載請(qǐng)注明來(lái)源出處。

【End】

分享到:
標(biāo)簽:Android
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

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

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

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

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

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

答題星2018-06-03

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

全階人生考試2018-06-03

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

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

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

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

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

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定