以下這是我的經驗。
Android 開發新手應具備的觀念:
-
Android是Multithread運作,沒有thread-safe, 有些時候會有thread-safe。
-
運作App常容易因為一些事件而要轉換狀態,例如旋轉螢幕,這是正常的。
-
找問題的解決方式,搜尋關鍵字找兩次,找第二次時最好加上Android最近一年的新版本編號、別名,例如Androidv4.0又稱為Icecream Sandwich, 4.1、4.2和4.3都稱為 Jellybean。原因是目前網路上沒註明版本的解法通常是android 4.0以前版本。
-
App的運作模式一言以蔽之,啟動和結束App階段就是不斷的切換狀態,切換狀態時保存和讀取資料,剩下的運作階段就是你賦予App的概念。
- 理解概念的方式, 先看Android developer的guide, 再找stackoverflow.com,這兩個通常都會有diagram講解概念和能運作的sample code;不懂的api去看Android developer的reference,看一次class的說明再往下找api的使用方式。Android developer的blog最新文章可以看,距離一段時間的文章當做參考就好。Android developer的training可看可不看,看你開發時間充裕程度而定。
開發新手分階段應熟悉的資料階段,完全了解前三階段的資料,開發者就具備可以開發出一個好App的能力:
第一階段:
- Activity生命週期,
- Manifest.xml的Activity相關標籤。
- activity layout, 像是Linearlayout, RelativeLayout,Framelayout, …etc.
- layout component,像是TextView, Button, ImageView, ImageButton, …etc. 不用管動畫,只要能顯示和變色這兩種基本就好了。
- 基本的layout component的listener,像是onClickListener, onTouchListener, 這兩個就夠了。
第二階段:
- Fragment生命週期,
- ActionBar的tab頁面切換,
- Fragment的layout和Activity的layout觀念相同.
- Fragment的動態layout,
- layout component, 像是ListView, ArrayListView,自定的ArrayListView, …etc.
- Manifest裡Activity的onConfigChange標籤內容、intent-filter標籤、uses-permission。
- 傳送和接收Intent。h.實作Broadcast receiver類別。
第三階段:
- Service生命週期,
- Service的兩種不同操作方式,
- Java的Thread運作方式,synchronize用法.
- Android的UI thread, Handler, HandlerThread運作方式。
- Java的socket, datagram, datagramsocket.
- 你想了解Android的類別, 例如Bluetooth, NFC, …etc.
- 不同尺寸螢幕的Layout擺放方式。
第四階段:
- 手勢listener.
- 不同解析度(dpi)螢幕的Layout擺放方式。
- 你想了解的Android類別、附屬的interface和底下的method.
- Broadcast receiver與Activity、Fragment、Service的溝通方式。
- AIDL。
第五階段: