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