2019年是做安卓開(kāi)發(fā)人員的絕佳時(shí)機(jī)香追。隨著安卓最近的創(chuàng)新與進(jìn)步,它是現(xiàn)今最熱門(mén)的技術(shù)之一晴楔。Kotlin峭咒、Android Things等的最新進(jìn)展,讓新手開(kāi)發(fā)人員無(wú)法獲取正確的信息并朝著一個(gè)方向?qū)W習(xí)發(fā)展。
希望本指南能幫助你成為2019年想要成為的安卓開(kāi)發(fā)人員
讓我們先從基礎(chǔ)開(kāi)始则果。
從安卓開(kāi)發(fā)開(kāi)始 Level 1
1.從Head First Java學(xué)習(xí)基礎(chǔ)Java
2.安裝Android Studio
3.在Android Studio設(shè)置kotlin - 如果今年不想學(xué)的話(huà)可以跳過(guò)
4.閱讀Android User interface? - 學(xué)習(xí)關(guān)于XML和查看組件的更多信息
你這樣做僅僅是準(zhǔn)備好一個(gè)開(kāi)發(fā)環(huán)境去構(gòu)建安卓App,但是你還得去準(zhǔn)備好基礎(chǔ)和基本知識(shí)來(lái)理解安卓開(kāi)發(fā)和大多數(shù)教程使用的通用術(shù)語(yǔ)
你現(xiàn)在也可以在安卓系統(tǒng)上構(gòu)建基本的App西壮,并且可以開(kāi)發(fā)一些功能叫惊。隨意使用空白畫(huà)布,用你的想象力填充它抡草。
當(dāng)你玩完創(chuàng)意后,2019年你的下一個(gè)目標(biāo)是加快游戲進(jìn)度旋炒,推動(dòng)自己成為一名為數(shù)十億人構(gòu)建應(yīng)用的開(kāi)發(fā)者签杈。我們現(xiàn)在去第二層!
提升自己 - 作為一個(gè)安卓開(kāi)發(fā)者 Level 2
這個(gè)列表將作為你學(xué)習(xí)铣除、實(shí)踐和前進(jìn)的階梯鹦付。
- 了解Activity的生命周期,以推動(dòng)一個(gè)沒(méi)有bug的App
- 使用Fragment利用動(dòng)態(tài)的敲长、靈活的和動(dòng)態(tài)的UI設(shè)計(jì)
- 學(xué)習(xí)如何調(diào)試你的安卓App-使用Android Studio Debugger
- 掌握Activity來(lái)去構(gòu)建你希望用戶(hù)瀏覽的頁(yè)面
- 了解安卓的Context
- 學(xué)習(xí)REST和HTTP - 大多數(shù)專(zhuān)業(yè)開(kāi)發(fā)都非常擅長(zhǎng)理解REST和HTTP的所有特點(diǎn)
-
學(xué)習(xí)如何利用多線程
1.學(xué)習(xí)如何將耗時(shí)操作移出主線程
2.線程的重要性
3.學(xué)習(xí)提供的幫助你在最短時(shí)間內(nèi)最大限度地利用線程代碼的類(lèi)
4.了解安卓如何在系統(tǒng)級(jí)使用線程,這將如何影響App中的設(shè)計(jì)選擇和決策
5.了解系統(tǒng)內(nèi)存和線程代碼的細(xì)微差別
6.了解如何將線程解決方案應(yīng)用于極其龐大和復(fù)雜的任務(wù) - 成為處理配置更改的專(zhuān)家
1.在配置更改期間保留對(duì)象
2.自己處理配置更改 - 學(xué)習(xí)數(shù)據(jù)庫(kù)和SQL
1.云數(shù)據(jù)庫(kù)
2.離線和本地?cái)?shù)據(jù)庫(kù)
3.離線架構(gòu)和離線初步實(shí)踐 - 內(nèi)容提供 Content providers
1.學(xué)習(xí)如何分享你的數(shù)據(jù)給其他App
2.學(xué)習(xí)如何訪問(wèn)其他App的知識(shí)
3.創(chuàng)建一個(gè)Content providers泽铛,幫助其他應(yīng)用程序安全地訪問(wèn)和修改你App的數(shù)據(jù)
4.試著玩一下日歷App和聯(lián)系人App的Content providers - 學(xué)習(xí)一些頂級(jí)的第三方庫(kù) - 最有用也最常用的
1.OkHttp
2.GSON
3.Retrofit
4.Glide
5.Butter Knife
6.Crashlytics
7.Guava
所有這些都有助于你建立對(duì)安卓生態(tài)系統(tǒng)的專(zhuān)業(yè)理解盔腔,并讓你準(zhǔn)備好使用安卓處理至少10-15種不同類(lèi)型的業(yè)務(wù)用例月褥。
了解安卓執(zhí)行模式
當(dāng)你真的想用安卓打造一個(gè)極其強(qiáng)大且難忘的體驗(yàn)時(shí),從安卓執(zhí)行模式開(kāi)始是一個(gè)完美的地方舀透。如果你瀏覽下面列表决左,你不僅會(huì)學(xué)到如何實(shí)現(xiàn)它們哆窿,還會(huì)發(fā)現(xiàn)一些你可能會(huì)錯(cuò)過(guò)的執(zhí)行模式。他們是專(zhuān)業(yè)開(kāi)發(fā)手中不可思議的工具挚躯。因此,在安卓執(zhí)行模式方面漩勤,你需要學(xué)習(xí)和注意以下幾點(diǎn):
- 異步任務(wù)對(duì)于運(yùn)行長(zhǎng)回調(diào)或線程回調(diào)的進(jìn)程沒(méi)有幫助越败。學(xué)習(xí)如何使用Handlerthread來(lái)處理這些過(guò)程
- 了解如何處理內(nèi)存抖動(dòng)
- 了解如何將Intent Services與線程配合使用以提高效率
- 了解安卓服務(wù)的執(zhí)行模式,以便在Service工作結(jié)束后立即終止服務(wù)
- 了解安卓特定的Hashmap容器置谦,構(gòu)建性能和內(nèi)存平衡的App
- 了解如何使用內(nèi)存監(jiān)控工具來(lái)觀察分配內(nèi)存是如何影響App的性能的
- 使用緩存優(yōu)化應(yīng)用程序的網(wǎng)絡(luò)性能
- 優(yōu)化應(yīng)用程序網(wǎng)絡(luò)請(qǐng)求的頻率
- 了解處理內(nèi)存泄露的視圖
- 了解如何處理垃圾回收
- 了解如何更新App的視覺(jué)屬性去影響性能
- 深入了解垂直同步
- 了解如何將安卓用戶(hù)界面與GPU進(jìn)行映射亿傅,并發(fā)現(xiàn)你應(yīng)該解決的復(fù)雜程度,以確保你的App平穩(wěn)運(yùn)行
- 了解如何構(gòu)建以60fps渲染而不丟幀的應(yīng)用程序
- 了解有多少其他App與你的App競(jìng)爭(zhēng)系統(tǒng)資源谅阿,并設(shè)計(jì)應(yīng)對(duì)策略
- 了解如何跟GPU性能并在渲染App時(shí)提高性能
- 了解如何減少電池消耗的策略
- 將你的應(yīng)用與你的競(jìng)爭(zhēng)對(duì)手和Playstore突破性應(yīng)用進(jìn)行對(duì)比酬滤,并嘗試在應(yīng)用發(fā)布時(shí)間內(nèi)進(jìn)行改進(jìn)盯串。看看你能走多遠(yuǎn)
- 縮小app的大小
讓我們把它帶到第三層 Leve3
深入研究Bitmap的內(nèi)存優(yōu)化
學(xué)習(xí)和練習(xí)如何使用Glide在安卓App中處理位圖男摧。你面臨的問(wèn)題是译打,當(dāng)你在你的App上提供大量?jī)?nèi)容時(shí)拇颅,需要獲取、解碼和顯示位圖韵洋。如果你做得不對(duì)黄锤,你最終會(huì)破壞你的應(yīng)用鸵熟,確保很多用戶(hù)會(huì)覺(jué)得你的應(yīng)用不好。
請(qǐng)注意流强,現(xiàn)在你必須處理多達(dá)48MBs的位圖,這些位圖僅來(lái)自用戶(hù)的相機(jī)生成的圖像队腐。這很容易耗盡所有可用的內(nèi)存柴淘。
安卓架構(gòu)組件
作為開(kāi)發(fā),我學(xué)到的最重要的事情之一是在架構(gòu)及其組件之上進(jìn)行實(shí)踐和創(chuàng)新千绪。當(dāng)我開(kāi)始超越MVP梗脾、MVVM、MVx等等的時(shí)候瑞妇,我意識(shí)到圍繞這些架構(gòu)組件還有大量的創(chuàng)新空間梭冠。
例如,早在2017年蔓倍,默認(rèn)的BLE(藍(lán)牙低能耗)配置和設(shè)置就達(dá)不到標(biāo)準(zhǔn)盐捷。理解一個(gè)架構(gòu)組件可以通過(guò)構(gòu)建一個(gè)中間服務(wù)庫(kù)在這里得到改進(jìn)對(duì)我來(lái)說(shuō)是一個(gè)巨大的好處碉渡。
因此,為了正確了解這一點(diǎn)滞诺,我建議你選擇App的各個(gè)架構(gòu)組件习霹,并學(xué)習(xí)它們的最佳實(shí)踐。我想到的其中一些是:
- Data binding
- Lifecycles
- LiveData
- Navigation
- Paging
- Room
- ViewModel
- WorkManager
做一名測(cè)試專(zhuān)家
你不想成為那些說(shuō)“它在我的系統(tǒng)上運(yùn)行良好”的開(kāi)發(fā)者之一阎曹,對(duì)嗎?因此望门,在架構(gòu)設(shè)計(jì)和優(yōu)化知識(shí)的基礎(chǔ)上構(gòu)建一切锰霜,創(chuàng)建單元測(cè)試(JUnit4),學(xué)習(xí)如何使用Espresso厨剪,并專(zhuān)注于構(gòu)建令工程經(jīng)理和虛擬專(zhuān)用網(wǎng)絡(luò)滿(mǎn)意的代碼覆蓋率報(bào)告友存。關(guān)注這些報(bào)告如何幫助工程師屡立、測(cè)試人員、經(jīng)理和利益相關(guān)者解決關(guān)鍵App的性能問(wèn)題勇皇,并確定它們的優(yōu)先級(jí)焚刺。
并盡可能多地從原始設(shè)置中實(shí)現(xiàn)自動(dòng)化和重用。這為你成為一名工程經(jīng)理鋪平了道路兄淫。
反應(yīng)式編程 - RxJava
這是不言而喻的蔓姚,也可能是你簡(jiǎn)歷和實(shí)際面試中最受關(guān)注的信息之一。有很多地方你可以實(shí)際學(xué)習(xí)如何實(shí)現(xiàn)RxJava和它的最佳實(shí)踐薯鳍。但是挨措,我最喜歡的是:
- Grokking RxJava Series
- Exploring RxJava 2 by Jake Wharton
- Managing State with RxJava by Jake Wharton
它們是你理解RxJava并掌握其某些方面的一個(gè)很好的起點(diǎn)浅役。如果你希望圍繞RxJava探索更多主題伶唯,請(qǐng)考慮瀏覽以下內(nèi)容:
- Depth of Observables in RxJava
- Implementing Caching using RxJava
了解Dagger的一切
成為Dagger專(zhuān)家的步驟是:
- 瀏覽文檔并理解整個(gè)依賴(lài)注入過(guò)程
- 建立一個(gè)限制列表
- 建立一個(gè)項(xiàng)目并在其中實(shí)現(xiàn)Dagger2
安全專(zhuān)業(yè)
安卓專(zhuān)家和安全專(zhuān)家?哇瞪讼!這是我們?cè)陂_(kāi)發(fā)中很少看到的東西符欠!
因此,在2019年诊沪,你可以做一些事情來(lái)成為那個(gè)人:
- 了解如何將App的數(shù)據(jù)和代碼與其他應(yīng)用程序隔離開(kāi)來(lái)
- 學(xué)習(xí)密碼功能并實(shí)現(xiàn)它們
- 了解如何消除與內(nèi)存管理錯(cuò)誤相關(guān)的風(fēng)險(xiǎn)
- 了解如何最好地使用用戶(hù)授予的權(quán)限來(lái)控制應(yīng)用程序數(shù)據(jù)
- 安全數(shù)據(jù)存儲(chǔ)和加密:本地存儲(chǔ)曾撤、動(dòng)態(tài)存儲(chǔ)或云存儲(chǔ)
- 精通Content Provider的安全訪問(wèn)
- 確保你混淆了你的數(shù)據(jù)
- 了解如何實(shí)現(xiàn)不屬于通用安卓系統(tǒng)的本地安全解決方案
- 審核受歡迎的第三方庫(kù)挤悉,以了解并按漏洞級(jí)別分解它們,并圍繞它構(gòu)建一個(gè)研究文檔
- 努力讓BLE在你的應(yīng)用程序中更加安全
就這樣了昏鹃,希望這個(gè)列表能幫助你在2019年成為一名專(zhuān)業(yè)的安卓開(kāi)發(fā)者衅斩!
PS:本文
整理
自
Android developer Roadmap for 2019
若有發(fā)現(xiàn)問(wèn)題請(qǐng)致郵 caoyanglee92@gmail.com