會了點Android,要學點什麼?

By | 2016-07-08

經過上一篇”不會Java,學Android?”之後,如果按照建議的學習路線,現在大概算是擁有點Android能力了,簡單介面、功能難不倒你,但如果遇上有點商業需求的案子時,那就很危險了。我建議,此時暫還是不要去接案,再學點Android開發技能再去打怪。

上一篇連結:  不懂Java,學Android

學習Android的初期可說是面面俱到,什麼都要瞭解,像是開發環境、SDK、Activity類別、生命週期等。但是接下來的學習就不應該是如此了,應該找幾個重要的項目(Topics),進行較深度的學習。

以下是我建議的項目:

一、資料儲存

此項目包括了適合儲存簡單資料的Preferences介面與SQLite資料庫,除了寫幾行測試程式將資料寫到SharedPreferences內之外,還需要學習使用adb開發工具連線到模擬器內去除錯,要練習到未來想要確認時可以很流暢地操作。而SQLite的練習,應該要找一、兩個實例來幫助理解與練習,別只是寫幾行範例。要使用到SQLite儲存時,一定是有新增資料的畫面,也會有展示資料的畫面,這些都要不厭其煩地實作出來,當你完成後,成就感不是寫幾行範例可以比擬的,完成實例功能才是獲得深度理解的途徑。

這些項目重要的是深入,而不是淺學,切記到此時,學習的心態要做一下變換。

二、弄懂什麼是匿名類別

在上一個學習儲存資料的過程中,應該也發現在設計APP時,常要使用對話框與使用者互動,按下是/否要實作不同的程式碼了,此時應學習如何加入AlertDialog與其Builder的設計模式,在過程中一定會遇到OnClickListener這個叫傾聽者的傢伙,實作這類事件傾聽者至少有四種方法,每種都會讓人頭疼,只好找一種較不痛苦的,也就是匿名類別(或稱內部匿名類別(Anonymous Inner Class),等到熟悉後,若還有餘力,再多瞭解Java 8的Lambda語法。

匿名類別的寫法在一般的專案很常見,若想未來能夠看懂別的專案或網路上眾多的參考資料,避也避不掉的,先熟先贏囉。

三、畫面轉換與資料傳遞

由一個Activity轉換到另一個Activity最簡單的方式是用Intent,再呼叫startActivity方法,但實務上,常需要在回到前一個Activity時帶回結果或資料,因此在Intent中夾帶資料一定要熟悉。複雜一點的資料,也要會能夠使用Bundle,可使用一些常見案例來練習,如登入功能、帳號儲存與傳遞等。而畫面變換不只這兩種,還能以PendingIntent方式讓你的APP由背景中回來,這都需要深入的練習各式的案例,才能讓自己在未來有這類需求時,當下就能決定使用那一種機制或設計。

這是未來是否能夠進階學習的一大基礎,請多花點時間深入瞭解。

四、該學好Java了

大致上,學習過程到這個時候,應該會發現Java語言的重要性。如果,在以上的過程中感覺吃力,或似懂非懂時,我建議從Java語言的基礎看起,再回到這個新起點繼續,因為後續的學習只會用到更多的Java語言觀念。學好Java基礎應該是要清楚什麼是類別、什麼是物件,基本資料型態(Primitive Data type)與參照(Reference Data type),什麼是Wrapper class、繼承帶來的效用、什麼是介面與實作的方法與意義,Instance方法與Class方法的不同,抽象類別,當然,不能忽視集合(Collection)的重要性,要能選擇、判斷使用那一種集合儲存資料。

切記,知道這些知識並不是學習的重點,而是要怎麼將這些知識應用在實例中。

五、耗時工作設計與網路連線

從Android 3.0開始就硬性規定耗時如網路連線等程式碼,必須寫在非UI執行緒中,以免造成使用者介面停頓。使用AsyncTask這個方便的類別是最容易的了,當然,如果對Java熟的,可以使用Thread類別或Runnable介面實作,或是利用Future、Android的Handler等。網路連線就看個人了,如果想要每一個環節都能掌握,那就用java.io與java.net實作,如果想要加快開發過程,使用okHttp或其他第三方函式庫也是很方便的,也可以在這個時候多認識Gradle處理相依性類別庫的特性。

五、清單與Adapter

Android的清單元件(ListView)是最常見的,如果能從ListView開始學習各類需求,如單欄、兩欄、多欄客製化等顯示方式,再加上資料的來源有數類,如字串陣列、網路的JSON、資料庫以及未來會遇到的Content Provider等。若都能學會處理這類的需求,以後遇到下拉選單(Spinner)或GridView等元件,大概就可以高枕無憂,兵來將擋了。與網路連結取得資料,再進行轉換最後成為ListView,值得多花點時間瞭解與實作。

到此時,我估算也要上個階段的五倍時間以上,才能將能力提昇至可打怪的程度,但如果遇到小魔,大概也會GAME OVER。若此時急著想驗證自己的能耐,建議專案找2-3萬的先試水溫,存活下來後再考慮接稍大的或需求複雜的專案。

還有東西要學嗎? 當然,當然,當然。

相關文章:

Category: Android 標籤:, ,

About Hank Tom

專長為程式語言、雲端服務開發,Linux系統管理, 任職:利拓科技 技術長,海林行動科技 技術總監 輔仁大學 兼任助理教授 , 為 Android高效入門>深度學習、CentOS 7建置、管理與伺服器架設實戰、Java網路程式設計、雲端網頁程式設計-Google App Engine應用實作 等書作者

發表迴響

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