Associate Android Developer(AAD)認證應考準備要領

作者 | 2016-08-26

Associate Android Developer(AAD)認證如何準備呢? 應該換個說法與做法,它不適合一般所認識的認證考試的「準備」,實務能力不是準備來的,而是「磨」出來的。應該說,「具備什麼程度的能力,再去考」才是重點。AAD的翻譯是Android開發專員認證,它的認證重點在確認你擁有以下能力:

Testing and Debugging(測試與除錯能力)

設計某個特定需求的JUnit Test(Local JVM Test)或Android Instrumented Test,通常會與畫面轉換或元件的內容相關,所以一定要熟悉數種類別庫中的其中一項,我的建議是Espresso,雖然使用它時得要正確的import(static)方法與類別,但熟悉後,幾乎能處理大部份的情境與需求。

它要求受試者要擁有找到程式失敗的原因,並改正它的bug或解決造成記憶體漏洞的問題。在找問題的時候可使用Log來檢視過程,但如果我們會使用Debugger除錯器,那當然會加快找到出錯的原因。

Testing

A7419

Debugger

A7420

Application User Interface(UI) and User Experience(UX)

使用者介面與使用者經驗相關的實作能力,如建立一個版面配置(layout)並使用一些基礎元件,如TextView、EditText等,也包含設計一個客製作的元件layout,用於RecyclerView中的項目列。使用者經驗則包括定義樣式(style)與各類的Theme屬性,並將這些屬性套用在APP中的畫面中。

有些時候APP也需要語系的設定,在不同語系中顯示不同的文字,這都需要能將字串、大小、顏色等屬性以資源方式儲存。除此之外,也會要求能夠實作Menu(ActionBar)或者抽屜式展開的瀏覽介面。

這個項目也要求受試者要有能力將本地資料庫的資料筆數以RecyclerView呈現,所以在養成這些能力並不像字面上(UI & UX)如此容易,要對Java語言的活用有概念,才會容易上手。

Fundamental Application Components (基礎元件)

基礎元件指的是Activity、Service、Broadcast Receiver與Content Provider這四大類型元件,懂得這四大元件個別的生命週期(方法的執行時機)是很重要的,重點是,一個APP中可能使用了這四種元件中的三種,如何能看懂APP的全面架構,那個功能使用了一個Service,目的是什麼? 那裏產生了Broadcast Receiver,用途是什麼? 出了什麼問題,能用那一個元件解決這個問題。並不像一般市面教科書所教的,按照步驟產生這些元件,而是元件早就在這個APP中的好多地方使用了,要如何找到問題並調適它們。

這個項目需要受試者能夠產生Activity並設計layout、使用Loader在背景執行緒取得資料,並從Loader中將資料送到畫面中的元件上、使用鬧鐘(alarms)或JobScheduler類別產生排程工作,還能夠在Service中執行背景工作等。

Settings

A7422

看到這裏,有點昏頭是還蠻正常的,刺激的還在後面 🙂

Persistent Data Storage (資料儲存)

針對每個考題所訂定出的案例實作合適的儲存方案,例如假設要儲存的是使用者輸入的值或設定,可使用SharedPreferences,若是有結構性的資料,則應選擇SQLite資料庫。當然,在何時儲存、何地儲存就要靠程式設計能力去判斷現有的程式碼的問題,一一解決這些問題。

SQLiteOpenHelper是一定要熟悉的基本知識,尤其是onCreate的執行時機,如何insert初始資料,包括建立表格、欄位還有索引。APP中通常已經定義了表格的規格,所以需要從資源的文字檔中讀取初始資料(大都是JSON格式),使用迴圈將一個個解析完成的JSON物件新增到表格中。

另一個較進階的能力是設計APP的Content Provider機制,能夠提供自身APP中查詢、新增、更新與刪除。另外,有時會要求受試者將這個Content Provider提供給外部使用,也要稍微熟悉一下作法。

設定畫面也是每個考題都會有的項目,會有一個APP的設定Activity,項目不會很多個,大概一兩個,有時會是由使用者輸入資料,有時是開關式的設定,但一定要在設定值改變時設計出相對應的程式邏輯,例如ToogleButton開啟時,要自動在一段時間後發出通知。

 

Enhanced System Integration(加強與系統的整合度)

APP與手機系統介面的整合,也就是Android待機主畫面中的「小工具」Widget,以及Android上方的通知列,利用NotificationManager與Notification.Builder產生通知物件,並在裏面放置PendingIntent等工作是必要的能力。通常Widget會先設計好,只是內容與行為並不正確,受試者需要修改或加入程式碼,好讓它能符合規定的需求,如一段時間後要自動更新Widget中的內容,或是一段固定時間後要出現通知。

不論是Notification或Widget,點擊後都要能夠加入符合規定的動作,如開啟特定的Activity等需求。

如何準備? 哦不,是加強能力

AAD的考題中所給的問題,通常是有連貫性、相關性的,如果只會處理一個或兩個項目是不夠的,會在遇到下一個解不出來的問題所拖累,而造成功能不完整。在過程中,當然可以查書、查網路的資料來試著解決問題,但還是需要足夠的實務經驗,否則,很容易窮忙一場而毫無建樹。

不斷的實例練習,是最好提昇能力的方法,如果你是個身經百戰的開發人員,當然早就擁有這些能力,但如果練習不足,或是之前的基礎並不穩固,那就先加強基礎能力後,再加強專業能力,也就是練習不同需求的解決方法,也成為身經百戰的人,相信不會有問題的。

有人會想說,那找人代考呢?

這問題在國外不常見,通過一個認證取得證照是一種證明自己的途徑,也不會因為這樣就能進入某公司,因為一進去大概1個小時就掛了,開發能力是假不來的。若是被發現是假的,一輩子大概就得背著這個作假的包袱,划不來的~

AAD的考試最後一關,叫做exit interview,當你的成績通過標準後,會安排線上面談確認作答者與提供的身份證明是同一人,也會在過程中提問確認有關專案的實作的方法與問題。

2017年Google將改變認證的世界!最完整的Google Certified Associate Android Developer認證考照介紹

[版權聲明]

本文章版權為湯秉翰所有,授權範圍僅限綠豆湯網站使用,除Facebook之類社群等未更改本文章出處之分享行為不在此限,其他個人或公司未經作者同意,不得任意將本文章內容轉載至其他網站,或以任何形式重製,為以免觸犯著作權法,請尊重作者之智慧財產權。

相關文章:

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *