2011年2月14日 星期一

2011 Android 2.X 手機應用開發課程 @ 台灣

2011 mobile app development training courses for Android 2.X @ Taiwan

在 2010 年除了 Android 入門開發課程之外,也開了一門進階課程。我個人覺得在入門課中,最重的要的是幫助入門者打好基礎,尤其是 Android 平台的架構,與在該平台上應用程式運作的基礎觀念與原理。這部分要是清楚了,日後遇到問題,要自己找資料解決,也有個方向。另外就是對 ListView 元件的運行原理,也有深入的介紹,ListView 是 Android 眾多 UI 元件中,最常用到的,也是最好用的一個。透過對 ListView 的了解,其他類似的元件如 GridView, Spinner 等由 AdapterView 所延伸的元件,自然也可觸類旁通。

至於在進階課程中,最重要的部分,就是我會用將近一天的時間來解釋與剖析 Activity & Service 的生命週期。這部分是對已入門的開發者,最最重要的一部分,卻也是最不容易全盤了解與最容易被忽視的一部分。我試玩過很多應用,也看過不少人的程式,與發問的問題,都是源自於對這部分的了解不夠透徹。

在 2011 年,除了延續 2010 的課程,並將原先的課程內容都改以 Android 2.x 平台為主之外,還加開了雲端/地圖應用開發與原碼解析這門進階課。

在這個新的進階課程中,我會先介紹如何開發存取網路的 Android 應用。行動網路是智慧型手機的重要特色之一,因此開發具有網路存取功能的應用,也是大家常常會接觸的工作之一。我會在課程中提及如何在 Android 手機平台上,正確執行這項工作。智慧型手機的另項特色,就是 GPS (location-based)。接下來,我會介紹如何開發地圖 (LBS, location-based) 應用,如何抓取經緯度座標,寫好地圖應用,都是這課程會教的事。

最後,我會花半天的時間,教大家如何讀 Android 應用的源碼,並實際拿個例子來解說。我個人覺得閱讀及追蹤 Android 的原始碼,是提昇你 Android 程式設計功力最好的方式之一。當你已具備 Android 開發基礎的情況下,想要再進一步提升你的程式設計功力,除了要想辦法讓自己多增加些程式設計經驗外,閱讀及追蹤別人寫的程式碼,更是最好的方法。不過網路上,每個人的程式功力高低不同,寫出來的程式也有好有差。讀到不良的程式,看不懂還不打緊,如果誤導你的觀念,那可就得不償失。因此,當你底子還不足以判斷好壞程式時,研讀 Android 原始碼,就是你學習 Android 程式設計時,最好的導師。

底下是 2011 年計畫開的課程,不管是內容或是其他方面,要提意見的,也都歡迎在這篇文章上留言。

有句話說的好,『師父領進門,修行在個人』。千萬不要期望說,上個課就什麼都會了。天下沒有白吃的午餐,許多東西還是要自己親身走一遭,才會明白與了解。我想上課最大的好處是,透過有系統與組織的解說,降低你學習的門檻與加快進入的速度。我個人估計是 12 個小時的課程,大概可以幫你減少約 0.5~1 個月的自我摸索時間。剩下的,還是要靠自我的練習。

入門課

首先,我將課程內容都改以 Android 2.x 平台為主。在這個 Android 入門開發課程中,最重的要的是幫助入門者打好基礎,尤其是 Android 平台的架構,與在該平台上應用程式運作的基礎觀念與原理。這部分要是清楚了,日後遇到問題,要自己找資料解決,也有個方向。另外就是對 ListView 元件的運行原理,也有深入的介紹,ListView 是 Android 眾多 UI 元件中,最常用到的,也是最好用的一個。透過對 ListView 的了解,其他類似的元件如 GridView, Spinner 等由 AdapterView 所延伸的元件,自然也可觸類旁通。

課程大綱

  1. 熟悉 Android 2.X開發環境與Android平台知識
  2. 瞭解Android 2.X程式框架
  3. 如何有效率的偵錯程式
  4. 功能選單之設計與應用
  5. 各式使用者介面元件之設計與應用
  6. 如何支援多國語言與不同的硬體設備
  7. Intent 的使用
  8. 深入剖析 Activity 之運作行為
  9. 喜好設定之存取
  10. 發佈應用程式與參考資料

進階課 I

這個課程先帶領你深入研究 Android 三大重要元件 (Actiovity, Service, BroadcastReceiver) 的運作原理,與建立正確的使用觀念。其中我會用將近一天的時間來解釋與剖析 Activity & Service 的生命週期。這部分是對已入門的開發者,最最重要的一部分,卻也是最不容易全盤了解與最容易被忽視的一部分。我試玩過很多應用,也看過不少人的程式,與發問的問題,都是源自於對這部分的了解不夠透徹。BroadcastReceiver e也是最常被使用的元件,在學如何開發桌面小工具之前,如何使用這元件的正確觀念是一定要先建立的。接下來,我會介紹如何開發桌面小工具和多媒體應用。對於已熟悉 Android 應用開發,而想進一步提昇您自身應用開發實力與建立正確觀念的您,這個課程是一定要上的。

課程大綱

  1. 深入研究Android生命週期
  2. 如何開發自訂使用者元件
  3. 各式繪圖功能之使用與應用
  4. BroadcastReceiver之使用與應用
  5. 深入研究Service之使用與應用
  6. 如何建立桌面小工具
  7. 重力加速感應器的使用與應用
  8. 如何播放與錄製多媒體影音

進階課 II

在這個進階課程中,我會先介紹如何開發存取網路的 Android 應用。行動網路是智慧型手機的重要特色之一,因此開發具有網路存取功能的應用,也是大家常常會接觸的工作之一。我會在課程中提及如何在 Android 手機平台上,正確執行這項工作。智慧型手機的另項特色,就是 GPS (location-based)。

接下來,我會介紹如何開發地圖 (LBS, location-based) 應用,如何抓取經緯度座標,寫好地圖應用,都是這課程會教的事。

最後,我會花半天的時間,教大家如何讀 Android 應用的源碼,並實際拿個例子來解說。我個人覺得閱讀及追蹤 Android 的原始碼,是提昇你 Android 程式設計功力最好的方式之一。當你已具備 Android 開發基礎的情況下,想要再進一步提升你的程式設計功力,除了要想辦法讓自己多增加些程式設計經驗外,閱讀及追蹤別人寫的程式碼,更是最好的方法。不過網路上,每個人的程式功力高低不同,寫出來的程式也有好有差。讀到不良的程式,看不懂還不打緊,如果誤導你的觀念,那可就得不償失。因此,當你底子還不足以判斷好壞程式時,研讀 Android 原始碼,就是你學習 Android 程式設計時,最好的導師。

在這課程中,也會教授 Android 的第四大重要元件 ContentProvider 的用法,當然也會提及 SQLiteDatabase 這個主題。

課程大綱

  1. Android雲端應用開發
  2. - 如何開發以網頁(WebView)為基礎的 Android 應用
  3. - Android與WebView間的互相呼叫
  4. - 如何開發Android端網路應用程式,及該注意的要點
  5. - URL, IntentService, HttpClient, AndroidHttpClient
  6. - XML 與 JSON parsers 的使用
  7. Android LBS (地圖)應用開發
  8. - 如何擷取各式地理座標資訊
  9. - 如何開發地圖(MapView)應用
  10. Android原始碼徹底研究
  11. - 如何研讀Android原碼
  12. - 深入研讀Android原碼實例
  13. - SQLiteDatabase, ContentProvider

底下是 2011 年計畫開的課程:

日期地點課程名稱難易度
5/4,5 星期三四新竹Android 2.X 手機應用開發實務
工研院
基礎
5/18,19 星期三四台北Android 2.X 手機應用開發實務
工研院
基礎
6/1,2 星期三四台北Android 2.X 手機應用開發實務
工研院
進階 I
6/29,30 星期三四台北Android 2.X 手機應用開發實務
工研院
進階 II
7/20,21 星期三四新竹Android 2.X 手機應用開發實務
工研院
進階 I
9/14,15 星期三四台北Android 2.X 手機應用開發實務
工研院
基礎
10/12,13 星期三四台北Android 2.X 手機應用開發實務
工研院
進階 I
11/9,10 星期三四台北Android 2.X 手機應用開發實務
工研院
進階 II

2009-2010 在台灣所開的課程

10 則留言:

匿名 提到...

請問,費用的話…?

samlu 提到...

收費的部分都是由開課單位負責的,請自行點選相關課程連結,裡面有說明費用等資訊。

frank 提到...

明年也會開課嗎? 請問一下 謝謝

samlu 提到...

今年才剛開始,就問到明年啦?
不確定,要等到明年才知道。

Unknown 提到...

老師..請教您service的部分會教到binder或aidl嗎

samlu 提到...

會的,你講的 binder, aidl 都有講到。
進階 I 中的 service 部分,我自認應該教得很完整。

匿名 提到...

能否請問"基礎"課程適合完全沒寫過程式的人嗎?

samlu 提到...

不適合。基礎課程建議修課條件是需具備Java 語言,或是其他物件導向語言基礎。

匿名 提到...

感謝您回答!因為有看到您在2010/04有開過很基礎的課程,只是現在都沒有看到您開基礎課程了。不知道能不能推薦幾本書給初學者參考?希望看完此書後,可以去上您目前開的基礎課程

匿名 提到...

請問2012年的課表已經規劃出來了嗎?

張貼留言