2011/4/22 應遠傳 S Club 邀請,給一個和 Android 3.0 平板相關的演講。
這次聚會一開始是 Acer產品行銷經理陳先生,介紹自家的 A500 平板的使用方式與特色。算是從使用者的層面,來看最新的 Android 3.0 平板。而我主要是從應用開發者的角度,來談 Android 平板應用開發的經驗分享。
底下是這次演講的投影片,分享給有興趣的你。
歡迎大家引用,但為尊重著作權,引用時請註明出處,也請您勿部分或全部使用於演講或著作等相關用途。
繼續閱讀全文...
寫程式是自己二十多年來的興趣。因為,程式讓我在我的想像天堂裡,盡情創造。擅長的領域有: Android 應用程式開發與訓練, 大型應用軟體開發, C/C++/Java, Android/Palm/Aibo, Windows/MFC/Qt, Perl/Tcl/PHP/JavaScript, MySql
2011/4/22 應遠傳 S Club 邀請,給一個和 Android 3.0 平板相關的演講。
這次聚會一開始是 Acer產品行銷經理陳先生,介紹自家的 A500 平板的使用方式與特色。算是從使用者的層面,來看最新的 Android 3.0 平板。而我主要是從應用開發者的角度,來談 Android 平板應用開發的經驗分享。
底下是這次演講的投影片,分享給有興趣的你。
歡迎大家引用,但為尊重著作權,引用時請註明出處,也請您勿部分或全部使用於演講或著作等相關用途。
從 Android v1.5 開始,終於開放 APIs,讓第三方開發者可以寫些 widgets,讓使用者可以放在手機的桌面上。一般手機就有內建幾個小 widgets,其中的 "Analog Clock" widget,就是由 Alarm Clock 這隻鬧鐘程式所提供的。
這次我們就來研究一下,這個 Analog Clock widget 是如何寫出來的。
不過,如果你對如何寫 App Widgets 一點概念都沒有的話,底下有幾個很好的參考資料,一定要先讀過:
要寫個 App Widget,首先你要先用 XML 寫個 AppWidgetProviderInfo,而且這個檔案建議放在 res/xml 中。在鬧鐘程式中,你可以找到 res/xml/analog_appwidget.xml 這個檔案。它的內容如下:
由 minWidth 及 minHeight 這兩個屬性來看,就可以了解,這個 App Widget 要佔桌面 2x2 cells 大小的空間。
updatePeriodMillis 的值為 0?那這個時鐘是如何自己動的呢?這我在 Android 原始碼徹底研究系列 - 鬧鐘程式, AnalogClock (1) 一文中,就已經解釋過 Analog Clock 是如何自我更新的。還不清楚的,先讀一下這篇。
initialLayout 這個屬性,從名字看起來,就知道它是用來描述這個 App Widget 的畫面設計。由其值我們可以知道,這個 App Widget 的畫面設計,是在 res/layout/analog_appwidget.xml 中。它的內容如下:
果然不出我們所料,這個 App Widget 的畫面設計,就只是一個簡單的 AnalogClock 。時鐘與時,分針圖檔就是分別透過 dial, hand_hour, hand_minute 這三個屬性來指定。
要注意的是,目前在 App Widget 的畫面設計檔中,你只能使用 FrameLayout, LinearLayout, RelativeLayout, AnalogClock, Button, Chronometer, ImageButton, ImageView, ProgressBar, TextView 等元件,其他元件都不能用。
寫好 AppWidgetProviderInfo XML 檔與 App Widget 畫面設計檔,別忘了,還要在 AndroidManifest.xml 中,宣告你的 App Widget Provider。
在這裡,他指明了這個 App Widget Provider 是要由 AnalogAppWidgetProvider 這個類別來處理。這個類別的原始碼就是 AnalogAppWidgetProvider.java。
在這個類別中,主要的工作就是建立 App Widget,並透過 AppWidgetManager 發佈到桌面上。
鬧鐘程式所提供的 "Analog Clock" widget,其實功能很陽春,也沒有用到所有 App Widgets 提供的所有功能。不過,對於想要了解如何寫個 App Widget 的你,應該是有很大的幫助。如果你想要找個較為完整的 App Widget 範例,我建議你看一下 API Demos 這個範例程式。
為了幫想學好 Android 應用開發的你,建立正確的觀念,打下札實的基礎。我設計了一些課程。
有興趣的,請點下面連結: