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

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

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

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

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

作者 | Mrudula

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

以下為譯文:

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

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

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

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

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

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

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

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

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

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

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

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

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

善加利用Android Studio

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

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

Visual Layout Editor

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

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

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

APK Analyzer

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

APK Analyzer 的功能包括:

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

  • 了解DEX文件的組成。

  • 并排比較兩個APK。

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

Fast Emulator

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

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

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

Profilers

Android Profiler工具提供了實時數(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級別21)及更高版本。你可以使用 Android Studio 中的高級事件探查器來監(jiān)視應(yīng)用會話消耗CPU資源和內(nèi)存的狀況。

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

配置構(gòu)建變化

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

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

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

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

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

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

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

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

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

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

測試應(yīng)用程序

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

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

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

Android 有三種類型的測試。

1.單元測試

單元測試用于測試方法和小模塊。無需模擬器或真實設(shè)備即可運(yùn)行這些測試,因為它們可以在JVM上運(yùn)行。

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

2. 設(shè)備測試

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

3. UI測試

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

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

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

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

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

使用版本控制

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

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

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

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

此外,你也可以利用Git展示你的工作,并向許多開源項目貢獻(xiàn)代碼。Git已成為許多公司篩選人才的地方,因為他們可以通過Git查看候選人的工作成果和個人項目。

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

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

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

使用 Crashlytics

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

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

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

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

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

本文為 CSDN 翻譯,轉(zhuǎn)載請注明來源出處。

【End】

分享到:
標(biāo)簽: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)練成績評定