2022 Android 進階學習RoadMap!
本文轉載自微信公眾號「程序員巴士」,作者Eason。轉載本文請聯系程序員巴士公眾號。
看到一篇文章中提到“最近幾年國內的初級Android程序員已經很多了,但是中高級的Android技術人才仍然稀缺“;這的確不假,今年已經是2022年了,距離Android巔峰時期那會已經過去七八年了,現在想找一個適合的中高級Android工程師的確不容易,一般需要進行大量的面試才能挑選出一個比較滿意的。所以Eason想寫一篇文章來描述下Android的學習路線,期望可以幫助更多的Android程序員提升自己。
本文適用于:
任何想學習 Android 開發但不知道從哪里開始的人。
也適用于已經開始進行 Android 開發但想要變得更好的任何人。
為了成為更好的 Android 開發er,Eason為大家提供了總的路線圖。如果下面這個學習路線能幫助大家成為一個更好的 Android 開發者,那么我的使命也就完成了:
學習Android App開發的完整指南
Android 開發者路線圖
安裝 Android Studio IDE 并開始使用 Android
- 什么是 Android 及其工作原理?
- 安裝 Android Studio
安卓組件
- 什么是 Activity ?
- UI設計——用戶界面
- 什么是 View 以及它是如何工作的?
- Intent 是什么?
- Activity Lifecycle
- Dialog UI
Shared Preferences
- 即使殺死應用程序并重新打開App,數據也會保留,因為可以使用Shared Preferences.
RecyclerView
- 為了構建顯示項目列表的 UI,Android 應用使用 RecyclerView。
- 微信QQ等應用程序使用 RecyclerView 構造的聊天屏幕。
Kotlin 入門
- Google 已正式宣布 Kotlin 為 Android 的一流語言。現在學習 Kotlin 很重要。
- Kotlin 簡潔、空安全且可互操作。
- 從 Kotlin 的基礎知識開始。
- 使用 Kotlin 的基本知識將 Java 代碼轉換為 Kotlin。
單例、進程和線程
- 應用程序利用線程可使應用程序運行得更快,并提供最佳的用戶體驗。
- 在面試中也會有巨大幫助。
數據庫實現
- 使用數據庫來存儲消息,即使在沒有連網的情況下,也可以看到發送或接收的所 有消息。
- 大多數App使用數據庫來存儲數據。
權限和圖像加載
- 涉及到通話等權限的 App 首次啟動時會詢問聯系權限。
- 使用 Glide Volley等圖像加載庫加載提要中的圖像。
Work Manager
使用 WorkManager,App 甚至可以在休眠時獲取數據,并在早上打開應用程序時向大家顯示最新消息,即使在晚上一段時間內沒有連接到網絡。
Notification
- 幾乎所有的 Android 程序都使用通知顯示應用的任何更新。
NetWork
- 應用程序通過網絡調用從服務器Server獲取數據。
ViewPager 和 Fragment
- 像抖音微信主流App使用 ViewPager 讓用戶在內容Fragment、朋友圈Fragment、個人中心Fragment等之間滾動。
- Activity 包含 Fragment。
Debugging 和 APK 發布
- Debugging —— 這對開發人者來說是一個學習機會,畢竟最重要的技能之一。
- APK 發布 —— 在應用商店中發布應用并輕松接觸到用戶。
要點
- 什么是上下文 Context?
- 面向對象編程——OOP
- 類設計和結構
- 文件系統、讀、寫、Asset 讀寫
- Android中的約束布局ConstraintLayout
- Android 中的Canvas API
- 自定義 View
到此,你已經差不多掌握了基礎的知識了,將輕松實現:
- 開始開發屬于自己的DIY Android 應用程序。
- 在 Android領域 中找到你的第一份實習工作。
- 在應用商店上發布應用。
現在,讓我們開始下一個里程碑
Dagger
- 當項目變得更大時,大家需要了解依賴管理并在項目中使用 Dagger 來管理依賴關系。像 Google 這樣的公司在他們的 Android 應用程序中使用 Dagger。
- 學習設計自己的依賴管理框架。
學習 Kotlin
- 重溫 Kotlin 的基礎知識。
- 開始學習 Kotlin 語言特定的功能。
- 學習 Kotlin 高級功能。
- 如今,大多數公司的新項目都開始使用 Kotlin。此外,較舊的 Java 項目正在遷移到 Kotlin。
Architectural Components
- LiveData、LifeCycle、ViewModel 等架構組件有助于管理我們的 UI 組件生命周期和處理數據持久性。
- 生命周期處理的挑戰,Activity 輪換問題
- 學習創建生命周期感知組件
- 共享 ViewModel
RxJava
- RxJava 已成為 Android 開發中最重要的一項技能。
- 幾乎每個應用程序都使用 RxJava 進行多線程處理。
- RxJava 使開發人員的生活變得輕松。
- 線程在 Android 中是如何工作的?
數據庫設計
- 應用程序使用數據庫在 Android 端存儲數據,并設計數據庫以使查詢更快,從而使應用程序運行得更快。
- 現在,我們使用的是 Google 創建的庫 Room。Room 在 SQLite 之上提供了一個抽象層,以允許流暢的數據庫訪問,同時利用 SQLite 的全部功能。
- 了解關系數據庫概念
- 規范化和多對多關系
- 了解類型轉換器,Room數據庫中的遷移。
聯網
- Android 應用程序使用 Retrofit 等網絡庫來獲取數據。
- 如今,Retrofit 是進行網絡調用的著名庫之一。
- 學習創建 GET、POST 請求和處理復雜數據模型
- 了解與網絡相關的許多概念,例如用于上傳圖像的Multipart、攔截器。
MVVM 、MVC 和 MVP
- 學習使用帶有架構組件、LiveData、ViewModel、ViewModelFactory、Dagger、Retrofit、RxJava 的 MVVM 架構來構建登錄、Feed、帖子創建和個人資料頁面。
- 了解 MVC、MVP 和 MVVM 架構。
- ViewModel、ViewModelProviders、ViewModelProviderFactory 是如何工作的?
- 構建功能,例如通過相機捕獲圖像,通過圖庫選擇圖像
- 使用 Multipart 上傳圖片。
- 生命周期感知 RecyclerView 的原理
- Lifecycle Aware RecyclerView ViewHolder 的實現:一般開發者會忽略這一點。優秀的開發人員在開發 Android 應用程序時會考慮所有邊緣情況。
- 使用 RxJava 實現分頁功能
單元測試
- 測試是一個軟件開發過程,我們在其中做很多不同的事情來發現錯誤。錯誤的數量越少,該特定軟件在生產中表現良好的機會就越大。
- 它迫使大家遵循代碼庫中的架構,有助于在開發周期中快速檢測故障,并幫助大家進行更安全的代碼重構,使優化代碼而不必擔心回歸。
Kotlin 協程
- 協程到底是什么?
- 需要 Kotlin Coroutines 提供的解決方案
- 調度程序,掛起,啟動,異步
- Kotlin 協程中的作用域是什么?
- Kotlin 協程中的異常處理
Android 構建系統和內存管理
- 了解Android Build系統,內存管理對于Android開發者來說非常重要。
- 它將幫助大家構建消耗更少內存的 Android 應用程序
- 還在破解頂級公司的面試。
Android 多線程和 Handler-Looper
- 了解多線程將幫助大家有效地在后臺執行任務。
- Android Looper、Handler 和 HandlerThread 是 Android OS 的構建塊。所以這是面試中被問到最多的話題之一。
- 多線程和 Handler-Looper 對面試很重要。
網絡緩存攔截器圖像加載
- 了解三方庫的內部結構和源碼對于充分利用它很重要。
- 此外,這些概念將使大家在面試時比其他候選人占上風。
如果前面這些大家都沒有問題,那么大家已經實現了:
- 具有構建強大架構 Android 應用程序的能力。
- 在 Android 領域找到不錯的工作。