references:
- http://android-developers.googleblog.com/2017/02/introducing-associate-android-developer.html
- https://www.youtube.com/watch?v=Yu2oGere_Mc
- https://www.udacity.com/google-certifications
- https://developers.google.com/training/android/
- https://cn.udacity.com/course/android-developer-nanodegree--nd801/
1. 出現(xiàn)的目的,滿足什么東西
從Introducing Google Developer Certification: Become an Associate Android Developer - Google I/0 2016中可以了解到一些背景:
- 這是一個(gè)名為“Android開發(fā)者合伙人”的認(rèn)證項(xiàng)目
- 這是來自Google Developer Training的一個(gè)項(xiàng)目
- 來自官方認(rèn)證的Android Developer標(biāo)準(zhǔn)
2.包括哪些方面的內(nèi)容
在What does the exam cover?中可以看到整個(gè)項(xiàng)目由四個(gè)典型步驟構(gòu)成:
準(zhǔn)備學(xué)習(xí)工作留攒、參加測試、提交并由專家評定凡人、失敗或者Pass,獲得證書
考核的范圍:
測試和調(diào)試措伐、UI和UX、應(yīng)用基礎(chǔ)組件、數(shù)據(jù)持久化存儲(chǔ)昆烁、增強(qiáng)性的系統(tǒng)整合能力
2.1 測試和調(diào)試
編寫測試代碼來驗(yàn)證功能邏輯以及UI的能力是最需要具備的。知道如何使用開發(fā)工具執(zhí)行測試代碼缎岗。報(bào)考者需要找出一些crash的bug静尼、內(nèi)存泄漏、布局錯(cuò)誤等問題密强。包括使用debugger調(diào)試代碼茅郎,驗(yàn)證預(yù)期行為。
- 編寫和執(zhí)行JVM單元測試
- 編寫和執(zhí)行設(shè)備的UI測試
- 根據(jù)給出的錯(cuò)誤場景描述或渤,用代碼重現(xiàn)
- 調(diào)試和修復(fù)一個(gè)uncaught exception
- 調(diào)試和修復(fù)一個(gè)activity lifecycle問題
- 調(diào)試和修復(fù)一個(gè)關(guān)于view數(shù)據(jù)綁定的問題
2.2 UI和UX
實(shí)現(xiàn)一個(gè)APP用戶可以導(dǎo)航菜單相關(guān)的UI布局系冗。包括使用XML和標(biāo)準(zhǔn)的UI組件或自定義組件實(shí)現(xiàn)布局的結(jié)構(gòu)。報(bào)考者需要具備使用Style薪鹦、theme來運(yùn)籌整個(gè)APP的視覺一致性掌敬。
- mock up主屏幕和APP跳轉(zhuǎn)流程
- 能夠描述UI、后臺(tái)任務(wù)和數(shù)據(jù)存儲(chǔ)之間的交互
- 使用XML或代碼編寫布局
- 創(chuàng)建自定義組件并應(yīng)用到布局中
- 實(shí)現(xiàn)自定義的APP theme
- 在公共組件中使用自定義theme
- 定義一個(gè)RecyclerView的item list
- 在RecyclerView列表中綁定本地?cái)?shù)據(jù)
- 實(shí)現(xiàn)基于menu drawable或drawer的導(dǎo)航界面
- 為應(yīng)用的現(xiàn)實(shí)性文本實(shí)現(xiàn)多語言
- 為view添加功能障礙人士可識(shí)別的內(nèi)容
- 為自定義view添加可訪問的hooks
2.3 應(yīng)用基礎(chǔ)組件
理解Android最上層的應(yīng)用組件(Activity池磁,Service奔害,Broadcast Receiver,Content Provider)和每個(gè)其lifecycle地熄。報(bào)考者應(yīng)該能夠描述APP邏輯應(yīng)該使用什么組件最適合华临,已經(jīng)這個(gè)組件應(yīng)該在前臺(tái)還是后臺(tái)執(zhí)行。這個(gè)包括何時(shí)和如何執(zhí)行后臺(tái)任務(wù)的策略端考。
- 能夠描述一個(gè)APP關(guān)鍵的功能性和非功能性需求
- 創(chuàng)建一個(gè)Activity雅潭,顯示布局資源
- 在工作線程上使用Loader獲取本地Disk上的數(shù)據(jù)
- 通過Loader把數(shù)據(jù)傳輸?shù)浇缑?- 使用alarms設(shè)定時(shí)間敏感的任務(wù)
- 使用JobScheduler設(shè)定一個(gè)后臺(tái)任務(wù)
- 在Service組件內(nèi)執(zhí)行一個(gè)后臺(tái)任務(wù)
- 實(shí)現(xiàn)非標(biāo)準(zhǔn)的任務(wù)stack navigation(deep links)
- 在代碼中使用support library
2.4 數(shù)據(jù)持久化存儲(chǔ)
為本地?cái)?shù)據(jù)持久化制定合適用例揭厚,以及設(shè)計(jì)使用文件,perferences和數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)解決方案扶供。這其中包括靜態(tài)數(shù)據(jù)與APP的捆綁筛圆,遠(yuǎn)程資源獲取,管理用戶產(chǎn)生的私有數(shù)據(jù)椿浓。報(bào)考者應(yīng)該能描述Android platform的功能太援,保證APP安全地?cái)?shù)據(jù)存儲(chǔ)和跨APP數(shù)據(jù)傳輸機(jī)制
- 定義一個(gè)數(shù)據(jù)庫scheme,包括表扳碍,字段和索引
- 創(chuàng)建應(yīng)用私有的database
- 對DB查詢返回的單列結(jié)果集結(jié)構(gòu)化封裝
- 對DB查詢返回的多列結(jié)果集結(jié)構(gòu)化封裝
- 往DB插入一條或多條新的記錄
- 更新或者刪除已有記錄
- 通過Content Provider為其他APP開放DB
- 讀取和解析資源或asset文件
- 為用戶輸入數(shù)據(jù)創(chuàng)建持久preference
- 根據(jù)preference值切換應(yīng)用邏輯
增強(qiáng)性的系統(tǒng)整合能力
通過使用通知和APP小組件等這些APP核心功能之外的接口實(shí)現(xiàn)對APP的能力擴(kuò)展提岔。通過這些元素保持向用戶展示最新信息。報(bào)考者需要理解如何合理提供從外部接口過度到APP的主要功能流程左腔,包括正確使用deep links唧垦。
- 創(chuàng)建一個(gè)APP小組件并展示在首頁
- 實(shí)現(xiàn)一個(gè)能周期性地更新組件狀態(tài)的task
- 創(chuàng)建并顯示一個(gè)通知給用戶
3.udacity 是什么?
深入一步搜索液样,發(fā)現(xiàn)它已經(jīng)進(jìn)入中國(我真是后知后覺- -)振亮,叫“優(yōu)達(dá)學(xué)城”。通俗理解就是一個(gè)與企業(yè)合作提供線上培訓(xùn)學(xué)習(xí)鞭莽、企業(yè)認(rèn)證的服務(wù)網(wǎng)站坊秸。
其倡導(dǎo)幾個(gè)points:“高等”教育資源應(yīng)該要“開源”出來;學(xué)習(xí)不再是停留在讀書時(shí)期澎怒,而是終生行為褒搔,或者說重新詮釋“學(xué)習(xí)”;教育不應(yīng)是讓學(xué)生被動(dòng)接受喷面,而是引導(dǎo)其主動(dòng)參與星瘾,通過實(shí)踐有所收獲,并且終生受用惧辈。
每個(gè)課程的中文叫“納米學(xué)位”琳状,有一定科技感的名字,第一印象是一個(gè)輕松盒齿、輕盈的形態(tài)念逞,但影響力卻是細(xì)致入微的。具體詳情边翁,還請去其官網(wǎng)好好了解吧翎承。
4.如何看待,如何跟進(jìn)
從個(gè)人來說符匾,希望能獲得這個(gè)證書認(rèn)證叨咖。
從團(tuán)隊(duì)角度來說,通過考核內(nèi)容,提煉skill要求甸各,納入團(tuán)隊(duì)skills規(guī)范中仰剿。
從市場環(huán)境來看,可以說是為企業(yè)尋找具備技術(shù)和產(chǎn)品大局觀的開發(fā)者提供可靠的官方認(rèn)證項(xiàng)目痴晦,一個(gè)橋梁的作用。
從整個(gè)社會(huì)角度來看琳彩,我認(rèn)為是因?yàn)橛行枨筇茏茫惝a(chǎn)生了這個(gè)項(xiàng)目、服務(wù)露乏。
后續(xù)跟進(jìn)碧浊,待我去親身體驗(yàn)一番再分享。