2012年11月27日 星期二

2013 Android 4 手機應用開發課程 @ 台灣

從 2009 年到 2013 我一直致力於 Android Apps 開發之各項教學與推廣活動。到了 2014 年的開始,我想這項階段性任務應該是到了他該結束的時候。也就是說,從 2014 年開始,我將不再承接所有授課、演講與採訪等活動。

2013 mobile app development training courses for Android 4 @ Taiwan

底下是 2013 年設計開的 Android 相關課程。

入門課 - Android應用開發設計實務

首先,我將課程內容都改以 Android 4 平台為主。在這個 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. 發佈應用程式與參考資料

進階課 I - 深入研究三大元件與桌面小工具之開發

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

課程大綱

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

進階課 II - 深入研究Android 4手機應用新架構

在這個進階課程中,將介紹並帶領學員深入研究 Android 3、4 新應用架構與 APIs。首先要介紹的就是 Fragments,如果你要將你的應用同時執行在手機與平板上,Fragments 是一定要導入的設計概念。就算你只支援手機應用,新的 Fragments 也有助於將你的應用架構,整理的更模組化與達到高重用性的目的。除此之外,我也將一次介紹 Android 3/4 所加進來的各項重要新功能。

課程大綱

  1. 設計平板與手機應用的最佳策略
  2. - Fragments 簡介
  3. - 深入研究 Fragment 生命週期
  4. - new resource qualifiers
  5. - 同時支援各式螢幕大小不同的設備
  6. 支援 Android 3/4 桌面小工具新功能
  7. - 可縮放的桌面小工具
  8. - StackView, ListView
  9. - RemoteViewService
  10. Android 3/4 新功能
  11. - Action bar
  12. - Status bar notifications
  13. - PreferenceActivity, PreferenceFragment
  14. - PopupMenu
  15. - GridLayout
  16. - Drag & Drop
  17. - Copy & Past

進階課 III - 雲端/地圖應用開發與原碼解析

在這個進階課程中,我會先介紹如何開發存取網路的 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

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

日期地點課程名稱難易度
3/6,7
星期三四
台北Android 4 手機應用開發實務
工研院
基礎
3/20,21
星期三四
台北Android 4 手機應用開發實務
工研院
進階 I
4/10,11
星期三四
台北Android 4 手機應用開發實務
工研院
進階 II
4/24,25
星期三四
台北Android 4 手機應用開發實務
工研院
進階 III

2 則留言:

Indiana 提到...

老師會在新竹開課嗎?

大明 提到...

小弟有個實務上問題想在此冒昧請教, 情境如下:

小弟現在要用一個webview 去 load一個URL,

這個URL包含了一些javascript而該javascript 會要求webview一個儲存空間, 然後下載一段影片, 之後再播放這個影片。

而小弟在實作上雖然在 webview 所在的activity做了以下動作:

settings.setDatabaseEnabled(true);
String databasePath = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
settings.setDatabasePath(databasePath);
settings.setDomStorageEnabled(true);

但是, javascript 那端始終出現錯誤訊息 "File storage is not supported on this browser!" , 以下為javascript那端:

console.log(" -FS: requesting quota..");
if (navigator.webkitPersistentStorage)
navigator.webkitPersistentStorage.requestQuota(1024 * 1024 * 1024, getSpace, function() {
console.log(" -FS: navigator not supported, trying deprecated storageInfo..");
window.storageInfo.requestQuota(window.PERSISTENT, 1024 * 1024 * 1024, getSpace, errorHandler);
});
else if (window.storageInfo)
window.storageInfo.requestQuota(window.PERSISTENT, 1024 * 1024 * 1024, getSpace, errorHandler);
else
throw "File storage is not supported on this browser!";

問題如下:

Q1. 小弟的情境在android 的webview上可以做到嘛 ?

Q2. 如果Q1可以做到, 小弟的實作上遺漏了哪些東西 ?

感謝! 0rz...

張貼留言