醒醒,Android開發居然只有cv最順手,你還會什麼?

作爲一個Android開發,現在的你已經開發多少年了?

你的代碼質量有沒有隨着經驗的增加而提高?沒有的話就需要反思了。

現在來分享一個有六年經驗Android開發,都學到了什麼?

一,學習能力
想要成長,學習能力尤爲重要

我們一直有句老話,學如逆水行舟,不進則退。就像我們Android進階,需要學習的高級內容比較多

1)Java語言進階與Android相關技術內核
像 泛型,多線程,反射,JVM,Java IO,註解,序列化等

2)App開發框架知識體系(app亦對象)
Android 2013~2016年的技術,大家網上Copy代碼習慣了
對這塊經常“使用”的代碼熟悉而又陌生:熟悉的是幾乎天天在和它們打交道,天天在複製這些代碼;陌生的是雖然天天和這些代碼打交道,從未深入研究過這些代碼的原理,代碼深處的內涵。

我們需要從新的角度去分析這些知識點,深入研究他們,要學習源碼,模仿源碼,然後再hook源碼,

這樣才能說自己懂這塊的知識。這些都是做Android開發,做高級工程師的基礎。
3)360° Android app全方位性能調優
書寫高性能代碼,再調優

4)Android前沿技術
比如熱升級,熱修復,App Instant,強制更新,組件化路由架構Arouter,RxJava,IOC架構方法,Hook技術等
這些技術你不能只會用,你需要知道他的原理

5)NDK 模塊開發
NDK,其中的關於C/C++,jni,Linux基礎都是需要學習的,除此之外,音視頻的編解碼技術,流媒體協議,ffmpeg這些都是音視頻開發必備技能,而且OpenCV/OpenGl/ 這些又是圖像處理必備知識

6)提高開發效率的工具運用
想要提高開發效率,需要用工具,這個下文說了下

7)移動架構師專題項目實戰環節
學了技術就需要結合項目進行實戰訓練

8)移動架構師不可不學習微信小程序

9)混合開發flutter
flutter現在已經逐漸變成了主流的混合開發框架,另外由於阿里系的強大存在,導致阿里 系的公司都在用Weex混合架構,這些都是一個Android工程師開拓視野,走向未來必不可少的基本技能

二,善加利用Android Studio
Android Studio 提供了最快的工具,可以爲每種類型的 Android 設備構建應用程序。 

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

Visual Layout Editor在這款Layout Editor中,我們可以將UI元素拖到可視化設計編輯器中,並以此來快速構建佈局,同時無需手動編寫佈局XML。

這款設計編輯器可以在各種 Android 設備和版本上預覽佈局,而且你還可以動態調整佈局的大小,以確保在各種屏幕尺寸上正常工作。當你使用這款Layout Editor構建新佈局時,尤其能感受到其強大之處。

APK Analyzer我們可以利用 APK Analyzer 減少花在調試應用程序內DEX文件和資源問題上的時間,而且還可以減小APK的大小。

此外,你還可以在命令行中使用 APK Analyzer 。APK Analyzer 的功能包括:

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

  • 瞭解DEX文件的組成。

  • 並排比較兩個APK。

醒醒,Android開發居然只有cv最順手,你還會什麼?

Fast Emulator如果你需要應對各種版本的 Android, 而且還希望在各種 API 級別上測試你的應用,那麼這款模擬器甚至比真正的設備還好。

這款模擬器提供了Android設備所具備的所有功能。你可以模擬打電話和發短信、指定設備的位置、模擬不同的網絡速度、模擬旋轉和其他硬件傳感器、訪問 Google 應用商店等等。

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

ProfilersAndroid Profiler工具提供了實時數據,可以幫助你瞭解應用使用CPU、內存、網絡和電池資源的情況。
醒醒,Android開發居然只有cv最順手,你還會什麼?

雖然我們有各種的分析器,例如CPU分析器、內存分析器、網絡分析器和能耗分析器。但 Android Profiler 可以兼容Android 5.0(API級別21)及更高版本。

你可以使用 Android Studio 中的高級事件探查器來監視應用會話消耗CPU資源和內存的狀況。內存探查器可以幫助我們使用Leak Canary調試內存泄漏。

三,配置構建變化

你可以使用構建變化爲你的應用創建不同的版本,還可以正確管理依賴項和簽名配置。 大多數組織都有測試和生產環境。

如果想針對每種環境構建不同的應用程序,你可以利用不同的構建類型指定不同的基本URL。

醒醒,Android開發居然只有cv最順手,你還會什麼?
你還可以根據API級別或其他設備變化,爲不同的設備構建應用程序的不同版本

四,使用 Lint Checks 改進代碼

這個 lint 工具可以幫助你找出結構不良的代碼,而這些代碼可能會影響應用程序的可靠性和效率。

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

它還告訴你其他結構性的問題,例如使用了棄用的元素或目標API版本不支持的API調用。

它還會建議你使用所有庫的最新版本。使用新的 SparseArray<String>(...) 代替 HashMap,可以獲得更好的性能。SparseArrays 會將整數映射到對象。

與普通的對象數組不同,下標間可能存在間隙。它比使用 HashMap 將整數映射成對象的效率更高。

五,測試應用程序

測試驅動的開發(TDD)是確保你會測試每一行新代碼的一種方法。

如果採用這種方式,那麼在編寫要實現的代碼之前,你需要爲添加的內容編寫測試。由於時間和資源有限,大多數創業公司可能不會採用測試驅動的開發環境。但是它已被許多公司廣泛接受。

醒醒,Android開發居然只有cv最順手,你還會什麼?
Android 有三種類型的測試。
1.單元測試單元測試用於測試方法和小模塊。無需模擬器或真實設備即可運行這些測試,因爲它們可以在JVM上運行。JUnit 和 Robolectric 是流行的 Android 單元測試框架,可以在JVM上快速運行測試。

2. 設備測試設備測試依賴於Android 框架。由於這種依賴性,你需要模擬器或物理設備才能運行這種測試。我們使用 Mockito 模擬設備測試中使用的對象。

3. UI測試我們可以利用UI測試活動的啓動是否正確,或視圖的存在是否正確。Espresso和UI Automater 是UI測試中廣泛使用的工具。以下是應用當前所包含測試的軟件包結構。

醒醒,Android開發居然只有cv最順手,你還會什麼?

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

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

六,使用版本控制

Git 和 BitBucket 是最常用的版本控制系統。

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

但給你與團隊一起工作時,版本控制有利於協作,而且還可以將所有的更改合併到源代碼中。如果沒有版本控制,則你需要進行備份,並將代碼存儲到安全的地方。

有了Git以後,代碼就安全了。你可以跟蹤更改,還可以針對某次發佈維護多個代碼庫。它可以簡化兩個人一起工作時合併代碼的工作。此外,你也可以利用Git展示你的工作,並向許多開源項目貢獻代碼。

Git已成爲許多公司篩選人才的地方,因爲他們可以通過Git查看候選人的工作成果和個人項目。

七,發佈產品的知識
無論你是否是將新版本發佈到生產環境的主要負責人,我都建議你掌握將應用發佈到應用商店的方法。

掌握使用密鑰存儲文件對APK進行簽名的方法。記下你的密鑰庫密碼和別名。

你甚至可以在Gradle文件中配置它們,以簡化簽名過程。

八,使用 Crashlytics

Crashlytics 是最強大,最輕便的應用崩潰報告解決方案。

Crashlytics 提供了深刻且可付諸行動的見解,甚至包括應用崩潰時確切的代碼行號。

你可以使用 crashlytics 來減少識別故障和修復故障的時間。

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

Crashlytics 還包括 Crashlytics Beta,該服務可以讓你輕鬆地將預發行的 iOS 和 Android 應用分發給測試人員,以便快速獲得反饋。

九,選擇正確的架構
如果你是從頭開始開發應用程序,那麼就會有許多優勢。其中之一就是選擇正確的體系結構。

通常,我們喜歡將所有內容都寫在同一個activity文件中,因爲這樣做很容易。

但是,當你的代碼量增多時,這就會成問題。你的代碼庫會變得十分龐大,每個文件包含的代碼行數也會非常龐大。考慮到代碼的性能和維護,在早期階段選擇正確的體系結構,纔是明智的做法。

MVC、MVP、MVVM和MVI等許多體系結構可幫助 Android 開發人員輕鬆維護、測試和開發新功能。
醒醒,Android開發居然只有cv最順手,你還會什麼?
上圖說明了在設計完應用程序後,所有模塊應如何相互交互。儘管這完全取決於你的組織,但你也有可能會有機會選擇適合應用程序的體系結構。但是,強烈建議你選擇適合需求的特定體系結構。關於哪種架構最好這個話題也是衆說紛紜。

根據開發人員指南:“沒有任何一種方法能夠編寫出適用於每種情況的最佳應用程序。話雖如此,對於大多數情況和工作流來說,這種推薦的體系結構都是一個很好的起點。

十,學習能力
作爲一個Android開發,看完之後得希望可以給你點啓發,順便點個贊給我點鼓勵,關注我會經常分享。

你有什麼經驗,也可以在文下分享,畢竟咱們程序員很多都是開源的,衆人拾柴火焰高。

看完之後很多朋友詢問我的學習內容,那我也來分享一波,內容比較多,先把圖放出來大家看一下

詳情瞭解關注我,私信安卓送

醒醒,Android開發居然只有cv最順手,你還會什麼?

醒醒,Android開發居然只有cv最順手,你還會什麼?

醒醒,Android開發居然只有cv最順手,你還會什麼?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章