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