Android 教學課程講義懶人包 ( 適用 Android 4.0 , Android 3.2 , Android 3.1 , Android 3.0 , Android 2.3 , Android 2.2, Android 2.1 ) 是孫傳雄研究室從2010年撰寫至今的 Android 手機應用程式開發教學網路講義集。我們的 Android 教學內容會跟隨 Android 手機應用程式開發技術發展而更新。我們盼從基礎的 Android SDK 下載安裝開始,透過詳盡易懂的圖文教學,帶領 Android 手機應用程式開發初學者由淺入深地領略 Android 手機應用程式開發樂趣。我們的電子聯繫信箱是 tomsun.service@gmail.com

喜歡閱讀我們的 Android 課程教學講義嗎?歡迎加入我們的網路讀者俱樂部會員,謝謝!

Android

Android 教學課程講義懶人包

Android 教學課程


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


以下列示 [ 孫傳雄研究室 ] 目前已經在網路上發表的 Android 課程講義集各章節網址連結。以茲大家方便連結閱讀。(註:本Android課程講義集目前適用 Android 4.0 SDK , Android 3.2 SDK , Android 3.1 , Android 3.0 , Android 2.3 , Android 2.2 , Android 2.1 )


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


[Android 教學課程] Android Open Accessory for Android 3.1, Android 2.3.4

Android Open Accessory | ADK


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


Android 3.1 平板電腦作業系統以及它的開發工具套件 Android 3.1 SDK 終於在美國時間 2011年5月10日 至 2011年5月11日 舉行的 Google I/O 2011 大會正式發表。(註: Android 2.3.4 智慧型手機作業系統也在同時間一併推出。)

Android 3.1 平板電腦作業系統是 Google 繼美國時間 2011年2月22日 首次推出 Android 3.0 平板電腦作業系統之後的更新版本。

對於 Android 應用程式開發者而言,除了欣喜 Android 再一次新的變革之外,我們相信大家也期待在這一次的改版之中,能看見更多未來的發展機會與展望。

因此,我們希望透過此篇 Android 教學講義之編寫,讓身為 Android 應用程式開發者的讀者朋友們,能夠更進一步地暸解此回 Android 3.1 平板電腦作業系統的改版對於開發者之影響。以下為本篇 Android 教學講義的六項主軸:


  • Android 教學: Android 3.1 的新開發功能

  • Android 教學: USB ( Universal Serial Bus )

  • Android 教學: Accessory Mode 與 Host Mode

  • Android 教學: Android Open Accessory Development Kit ( ADK )  的硬體初始溝通程序

  • Android 教學: ADK 開發板 ( Android Open Accessory Compatible Development Boards )

  • Android 教學: Android Open Accessory Development Kit ( ADK ) 的已知限制


如果您對於 Android 手機或平板電腦應用程式開發也有興趣,歡迎您先閱讀我們在網路上已發表的 Android 手機與平板電腦應用程式開發教學系列講義。

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義


Android 教學: Android 3.1 的新開發功能


【孫傳雄研究室 編著】綜觀此次 Android 3.1 平板電腦作業系統的新功能,主要包括:新增讓使用者可自行調整視窗大小的桌面小工具介面元件  ( Home Screen Widgets ) 、支援新形態的媒體傳輸協定 ( Media Transfer Protocol , MTP ) 、支援以串流音訊為主的即時傳輸協定 ( Real-time Transport Protocol , RTP ) 以及更廣泛地支援滑鼠、搖桿與遊戲手柄 ( Mice , Joysticks , and Gamepads ) 等 USB 外部週邊設備等部份。

不過,我們認為此次 Android 3.1 平板電腦作業系統的改版,對於電子產業與資訊軟體產業的讀者朋友而言,最值得關注的要點不在平板電腦本身,而是在於 Android 開放性週邊設備開發套件 ( Android Open Accessory Development Kit , ADK ) 的一併推出。(註: Android Open Accessory Development Kit ( ADK ) 內含 Android Open Accessory APIs )

更進一步地說,我們認為 Android Open Accessory Development Kit ( ADK ) 的推出是 Android 3.1 平板電腦作業系統、甚至是 2.3.4 智慧型手機作業系統之中最重要的變革。(註: Android 3.1 平板電腦作業系統已內建 Android Open Accessory Development Kit ( ADK ) 的 Android Open Accessory APIs ,同時 Android 2.3.4 智慧型手機作業系統可以透過 Google APIs 附加函式庫 ( the Google APIs add-on library ) 的方式運作。)

原因無他,主要是 Android Open Accessory Development Kit ( ADK ) 讓相容於它的 USB 週邊設備能夠透過 USB 外接式傳輸介面的方式,主動地與 Android 2.3.4 智慧型手機或者 Android 3.1 平板電腦啟動連接,並進行 USB 連接傳輸工作。

此舉大幅地增加了 Android 智慧型手機或平板電腦與 USB 週邊設備之間的互動關係。

像是 Google I/O 2011 大會的場內人員,他們便利用搭載著 Android 3.1 平板電腦作業系統的 Motorola Xoom 平板電腦,在一個大型的實體迷宮之中操控一顆 5000 磅的滾球(影片來源: IntoMobile on YouTube 影音頻道)。





另外,據 Android Developers 官方部落格所示,也有人利用搭載著 Android 3.1 平板電腦作業系統的平板電腦,去操控一隻小型 Android 機器人玩具的雙手與身軀,並且讓機器人跳著迪士可舞蹈、它的眼睛還可閃爍著 LED 的亮光。(影片來源:chrisjrelliott 的 Youtube 影音頻道 )





當然,這些 USB 週邊設備不會只是上述的迷宮滾球或者小型 Android 機器人玩具而已,在未來也可能包括更多內建機器人控制器 ( Robotics Controllers ) 的電子機器人或機器手臂、數位音樂播放設備 ( Musical Equipment ) 、健身運動器材 ( Exercise Equipment ) 、甚至自動販賣機 ( Kiosks ) 等…。

這些 USB 週邊設備的未來發展潛力,仍有待於電子產業與資訊軟體產業的人們,實際去進行相關軟硬體的開發工作來實現。

更進一步地說, Android 智慧型手機與平板電腦應用程式開發者在過去多半只能涉足於智慧型手機或平板電腦螢幕當中虛擬的軟體世界。

然而,透過 Android Open Accessory Development Kit ( ADK ) 可以讓 Android 應用程式開發者用更簡易的方式,踏出螢幕的藩籬,實際運用高階程式語言去操控人們實際可觸的 USB 週邊設備。

當開發者可以使用 Android SDK 相關的高階程式語言取代艱澀難懂的組合語言去控制 USB 週邊設備時,可能促使更多資訊軟體產業的開發者與電子產業業者合作,共同投入此一領域的產品開發工作。

反過來說,由於 Android 允許 USB 週邊設備製造業者,在不用簽訂特定授權協議 ( Special Licensing ) 或支付授權金 ( Fees ) 的狀況下,便能夠自行生產能夠連接 Android 3.1 平板電腦或者 Android 2.3.4 智慧型手機的 USB 週邊設備。(資料來源: Android Developers 官方部落格)

因此,對於這些業者而言,他們有可能在此基礎之上,結合龐大的 Android 生態圈,為自家的電子產品創造出更多元化且有創意的功能與產品線。

所以,我們願意相信,此一舉措對於未來的電子產品發展有可能產生漸進式的深遠影響,同時也可能有間接地促進電子產業、通訊產業與資訊軟體產業在未來進行更緊密的匯流與結合。

另一方面,由於過往大部份的 Android 智慧型手機礙於只能扮演 USB 設備端 ( USB Device ) 角色之故,導致使用者不易擴充它們的 USB 週邊設備。

因此, Android 此舉或許也是希望 USB 週邊設備反過來成為 USB 主機端 ( USB Host ) 角色,再透過 Android Open Accessory Development Kit ( ADK ) 的協助,讓 USB 週邊設備仍然可以與不具備 USB 主機端 ( USB Host ) 角色的 Android 智慧型手機互動溝通,亦即轉個彎達成 Android 智慧型手機能夠擴充 USB 週邊設備的目的。(註:本篇講義下方會對 USB 主機端 ( USB Host )與 USB 設備端 ( USB Device ) 的概念架構進行說明。)

所以,無論您是身為電子產業當中的一份子、或者您早已是 Android 手機或平板電腦應用程式的軟體開發者,皆有必要深入去探究 Android Open Accessory Development Kit ( ADK ) 的細節與發展。(註: Android 3.1 平板電腦作業系統已內建 Android Open Accessory Development Kit ( ADK ) 的 Android Open Accessory APIs,同時 Android 2.3.4 智慧型手機作業系統可以透過 Google APIs 附加函式庫 ( the Google APIs add-on library ) 的方式運作。)

Android 教學: USB ( Universal Serial Bus )


不過,當您要深入探究 Android Open Accessory Development Kit ( ADK ) 時 ,我們認為您應先理解 USB 的概念架構。

因此,我們在以下的內容中,會透過 USB 的概念架構來談 Android Open Accessory Development Kit ( ADK ) 。

我們在此要特別強調地是:由於,本講義的以下說明除了指涉於搭載 Android 3.1 平板電腦作業系統的平板電腦之外,也有部份與搭載 Android 2.3.4 智慧型手機作業系統的智慧型手機有關。

因此,除非內容專指 Android 3.1 平板電腦或 Android 2.3.4 智慧型手機的部份外,不然.我們一律以 《 Android 裝置》統一稱呼搭載 Android 3.1 平板電腦作業系統的平板電腦以及搭載 Android 2.3.4 智慧型手機作業系統的智慧型手機。

至於那些配合《 Android 裝置》並以 USB 做為連接方式的外部週邊設備,我們則一律以《 USB 週邊設備》稱呼。

什麼是 USB 呢?

USB ( Universal Serial Bus ) 中文稱為《通用串列匯流排》,它是普遍被用來做為電腦主機與週邊設備之間的外接式傳輸介面。

由於, USB 支援熱插拔和隨插即用功能,而且還有成本低、速度快等優點,因此,目前它已逐漸成為許多電腦主機與週邊設備之間所通用的外接式傳輸介面。

標準的 USB 通訊架構是以非對稱(即一對多)的 USB 主機端 ( USB Host ) <-> USB 設備端 ( USB Device ) 之主從架構方式運作,它的訊號交換方式為雙向的資料傳輸。

更進一步地說,一個 USB 主機端的硬體可以內建多個 USB 插座 ( USB female sockets ) ,以供多個 USB 設備端的硬體透過 USB 線路插頭 ( USB plugs ) 同時雙向連接傳輸。

所以,像是您的個人電腦之中,有可能內建了兩個以上的 USB 插座,以供您連接印表機、滑鼠、簡報筆、隨身碟或者網路攝影機等多種 USB 週邊設備。

在此狀況之下,您的個人電腦多半是處於 USB 主機端 ( USB Host ) ,而印表機、滑鼠、簡報筆、隨身碟或者網路攝影機則處於 USB 設備端 ( USB Device ) 。

更深入地說,處於 USB 主機端 ( USB Host ) 的硬體主控了整個 USB 資料傳輸的過程,以及提供 USB 資料傳輸時的電力供給。

而,那些處於 USB 設備端 ( USB Device ) 的硬體則非 USB 資訊傳輸過程的主控者,它們只能遵從 USB 主機端 ( USB Host ) 硬體的發號司令,並且進行雙向資料傳輸以發揮各自所肩負的特定功能 ( Functions ) 。

所以,當您的個人電腦沒有要求 USB 印表機進行列印的動作時,則 USB 印表機在正常情況之下,它是無法主動去啟動個人電腦的列印工作。

那麼, Android 呢?

當然,眾多的《 Android 裝置》也都已內建 USB 或者 micro-USB (尺寸較小的 USB 插座與插頭標準) 的外接式傳輸介面。

像是 Acer ICONIA Tab A500 平板電腦便在機身上內建一個 USB 2.0 外接式傳輸介面插座。(影片來源: Acer 的 Youtube 影音頻道)





又像是 ASUS Eee Pad Transformer 平板電腦則是在它的專屬基座之中配備兩個的 USB 2.0 外接式傳輸介面插座。(影片來源: ASUSTeK Computer 的 Youtube 影音頻道)





不過,在各類 《 Android 裝置》之中,除了那些搭載著 Android 3.0 平板電腦作業系統的平板電腦外,大多數的 Android 智慧型手機所提供的 USB 外接式傳輸介面,通常只被用來做為 Android 智慧型手機與個人電腦之間同步資料傳輸之用,而非做為擴充週邊設備用途。

亦即,此時的《 Android 裝置》多處於 USB 設備端 ( USB Device ),而非 USB 主機端 ( USB Host ) 。

所以,在 Android 2.3.4 智慧型手機作業系統之前的 Android 智慧型手機,它們並不容易擴充 USB 週邊設備。

另一方面,縱然那些搭載著 Android 3.0 平板電腦作業系統的平板電腦,它們比起 Android 智慧型手機來說,多了可以成為 USB 主機端 ( USB Host ) 硬體的優點,亦即它們可以擴充相關的《 USB 週邊設備》。

但是,那些搭載著 Android 3.0 平板電腦作業系統的平板電腦仍無法廣泛地相容於許多現有的《 USB 週邊設備》。(註: Android 3.1 平板電腦作業系統所內建的 USB Host APIs 便是要解決此一相容性問題。 )

同時,那些搭載著 Android 3.0 平板電腦作業系統的平板電腦與現有的許多 Android 智慧型手機一樣,仍無法讓處於 USB 主機端 ( USB Host ) 的《 USB 週邊設備》主動啟動資料傳輸工作。(註:據新聞指出,目前 Acer 、 Asus 與 Motorola 等品牌的 Android 3.0 平板電腦,可能於現在或者未來升級新版的 Android 3.1 平板電腦作業系統。)

因此,如何改善 《 Android 裝置》的 USB 外接式傳輸介面之效用,成為 Android 3.1 平板電腦作業系統此次改版的重心。

Android 教學: Accessory Mode 與 Host Mode


Android 3.1 平板電腦作業系統對於 USB 外接式傳輸介面之相關程式開發的支援,可以用兩個面向去體察。


  • 其一, 設備模式 ( Accessory Mode ) :讓處於 USB 設備端 ( USB Device ) 的《 Android 裝置》硬體,可以連接那些特別做為 USB 主機端 ( USB Host ) 角色的《 USB 週邊設備》,此時《 USB 週邊設備》才能主動啟動資料傳輸工作並提供電力供給。請注意,它們兩方的資料傳輸是雙向互通的。

    此模式就像上述之例: Google I/O 2011 大會的場內人員,他們便利用搭載著 Android 3.1 平板電腦作業系統的 Motorola Xoom 平板電腦,在一個大型的實體迷宮之中操控一顆 5000 磅的滾球。

  • 其二, 主機模式 ( Host Mode ):讓處於 USB 主機端 ( USB host ) 的《 Android 裝置》,可以更廣泛地連接那些原本就做為 USB 設備端 ( USB Device )  角色的《 USB 週邊設備》,此時 《 Android 裝置》才能主動啟動資料傳輸工作並提供電力供給。請注意,它們兩方的資料傳輸仍是雙向互通的。


上述兩模式的概念圖,如下所示(此概念圖為本講義修改重繪自 Android Developers 官網):


image


由於,上述的主機模式 ( Host Mode ) 與 Android Open Accessory Development Kit ( ADK ) 的 Android Open Accessory APIs 無關,而與 Android USB Host APIs  有關。

因此,我們在凝聚討論焦點的考量之下,在本篇講義中僅會討論與 Android Open Accessory Development Kit ( ADK ) 的 Android Open Accessory APIs 有關的設備模式 ( Accessory Mode ) 的內容範疇。至於,主機模式 ( Host Mode ) 則待日後有機會再另闢講義說明。

Android 教學: Android Open Accessory Development Kit ( ADK )  的硬體初始溝通程序


講到此,您可能會問:『如何成為相容於 Android Open Accessory Development Kit ( ADK ) 的《 USB 週邊設備》?』

匯整 Android Developers 官網內容所示:『您的《 USB 週邊設備》需要遵守 Android Open Accessory Development Kit ( ADK ) 的 Android 週邊設備協定 ( Android Accessory Protocol ) 、並為上述的設備模式 ( Accessory Mode,即 USB 週邊設備可為 USB 主機端 ( USB Host ) 角色 ) 且能提供 500mA / 5V 的電力供給。』

當然,您還需要利用 Android SDK 與 ADK 去撰寫一套能夠安裝在 《 Android 裝置》並配合您的《 USB 週邊設備》之 Android 應用程式。

關於此部份的細節說明,您可以參考 Android Developers 官網上的文件資料

至於,《 USB 週邊設備》如何開始與《 Android 裝置》進行硬體的初始溝通呢?

以下,我們節錄翻譯 Android developers 官方部落格所發表一篇”A Bright Idea: Android Open Accessories”技術文章之部份內容如下:


  • USB 線路之連接確認:當《 USB 週邊設備》與 《 Android 裝置》之間的 USB 線路連接與裝置偵測無誤後,彼此才會開始進行溝通動作。

  • 識別代碼之產生:在此過程中,《 Android 裝置》會先依製造商與設備型號等資料,去產生一個屬於自己的新 VID/PID 識別代碼。

  • 設備模式 ( Accessory Mode ) 之支援確認:然後,《 USB 週邊設備》則需發送一個控制交易訊息 ( Control Transaction ) 給《 Android 裝置》,詢問它是否支援設備模式 ( Accessory Mode ) 。

  • 應用程式之相容確認:一旦《 Android 裝置》向《 USB 週邊設備》確認支援設備模式  ( Accessory Mode ) 時,《 USB 週邊設備》會透過控制交易訊息傳送一連串的字串給《 Android 裝置》。這些字串是提供《 Android 裝置》去確認它的系統中是否有相容於該《 USB 週邊設備》的應用程式。

  • 下載安裝相容應用程式:假若,它沒有找到合適的應用程式時,該訊息也會提供一個 URL 網址,以供《 Android 裝置》的用戶至網路下載安裝相容於該《 USB 週邊設備》的應用程式。(註:該 URL 網址可以是該應用程式在 Android Market 之中的下載網址)

  • 設備模式 ( Accessory Mode ) 開始運作:這個步驟完成後,《 USB 週邊設備》會再傳送一個控制交易訊息給《 Android 裝置》,以告知《 Android 裝置》可以進入設備模式 ( Accessory Mode ) 。


在此要強調的是,當《 Android 裝置》與《 USB 週邊設備》之間完成上述低階層次的硬體初始溝通後,則相容於該《 USB 週邊設備》且已安裝於《 Android 裝置》的應用程式會接手雙向資料傳輸的工作,以達成《 Android 裝置》在此 USB 連接的功能使命。

Android 教學: ADK 開發板 ( Android Open Accessory Compatible Development Boards )


當然,您在此類應用程式的研發或學習階段,可能沒有那麼龐大的人力與物力去自行生產製造《 USB 週邊設備》。

所以,ADK 也跟 ARM 嵌入式系統開發般,具備有提供研發與學習之用的 ADK 開發板 ( Android Open Accessory Compatible Development Boards ) 。

這種 ADK 開發板是專為學習者或者開發者所生產製造的電路板,學習者或開發者可以透過 ADK  開發板來嘗試自行組裝與開發所想要的軟硬體功能。

總體觀之,ADK 開發板主要是具備一張具備 USB 微控制器的電路板 ( A USB Micro-controller Board, 又稱 ADK 控制板 ) ,此電路板需遵守 Android Open Accessory Development Kit ( ADK ) 文件之中所規範之 Android 週邊設備協定 ( Android Accessory Protocol ) 。

另一方面,在此 ADK 控制板 ( ADK Board ) 之上還可以再搭配相容於 ADK 控制板 ( ADK Board ) 的 ADK 擴充板 ( ADK Shield ) ,以擴充其輸出入功能模組。

上述 ADK 控制板 ( ADK Board ) 與 ADK 擴充板 ( ADK Shield ) 兩者亦可合稱為 ADK 開發板。(註:相關的硬體開發與規範細節,您需參閱 Android Open Accessory Development Kit (ADK) 裡頭的硬體設計檔案文件。)

正常來說,ADK 控制板 ( ADK Board ) 就像是個人電腦上的主機板,而 ADK 擴充板 ( ADK Shield ) 則像是主機板上的音效卡、影像卡等電路板般,它們主要是負責擴充 ADK 控制板 ( ADK Board ) 的輸出入功能。

倘若,您先前鑽研過 Arduino 開發原始碼之電子產品雛型開發平台 ( Open Source Electronics Prototyping Platform ) ,一定對於 Android Open Accessory Development Kit ( ADK ) 感到似曾相識!

沒錯, Android Open Accessory Development Kit ( ADK ) 實際上是建構於 Arduino 開發原始碼之電子產品雛型開發平台 ( Open Source Electronics Prototyping Platform ) 。

因此,專屬於 Android Open Accessory Development Kit ( ADK ) 的電路板架構,其實是基於 Arduino Mega2560 USB 微控制器板(又稱 Arduino Mega 2560 控制板)的硬體技術架構而來。

但是,因為 Arduino Mega2560 USB 微控制器板(又稱 Arduino Mega 2560 控制板) 本身只支援 USB 設備端 ( USB Device ) 角色 ,而非 USB 主機端 ( USB Host ) 角色 。因此, Android 在硬體技術架構上又結合了可支援 USB 主機端 ( USB Host ) 角色的 Circuits@Home 之 USB 主機端擴充板 ( USB Host Shield ) 。

我們綜合 Android Developers 官網官方部落格所示,其實目前國外已有五家業者提供相容於 ADK 的開發板 ( Android Open Accessory Compatible Development Boards ) 的販售或預售。

這五套 ADK 開發板分別為:RT Corp 的 RT-ADK&RT-ADS、 MicrochipTechnology 的 PIC24F Accessory Development Starter Kit for Andriod 、 Seeedstudio 的 Seeeduino ADK Main Board 、 Modern Device 的 Freeduino USB Host Board 以及 DIY Drones 的 PhoneDrone Board for Android

如果,您經過我們上述的介紹,仍不清楚 ADK 開發板 ( Android Open Accessory Compatible Development Boards ) 為何物?

MicrochipTechnology 的 PIC24F Accessory Development Starter Kit for Andriod 有提供一則 ADK 教學板的操作教學短片,有興趣的讀者朋友可以參考看看。(影片來源: MicrochipTechnology 的 Youtube 影音頻道)





Android 教學: Android Open Accessory Development Kit ( ADK ) 的已知限制


不過,我們剛才有提到:


由於,過往大部份的 Android 智慧型手機礙於只能扮演 USB 設備端 ( USB Device ) 角色之故,導致使用者不易擴充它們的 USB 週邊設備。

因此,Android 此舉或許也是希望 USB 週邊設備反過來成為 USB 主機端 ( USB Host ) 角色,再透過 Android Open Accessory Development Kit ( ADK ) 的協助,讓 USB 週邊設備仍然可以與不具備 USB 主機端 ( USB Host ) 角色的  Android 智慧型手機互動溝通,亦即轉個彎達成 Android 智慧型手機能夠擴充 USB 週邊設備的目的。


雖然,透過 Android Open Accessory Development Kit ( ADK ) 可以達到上述之目的。然而,如何讓 USB 週邊設備既可以成為 USB 主機端 ( USB Host ) 角色,又可以不必肩負提供電力之 USB 主機端 ( USB Host ) 責任。則是未來 Android 需要努力解決之處。(資料來源: Android Developers 官方部落格)

至於,如何開發配合《開放式電子設備》的 Android 應用程式?此部份,我們待日後有機會再另闢教學講義深入說明。



喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),謝謝!



如果您對於 Android 手機與平板電腦應用程式開發有興趣,歡迎閱讀我們在網路上發表的 Android 手機與平板電腦應用程式開發教學系列講義:

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義

此篇講義的主要參考文獻來源Android Developers 官網Android Developers 官方部落格


著作權聲明



本講義之內文、排版等著作權或其他智慧財產權歸屬 孫傳雄 與 孫傳雄研究室 所有,非經書面同意禁止任何形式之翻印、全文轉貼或者授課使用行為。但例外允許在網際網路上引用此講義之網址連結。

本講義之內文所提及或者引用的公司名稱、產品名稱以及所引用的文字、商標、Youtube短片、產品相片或者網站頁面,均為其所屬公司所擁有,特以聲明。


版權所有 翻印必究



[Android 手機] 紙手機 PaperPhone

Android 研究:PaperPhone 紙手機


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


 

【孫傳雄研究室 撰文】紙手機 ( PaperPhone ) 是加拿大皇后大學 ( Queen's University ) 的人類媒體研究室 ( Human Media Lab ) 團隊所主導的一項新型態智慧型手機雛型的研究計畫。

 

雖然,紙手機 ( PaperPhone ) 有 紙張 ( Paper ) 的字眼出現。

 

但是,它其實並非真的是使用紙張做為智慧型手機硬體的素材,而是意指利用像紙張一樣薄的塑膠薄膜材料 ( Thin Film ) 搭配電子墨水 ( E-Ink ) 做為顯示螢幕介面的智慧型手機。

 

紙手機 ( PaperPhone ) 研究計畫的主持人Roel Vertegaal 博士指出:『使用紙手機 ( PaperPhone ) 得以實現無紙化辦公室的夢想。您可以將任何事物透過數位化的格式儲存於此,並且它可以像紙張一樣被堆成一疊或者被扔在辦公桌的一個角落。』(原文: the paperless office is here. everything can be stored digitally and you can place these computers on top of each other just like a stack of paper, or throw them around the desk. 資料譯自:Human Media Lab )

 

假若,我們就該研究計畫所釋出的紙手機 ( PaperPhone ) 智慧型手機雛型影片來看,它目前所使用的是 Android 智慧型手機作業系統以及3.7吋軟性電泳式 ( flexible electrophoretic ) 之顯示螢幕。

 

值得一提的是:紙手機 ( PaperPhone ) 並沒有現今 Android 智慧型手機常用的多點式觸控面板,而是改在塑膠薄膜( Thin Film )之中內置感應器 ( Sensor ) 。

 

所以,手機用戶是採取用手輕折紙手機 ( PaperPhone ) 的方式,進行功能的操作。同時,它也可以像個人電腦的觸控手寫板一樣,使用筆式操作。(註:如下面的 Youtube 影片所示,資料來源:Youtube )

 

 

紙手機 ( PaperPhone ) 的研究團隊除了加拿大皇后大學 ( Queen's University ) 的人類媒體研究室 ( Human Media Lab ) 團隊之外,同時也包括了美國亞利桑那州立大學 ( Arizona State University ) 的激勵行為環境研究團隊 ( Motivational Environments Research Group )

 

另一方面,該研究計畫已把研究成果發表於2011年5月7日至2011年5月12日在加拿大溫哥華 ( Vancouver ) 所舉行的 ACM CHI 2011 ( Conference on Human Factors in Computing Systems ) 學術研討會之中。

 

對於紙手機 ( PaperPhone ) 研究計畫有興趣的讀者朋友們,可以點選此處閱讀他們在 ACM CHI 2011 所發表的研討會學術論文內容。(資料來源: Human Media Lab )

 

此篇文章的主要參考文獻來源: 加拿大皇后大學 ( Queen's University ) 的人類媒體研究室 ( Human Media Lab ) 官方網站

 


假若,您對於 Android 手機與平板電腦應用程式開發有興趣,歡迎閱讀我們在網路上發表的 Android 手機與平板電腦應用程式開發教學系列講義。

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義


喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),謝謝!


 


著作權聲明


 

本文章之內文所提及或者引用的公司或組織名稱、產品名稱以及所引用的文字、商標、Youtube短片、產品相片或者網站頁面,均為其所屬公司或組織所擁有,特以聲明。

 



Android 手機教學影片 from Verizon Wireless

Android 手機教學影片 from Verizon Wireless


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


我們編寫的 Android SDK 教學課程講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義


以下為本篇 Android 文章的開始。


雖然,Android 智慧型手機用戶可以透過 Android Market 上網下載許多免費或付費的手機應用程式。

 

不過,應該有不少的 Android 智慧型手機用戶僅是單純地想使用 Android 智慧型手機當中所內建的一些常用軟體,來輔助日常的生活作業所需。

尤其是,對於剛購買 Android 智慧型手機又不善於操作資訊產品的新手用戶來說,光是要使用這些 Android 智慧型手機當中所內建的常用軟體,就是一個蠻棘手的問題了!

 

因此,美國的 Verizon Wireless 電信公司為了教導他們的顧客,如何使用他們剛推出不久的 HTC ThunderBolt 之 Android 智慧型手機。

 

近日,他們拍攝了一系列相當淺顯易懂的 Android 智慧型手機教學影片,並且上傳分享至 Youtube 網路影音網站之中,供大家觀賞與學習。

 

雖然,HTC ThunderBolt 之 Android 智慧型手機並未在台灣上市,然而,搭載 Android 2.2 智慧型手機作業系統以及 HTC Sense 2.0 操作介面的它,跟其它國內常見的 HTC 之 Android 智慧型手機在操作步驟上並沒有很大的差異。

 

因此,身為 Android 智慧型手機新手用戶的您,仍可以透過美國 Verizon Wireless 電信公司所提供的這一系列 Android 智慧型手機教學影片,更進一步地學習 Android 智慧型手機的操作細節。

 

以下便是美國 Verizon Wireless 電信公司在 Youtube 網路影音網站之中所分享的一系列 Android 智慧型手機教學影片。(資料來源:Youtube,此為英語版本。)

 

Android 手機教學影片:插入手機門號 SIM 卡教學

 

 

 

 

Android 手機教學影片:使用 Mobile Hotspot 教學

 

 

 

 

Android 手機教學影片:建立手機聯絡人清單教學

 

 

 

 

Android 手機教學影片:在手機上收發電子郵件信箱教學

 

 

 

 

Android 手機教學影片:使用手機版的Facebook跟好友互動教學

 

 

 

 

Android 手機教學影片:手機相片分享與特效製作教學

 

 

 

 

Android 手機教學影片:手機上網教學

 

 

 

 

Android 手機教學影片:手機版的 Google map 地圖使用教學

 

 

 

 

Android 手機教學影片:基本的手機瀏覽操作教學

 

 

 

 


假若,您對於 Android 手機與平板電腦應用程式開發有興趣,歡迎閱讀我們在網路上發表的 Android 手機與平板電腦應用程式開發教學系列講義。

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義


喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),謝謝!


 


著作權聲明


 

本文章之內文所提及或者引用的公司名稱、產品名稱以及所引用的文字、商標、Youtube短片、產品相片或者網站頁面,均為其所屬公司所擁有,特以聲明。

 



[Android 教學課程] Empty Process , Background Process , Service Process , Visible Process , Foreground Process 初探

Android 教學


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


 

【孫傳雄研究室 編著】當您閱讀完我們在台灣時間 2011年3月22日所發表的 Android 教學講義第八講上篇之後,是否對於 Android 的應用程式組件 ( Application Components ) 與意圖元件 ( Intent ) 有更進一步地暸解呢?

 

假若,您尚未閱讀過我們的 Android 教學課程講義,為求您在 Android 學習上的完整性,煩請您先閱讀完第一講至第八講上篇之後,再來閱讀第八講中篇 (1) 的講義:

 

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義

 

我們將在此篇 Android 教學講義第八講中篇 (1) 之中,介紹以下七項主題:

 

  • Android 教學:關於 Android 的應用程式組件 ( Application Components ) 的補充

  • Android 教學:處理程序 ( Process ) 與執行緒 ( Thread )

  • Android 教學:空白處理程序 ( Empty Process )

  • Android 教學:背景處理程序 ( Background Process )

  • Android 教學:Service 處理程序 ( Service process )

  • Android 教學:可視處理程序 ( Visible Process )

  • Android 教學:前景處理程序 ( Foreground process )

 

Android 教學:關於 Android 的應用程式組件 ( Application Components ) 的補充

 

當您閱讀至本篇講義前,可能先會有個疑問:『運用 Android 應用程式組件的好處在哪兒呢?』

 

我們歸納成以下兩點說明:

 

 

  • 其一,它省卻了 Android 手機應用程式開發者撰寫這些基礎程式碼的時間與精力。

 

  • 其二,它建立了 Android 手機應用程式開發的標準規範,讓開發者能夠依循此標準規範進行程式開發的編寫設計工作。

 

 

倘若您是資訊相關學域背景的讀者朋友應該知道,此觀念即為軟體工程學當中常講的組件式軟體工程 ( Component-Based Software Engineering, CBSE )。

 

更進一步地說,由於,這五大應用程式組件已被 Android 封裝成各自不同的 Java 類別 ( Class ),因此, Android 手機應用程式開發者可以在程式碼當中直接繼承它們的屬性與方法,依循 Andorid 官方的規則,進而快速地建構出他們所想要的 Android 手機應用程式之根基。

 

比如,本講義的 ” Converter 應用程式 ” 教學範例便是繼承了該五大應用程式組件當中的 Activity 應用程式組件(如下圖箭頭處所示)。

 

Android 教學 

 

在此要請您特別注意地是,這五大應用程式組件不需要同時並存。您可以依應用程式開發需求來相互搭配運用。

 

另外,我們也要強調地是,即使您在 Android 手機應用程式繼承了這五大應用程式組件,也不代表您的 Android 手機應用程式開發就此大功告成。

 

它只是一個 Android 制定好的基礎規範,您仍必需在此規範之下,鑽鑿出屬於您自己的 Android 手機應用程式。

 

說到這兒,熟悉Java程式語言的您或許會問:『這五大應用程式組件都只是功能面的區分而已,憑什麼能取代傳統 Java 應用程式碼的單一啟始點 main() 方法呢?』

 

Android 教學:處理程序 ( Process ) 與執行緒 ( Thread )

 

回答此問題,我們必需先從 Android 作業系統的處理程序 ( Process ) 談起。(註: Process 也常被翻譯成行程或者進程)

 

什麼是處理程序呢?

 

假若,您的個人電腦是使用 Microsoft Windows 系列之作業系統的話,應該都知道它有一個名為” Windows 工作管理員”的工具程式。

 

講到此,您可能會先問我們:『 Windows 工作管理員是管理什麼工作呢?跟處理程序 ( Process ) 又有何關係呢?』

 

其實,Windows 工作管理員跟處理程序大有關係!

 

由於,在 Windows 作業系統當中正在執行的應用程式即稱之為工作 ( Task ) 。因此, Windows 工作管理員的目的即在管理Windows作業系統當中所有正在執行的應用程式。

 

所以,您會在 ” Windows 工作管理員” 當中看見您各項應用程式正在執行的工作狀態。並且,您也可以在此工具程式中啟動與結束某個應用程式的執行工作。(如下圖所示)

 

Android 教學 

 

更重要地是,您還可以看到在您的 Windows 作業系統當中的處理程序。以及它們所佔用的 CPU 使用率與實體記憶體空間等資訊欄位。(如下圖所示)

 

這些處理程序所代表的意義,便是所有正在執行的應用程式(即工作)實際在電腦系統硬體之中佔用的實體單元。

 

另外,這些實體單元即為處理程序所佔用的 CPU 使用時間 ( CPU Time ) 以及主記憶體的內部儲存空間等系統資源。

 

更進一步地說,每一個 Windowos 應用程式至少包括了一個以上的處理程序。並且每一個處理程序之下通常會再細分出多個執行緒 ( Thread )

 

雖然,這些執行緒分別肩負了處理程序所指派調度的分支任務。不過,它並不像每個處理程序一樣擁有各自的系統資源,而是共同分享它們所屬處理程序之中的系統資源。

 

Android 教學 

 

相對於 Windows 作業系統的應用程式來說, Android 手機作業系統的應用程式在執行時,同樣以工作管理的概念來運行。(如下圖所示)

 

 Android 教學

 

每一個 Android 手機應用程式不只可以擁有單一個處理程序,它更可以擁有多個處理程序。

 

同時,不同的 Android 手機應用程式之間,還可以共同分享多個處理程序。

 

由於, Android 為了有更好的使用者體驗 ( User Experience ) ,所以,只要在系統資源充裕的狀況下,它可以讓手機用戶不用關閉應用程式,便能夠在不同的應用程式之間輕鬆地進行切換的動作。

 

更進一步地說,當手機用戶離開 ( Leave ) 一個應用程式切換至新的應用程式時,即使它已完全沒有進行任何的執行動作 ( Running ) ,它的處理程序仍可以保持在 Android 的系統後端默默地存在。

 

此舉讓手機用戶需要原來的應用程式時,能夠很快速地重新回復它。

 

然而,依上述所言, Android 智慧型手機的 CPU 使用時間 ( CPU Time ) 以及主記憶體的內部儲存空間是有限的。

 

所以,當系統資源不敷使用時, Android 作業系統會依照處理程序的重要性,來取決那一個處理程序可以優先從系統資源之中消滅殆盡( Kill )。

 

關於處理程序被 Android 作業系統消滅的優先順序,我們依 Android Developers 官網的說明,由低至高的順位歸納匯整如下所示(資料來源: Android Developers 官網)。

 

 

Android 教學:空白處理程序 ( Empty Process )

 

 

  • 空白處理程序 ( Empty Process ) :空白處理程序 ( Empty Process ) 意指沒有包含任何有效的應用程式組件之處理程序。


    即然它是空白的,為何還會在 Android 作業系統當中存在呢?


    因為,該處理程序主要是做為應用程式組件的快取 ( Cache ) 角色。


    更進一步地說,當應用程式組件有需求時,可以隨時取用它來執行。因此,該應用程式組件的啟動時間得以有效縮短。此即為快取之作用。


    也因為, Android 作業系統視這類做為快取角色的處理程序之重要性為最低。所以,當系統資源不敷使用時,這種空白處理程序 ( Empty Process ) 為最常被 Android 作業系統優先消滅的處理程序。

 

 

Android 教學:背景處理程序 ( Background Process )

 

 

  • 背景處理程序 ( Background Process ) :背景處理程序 ( Background Process ) 是指當下無法讓手機用戶看得見使用者介面的 Activity 應用程式組件之處理程序。


    更進一步地說,當某個 Activity 應用程式組件正在執行時,若有另一個新的 Activity 應用程式組件被啟動,並且它的使用者介面完全覆蓋了原本的那個 Activity 應用程式組件之使用者介面後。


    則 Android 作業系統會強置性呼叫 Activity 應用程式組件的 onStop() 方法,以便將該 Activity 應用程式組件之處理程序更動為停止 ( Stop ) 狀態。


    此時,該 Activity 應用程式組件之處理程序並沒有被 Android 作業系統消滅殆盡,它是處於停止的狀態。手機用戶仍可以重新啟動 ( Restart ) 這個 Activity 應用程式組件的處理程序。


    不過,由於手機畫面的焦點已完全是新的 Activity 應用程式組件之使用者介面,使用者當下無法看見原有的使用者介面,因此, Android 作業系統會視這種背景處理程序 ( Background Process ) 的重要性比較低。


    當系統資源不敷使用時,它為次常被 Android 作業系統優先消滅的處理程序。


    另外,當 Android 作業系統當中累積了許多這類背景處理程序 ( Background Process ) 時,它則會採取常用於處理快取記憶體 ( Cache ) 緩衝區的最近最少使用 ( Least Recently Used, LRU ) 演算法,將最近最少使用的背景處理程序 ( Background Process ) 優先消滅。


    Android 作業系統在此使用最近最少使用 ( Least Recently Used, LRU ) 演算法的目的,是要避免手機用戶最近時常用到的那個背景處理程序 ( Background Process ) ,不致於在這一堆背景處理程序 ( Background Process ) 之中,優先被消滅。

 

 

Android 教學:Service 處理程序 ( Service process )

 

 

  • Service 處理程序 ( Service process ) : Service 處理程序 ( Service process ) 意指正被啟動執行的 Service 應用程式組件所產生之處理程序(即 Service 的 startService() 方法已被呼叫)。


    Service 處理程序跟背景處理程序一樣都是默默地位居 Android 作業系統的後端。亦即它們本身不會有任何使用者介面 ( User Interface , UI ) 出現在手機畫面之前。手機用戶在視覺上也不會察覺它的存在。


    不過,因為 Service 處理程序 ( Service process ) 是由正被啟動執行的 Service 應用程式組件而產生,所以,它仍處於後端持續運轉的階段,並非像背景處理程序 ( Background Process ) 已是停止的狀態。


    亦因如此,它的重要性遠比背景處理程序 ( Background Process ) 還高。


    更進一步地說,雖然,這些 Service 應用程式組件並不具備使用者介面,但是,它們大多肩負了執行時間較長的應用程式功能(註:例如網路資料下載、MP3音樂背景播放等…)。


    因此,當系統資源不敷使用時,它所產生的處理程序會次於背景處理程序,成為被 Android 作業系統考量消滅的第三順位。

 


 

Android 教學:可視處理程序 ( Visible Process )

 

 

  • 可視處理程序 ( Visible Process ) :上述三種處理程序有一個共通的性質:它們皆處於 Android 作業系統的後端且當下不具備使用者介面之狀態。


    因此,手機用戶在視覺上並不會明顯感受到它們的存在。相對而言, Android 作業系統也視它們為重要性較低的處理程序。


    聰明的您,一定會舉一反三說:『依此論點推之,假若某個處理程序處於 Android 作業系統的前端且當下具備使用者介面之狀態,它的重要性應該比較高。』


    嘿,您答對了!


    不過, Android 作業系統依其重要性再向下細分成可視處理程序 ( Visible Process ) 與前景處理程序 ( Foreground Process ) 兩種處理程序。


    談此之前,我們先給大家看看本研究室的一個教學範例。(註:此教學範例目前只是用來說明可視處理程序 ( Visible Process ) 與前景處理程序 ( Foreground Process ) 兩種處理程序的不同。至於,該範例的實作教學,礙於範幅之故,我們會找機會再跟大家分享。)


    我們在此教學範例之中,設計了一個具有三個 Activity 應用程式組件的 Android 手機應用程式,它分別包括了 Activity1 、 Activity2與 Activity3 等三個 Activity 應用程式組件。


    這三個 Activity 應用程式組件皆分別各自擁有使用者介面。


    Activity1 應用程式組件則為最初啟始的應用程式組件。


    在 Activity1 應用程式組件的使用者介面當中,我們放置了開啟 Activity2 應用程式組件的按鈕 (即 Activity 2 Strat 按鈕) 與開啟 Activity3 應用程式組件的按鈕 (即 Activity3 Start 按鈕)。(如下圖所示)


    Android 教學 


    當手機用戶在 Activity1 應用程式組件的使用者介面之中,按下了開啟 Activity2 應用程式組件的按鈕時,它會直接開啟 Activity2 應用程式組件。


    請注意!此舉並沒有將 Activity1 應用程式組件消滅 ( Destroy ) ,Activity1 應用程式組件當下只是被 Activity2 應用程式組件的使用者介面完全覆蓋而已。(如下圖所示)


    Android 教學 


    另一方面,當手機用戶在 Activity1 應用程式組件的使用者介面之中,按下了開啟 Activity3 應用程式組件的按鈕時,它一樣會直接開啟 Activity3 應用程式組件。


    同樣的是,我們並沒有將 Activity1 應用程式組件消滅 ( Destroy ) 。


    不同的是,由於,我們將 Activity3 應用程式組件的使用者介面已設定成對話視窗 ( Dialog ) 的型態。所以 Activity1 應用程式組件的使用者介面並不會被 Activity3 應用程式組件的使用者介面完全覆蓋,而是部份覆蓋而已。


    雖然, Activity1 應用程式組件的使用者介面並沒有被 Activity3 應用程式組件的使用者介面完全覆蓋,但是手機用戶仍無法在畫面之中操作 Activity1 應用程式組件的使用者介面。因為,手機畫面的焦點已落在 Activity3 應用程式組件的對話視窗介面之上了。(如下圖所示)


    Android 教學 


    我們會舉這個教學範例,主要是為了解釋這些應用程式組件在以下所產生的三種處理程序狀態:


    當 Activity2 應用程式組件的使用者介面完全覆蓋於 Activity1 應用程式組件的使用者介面時, Activity2 應用程式組件所產生的處理程序為前景處理程序 ( Foreground process )


    至於, Activity1 應用程式組件所產生的處理程序則為背景處理程序 ( Background Process )


    當 Activity3 應用程式組件的使用者介面部份覆蓋於 Activity1 應用程式組件的使用者介面時, Activity3 應用程式組件所產生的處理程序仍為前景處理程序 ( Foreground process )


    至於, Activity1 應用程式組件所產生的處理程序,此時則為可視處理程序 ( Visible Process )


    在此,我們希望您暸解的是:當某個 Activity 應用程式組件的使用者介面被另一個 Activity 應用程式組件部份覆蓋時,其所產生的處理程序即為可視處理程序 ( Visible Process ) 。


    相對於使用者介面被完全覆蓋的狀態而言, Android 視這類使用者介面被部份覆蓋的處理程序,仍為極重要且需持續存在的處理程序。


    因此,在系統資源不足的狀態之下,它是低於前景處理程序 ( Foreground process )順位,亦即最後倒數第二個被 Android 作業系統消滅的對象。


    另外,當 Service 應用程式組件結合 Activity 應用程式組件時,只要該 Activity 應用程式組件的使用者介面沒有被其它的使用者介面完全覆蓋,則其所產生的處理程序亦屬於可視處理程序 ( Visible Process ) 的範疇。

 

 

Android 教學:前景處理程序 ( Foreground process )

 

 

  • 前景處理程序 ( Foreground process ) :當系統資源不足的狀態之下, Android 作業系統最後逼不得已才消滅的對象,就是前景處理程序。


    什麼是前景處理程序 ( Foreground process ) 呢?


    簡單地說就是:手機用戶正在畫面當中使用的 Activity 應用程式組件所產生之處理程序。


    因為,它的使用者介面正被手機用戶所使用,所以,它遠比其它的處理程序還重要。


    當然,假若 Service 應用程式組件所結合的那個 Activity 應用程式組件,正好也處於手機用戶正在畫面當中使用的狀態,則其所產生的處理程序亦屬於前景處理程序 ( Foreground process ) 的範疇。


    更進一步地說, Service 應用程式組件在結合 Activity 應用程式組件的狀態之下,其所產生的處理程序其實被視為 Activity 應用程式組件所產生的處理程序。所以, Android 作業系統會視上述的狀況為前景處理程序 ( Foreground process ) 的範疇


    另外,假若 BroadcastReceiver 應用程式組件正在接收系統訊息時,則其所產生的處理程序同樣也屬於前景處理程序 ( Foreground process ) 的範疇。

 

 

在此要請您特別注意的是,假如有一個重要性較低的處理程序結合於另一個重要性較高的處理程序,則 Android 作業系統會以重要性較高的處理程序之等級,看待於重要性較低的處理程序。亦即重要性較低的處理程序能夠自動升等。

 

另外,有一點還要提醒比較進階的讀者朋友們,由於, Service 處理程序 ( Service process ) 之重要性,遠高於同樣處於系統後端的背景處理程序 ( Background Process )

 

因此,如果您的 Android 手機應用程式有執行時間超過五秒之功能,則強烈建議您不要只單純地在 Activity 應用程式組件之中,為主執行緒 ( Main Thread ) 新增另一條新的執行緒去處理這個功能。

 

因為,如果該 Activity 應用程式組件所產生的處理程序不小心落入背景處理程序 ( Background Process ) 的順位,則其就易於被 Android 作業系統所消滅。

 

所以,您需要將此條新的執行緒放置到 Service 應用程式組件的方式去運作。以確保 Activity 應用程式組件所產生的處理程序不小心落入背景處理程序 ( Background Process ) 的順位而被 Android 作業系統所消滅時,該工作仍會一直在Service 處理程序 ( Service process ) 之中運行。(註:上述這段屬進階內容,入門學習者可以先略過不看。)

 

此文未完,待續。

 


喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),謝謝!


 

如果您對於 Android 手機與平板電腦應用程式開發有興趣,歡迎閱讀我們在網路上發表的 Android 手機與平板電腦應用程式開發教學系列講義:

 

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義

 

此篇講義的主要參考文獻來源Android Developers 官網

 


著作權聲明


 

本講義之內文、排版等著作權或其他智慧財產權歸屬 孫傳雄 與 孫傳雄研究室 所有,非經書面同意禁止任何形式之翻印、全文轉貼或者授課使用行為。但例外允許在網際網路上引用此講義之網址連結。

 

本講義之內文所提及或者引用的公司名稱、產品名稱以及所引用的文字、商標、Youtube短片、產品相片或者網站頁面,均為其所屬公司所擁有,特以聲明。

 


版權所有 翻印必究


[Android 軟體] Autodesk AutoCAD WS

Android 免費軟體


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


 

【孫傳雄研究室 撰文】Android 版的 AutoCAD WS 工程繪圖軟體於美國時間2011年4月20日開放免費下載。

 

Android 版的 AutoCAD WS 工程繪圖軟體是由 Autodesk 公司所推出的官方版本。 目前共支援九種語言,分別為英文、中文、法文、德文、義大利文、日文、韓文、葡萄牙文、西班牙文。

 

另外,Android 版的 AutoCAD WS 工程繪圖軟體僅相容於 Android 2.1 (含) 以上的智慧型手機或平板電腦作業系統。

 

縱然,Android 版的 AutoCAD WS 工程繪圖軟體所提供之功能,並不可能像 PC 版的 AutoCAD 那麼地完整,但是對於常跑建築工地的讀者朋友來說,絕對是一大福音。

 

因為,當您的 Android 智慧型手機或者平板電腦免費下載安裝 Android 版的 AutoCAD WS 工程繪圖軟體之後。

 

您可以隨時隨地透過您的 Android 智慧型手機或者平板電腦,簡易地查看、編輯、即時協同合作或者網路分享您的 DWG 與 DXF 檔案文件。

 

關於 Android 版的 AutoCAD WS 工程繪圖軟體的詳細規格,您可以直接點閱 AutoCAD WS 官網的介紹網頁。(註:以下為 AutoCAD WS 官網之功能介紹畫面擷圖)

 

Android Apps 

 

雖然 Android 版的 AutoCAD WS 工程繪圖軟體提供了頗多的功能,但 Android 版的 AutoCAD WS 工程繪圖軟體光是可以直接在 Android 智慧型手機或者平板電腦上查看 DWG 與 DXF 檔案文件,應該對於 AutoCAD 的使用者就很迷人了吧!

 

當然,Android 版的 AutoCAD WS 工程繪圖軟體官方也在 Youtube 當中提供了一則關於 AutoCAD WS 的介紹短片,有興趣的朋友也可以看看。(資料來源:Youtube )

如果,您的 Android 智慧型手機或平板電腦想要免費下載安裝 Android 版的 AutoCAD WS 工程繪圖軟體,您可以直接上 Android Market 上免費下載安裝。

 


 

假若,您對於 Android 手機與平板電腦應用程式開發有興趣,歡迎閱讀我們在網路上發表的 Android 手機與平板電腦應用程式開發教學系列講義。

 

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義

 


喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),謝謝!


 


著作權聲明


 

本講義之內文所提及或者引用的公司名稱、產品名稱以及所引用的文字、商標、Youtube短片、產品相片或者網站頁面,均為其所屬公司所擁有,特以聲明。

 


[Android 教學課程] Activity , Fragment , Service , Broadcast receiver , Content provider 與 Intent 初探

Android 教學


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


在您閱讀過先前我們所寫的 Android 教學課程講義之後,對於 Android 手機應用程式的概念與實作,應有初步地暸解了吧?

 

假若,您尚未閱讀過我們的 Android 教學課程講義,為求您在 Android 學習上的完整性,煩請您先閱讀完第一講至第七講之後,再來閱讀第八講的講義:

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義

 

然而,當您閱讀完這些講義之後,身為 Android 應用程式開發初學者的您,可能不禁要問:『在開發實務方面, Android 手機應用程式與個人電腦的 Java 應用程式之間究竟有何不同呢?』

 

Android 教學 : Android 手機應用程式的重要特性

 

除了介面上的差異外,本講義以下歸納出最主要的六項差異:

 

 

  • Android 手機應用程式有電池續航力的限制。因此,它的應用程式不可過於耗電,亦即存取系統資源的次數不能太頻繁。

 

  • Android 智慧型手機硬體的主記憶體( RAM )容量、中央處理器( CPU )時脈多半比個人電腦來的小。因此,它的應用程式不能太佔系統資源。

 

  • Android 手機應用程式在執行時,常會面臨突然有來電( Incoming Call ),而它必須停止執行的狀況。

 

  • Android 手機應用程式在系統資源不足時,有時需要停止並且禮讓給比較重要的程式運行。

 

  • 當使用者從一個已開啟的 Android 手機應用程式切換到新開啟的 Android 手機應用程式之時間需低於一秒鐘。

 

  • 當 Android 智慧型手機用戶在應用程式的使用者界面當中輸入資料並執行後,應用程式必需在五秒鐘之內有所回應。否則會發生系統完全沒有回應的狀況( Application Not Responding, ANR )。

 

 

亦因如此,雖然 Android 手機應用程式相較於個人電腦上的 Java 應用程式來說,它可能有開發規模較小、開發成本較低廉並且適合微型開發團隊進行開發等優點。

 

但是,畢竟智慧型手機不是個人電腦

 

它並沒有太多寬裕且優渥的系統資源提供給 Android 手機應用程式使用。

 

所以, Android 智慧型手機作業系統在應用程式的資源控管、運用與共享之上,相對於其它運行於個人電腦的應用程式來說,需要更加地嚴謹與仔細。

 

在此, Android 發展出一套獨有的應用程式組件( Application Components )與意圖元件 ( Intent )的程式框架。

 

本講義認為,應用程式組件( Application Components )與意圖元件 ( Intent )是 Android 手機應用程式開發者在學習 Android 手機應用程式開發的過程當中,最需要優先深入與徹底理解的核心開發要點。

 

不過,我們礙於應用程式組件( Application Components )與意圖元件 ( Intent )所要介紹的內容繁多,因此,會將第八講講義區分成上篇、中篇與下篇,本講義為第八講之上篇。

 

另外,關於應用程式組件( Application Components )當中的 Activity , Fragment ( Android 3.0 API 獨有) , Service , Broadcast receiver , Content provider 的深入細節與實作教學,我們則會在第八講之後,再找機會陸續向讀者朋友深入說明。

 

Android 教學 : 什麼是 Application Components 與 Intent ?

 

【孫傳雄研究室 編著 / 台灣時間 2011年3月22日】如果,您過去曾經是位 Java EEJava SE 的應用程式開發人員,當您轉換跑道至 Android 撰寫 Java 程式碼時,您必然會發現到過去所熟悉的 Java 應用程式碼之啟動點 main() 方法不見了!

 

取而代之的就是本講義第八講這次的主題: 應用程式組件( Application Components )與意圖元件 ( Intent )之觀念。

 

雖然,人們要深入理解應用程式組件( Application Components )與意圖元件( Intent )的細節或許需要花一番的功夫。

 

不過,我們發現它們與 HTML 網頁設計的概念實然有著相互輝映之處。

 

因此,您或許可以從 HTML 網頁設計的概念之中,初步地理解應用程式組件( Application Components )與意圖元件( Intent )的用途與內涵。

 

這怎麼說呢?

 

如果您曾經學習過網頁設計,

 

那麼,請您回想一下,您的第一個網站是怎麼建構出來的呢?

 

您是不是先新增一個網頁做為首頁,而且通常還會在這個首頁之下,建立數個以上的子網頁。

 

當這些子網頁的內容都寫好後,您必然會透過超鏈結( HyperLink )的方式,將彼此以及首頁相互連結整合成一個網站。


就網路使用者的體驗來說,雖然一個網站是由眾多網頁所連結而成,但,因為有超鏈結之故,因此,它仍可以保有相當好的瀏覽流暢度。
 

更重要的是,對於網路使用者來說,當他進入某個擁有許多網頁的網站時,並不需要把網站中的所有網頁全部下載到電腦之中顯示。

 

而是,先下載顯示該網站的首頁。

 

之後,當他需要觀看某個網頁時,再點選該網頁的超鏈結,該網頁才會被下載顯示。

 

由於,早期的網路頻寬有限,因此,透過這種不需完整下載全部網頁檔案的超鏈結方式,可有效地節省頻寬下載資源。

 

對於, Android 手機應用程式而言,雖然它在執行階段蠻多時候並不需要網路連線,但它跟早期的網頁開發一樣具有資源有限的宿命。

 

因此,如果您曾深入探究 Android 手機應用程式的架構時,您必然會發現它有許多跟網頁設計雷同的作法:

 

 

  • Android 手機應用程式:它如同網站般,藉由眾多的應用程式組件( Application Components )所組合而成。

 

  • 應用程式組件( Application Components ):它如同網站中的網頁般,多半為彼此獨立、不相互依賴的個體。而且,它們都各自擁有特定的工作任務。

 

  • 意圖元件( Intent ):它則如同網頁中的超鏈結般,肩負不同應用程式組件間的連結啟動與傳遞訊息之任務。然而,意圖元件( Intent )在語法運用上跟超鏈結有很大的不同,這部份我們將在後續的講義之中進行詳述與實作教學。

 

 

由於, Android 採取應用程式組件( Application Components )與意圖元件( Intent )的架構,所以,每一個應用程式組件( Application Components )可以依實際的開發需求與使用權限而成為某個應用程式的啟始點,自然就不需要傳統 Java 應用程式所使用的單一啟始點 main() 方法了。

 

同時,由於智慧型手機的系統資源有限,因此,在節省系統資源的前提之下,當手機用戶每一次開啟 Android 手機應用程式時,它只會載入當下該應用程式所執行到的那個應用程式組件,而無需同一時間將應用程式當中的全部應用程式組件一併載入系統當中。(註:關於應用程式與系統執行的關係,我們將會另文專寫 Android 應用程式的處理程序( Process )與執行緒( Thread )教學講義)

 

亦因為 Android 是採取此種方式運行,所以, Android 針對於不同的應用程式組件特性,發展出各自不同的應用程式組件生命週期階段( LifeCycle ),藉以控制每一個應用程式組件的啟始一直到結束。(註:關於應用程式組件的生命週期,我們將會另文專寫 Android 應用程式組件的生命週期。)

 

另一方面,雖然我們以網站的概念做為 Android 手機應用程式的比擬。但是, Android 手機應用程式仍有許多與網站不同之處。因此, Android 再依實際的功能需求,將應用程式組件再區分為 Activity 、 Fragment ( Android 3.0 API 獨有)、 Service 、 Broadcast receiver 、 Content provider 等五大應用程式組件。

 

因為,本講義為求讀者不會誤解這五大應用程式組件的原始意涵,因此,我們保留其原文名稱而不進行中文名稱之翻譯。

 

它們的各自作用則如下所述:

 

 

Android 教學 : 什麼是 Activity ?

 

 

Activity :它負責前端使用者介面處理。

 

如果您曾詳閱過本講義第七講上篇與第七講下篇的話,應該會很清楚地暸解到 Activity 應用程式組件的作用在於處理 Android 手機應用程式當中的使用者介面顯示與人機互動之工作。

 

倘若,您對上述的講法還是很難理解。其實,您也可以把 Activity 應用程式組件所扮演的角色,想像成網站當中具有文字、圖形、動畫、影音或者表單輸入的網頁畫面。網站使用者必需要透過這些網頁畫面才可以進一步地操作它的功能。

 

然而, Activity 應用程式組件與網頁在開發上主要的不同點,除了它的畫面是顯示在手機螢幕之外,更重要地是它使用 XML 與 Java 程式碼,而非 HTML 等網頁相關的程式碼。

 

另一方面,就介面設計的角度論之,無論是網頁畫面或者 Android 手機畫面,反正只要是可以顯示在螢幕上頭提供使用者操作的畫面,我們便可稱之為使用者介面( User Interface, UI ),而讓使用者可以操作功能的行為則稱為使用者互動或人機互動( Human Computer Interaction , HCI )。

 

因為,這兩個要素正好就是 Activity 應用程式組件在 Android 手機應用程式開發當中所肩負的主要範疇。因此,如果您負責的是 Android 手機應用程式的介面設計工作,則您應該要對於 Activity 應用程式組件之內涵要有相當透徹的理解。

 

以下為本講義先前運用 Activity 應用程式組件所構成的 Converter 應用程式教學範例擷圖。

 


Android 教學 

 

 

Android 教學 : 什麼是 Fragment ?

 

 

Fragment :它在一個具分割畫面( Multi-Pane )的 Activity 應用程式組件之中,負責分割畫面的部份區段或部份行為。

 

自從 Android 3.0 平板電腦作業系統在美國時間 2011年2月22日的正式問世之後, Android 應用程式組件便多了一個重要的新成員。那就是 Fragment 應用程式組件 。

 

Android 3.0 API 會新增此應用程式組件之原因,緣起於 Android 平板電腦的螢幕尺寸普遍大於 Android 智慧型手機的螢幕尺寸,因此,它經常需要使用到分割畫面,藉以在螢幕當中顯示更多的資訊。

 

然而,傳統的 Activity 應用程式組件對於分割畫面的處理並不是那麼便利。所以, Fragment 應用程式組件便孕育而生。

 

它主要是在一個具分割畫面的 Activity 應用程式組件之中,負責分割畫面的部份區段或部份行為。

 

您可以視它為 Activity 應用程式組件之下的模組單元。

 

Fragment 應用程式組件擁有屬於自己的生命週期,它更可以接收屬於自己的輸入事件。甚至開發者還可以單獨在執行中的 Activity 裡頭,加入或刪除某個 Fragment 。

 

不過, Fragment 應用程式組件仍必須依附於某個 Activity 應用程式組件當中,並不能獨立存在。而且, Fragment 應用程式組件的生命週期還是會直接受到它所依附的 Activity 應用程式組件之影響。

 

像是, USA TODAY for Tablet 平板電腦應用程式便是運用 Fragment 應用程式組件的方式,將新聞標題與新聞內容分割顯示。(如下圖所示,以下畫面擷取自 Android Market 網站)

 

(註:以上僅為初步介紹,日後我們將會另文專寫 Fragment 的教學講義)

 

Android 教學 

 

Android 教學 : 什麼是 Service ?

 

 

Service :它負責後端程式運算。

 

由於, Android 智慧型手機作業系統限制手機應用程式必需在五秒鐘之內有所回應。因此, Android 手機應用程式開發者通常會將運算時間有可能超過五秒鐘且不具備使用者介面的程式片段,從 Activity 應用程式組件分割給 Service 應用程式組件負責,以避免系統完全沒有回應的狀況發生( Application Not Responding, ANR ),例如網路檔案的下載或者 MP3 音樂的背景播放等…。

 

假使,我們說 Activity 應用程式組件像是在劇場當中粉墨登場的演員,那麼 Service 應用程式組件必然是那些在布幕背後默默辛勤工作的場務人員。

 

雖然,您可能永遠看不到它們的存在,但它們卻在 Android 手機應用程式當中扮演了舉足輕重的角色。

 

因此,假如您希望您所開發的 Android 手機應用程式可以帶給手機用戶更好的使用者體驗,則您必需要對於 Service 應用程式組件的作用有更深刻地理解與應用。

 

(註:以上僅為初步介紹,日後我們將會另文專寫 Service 的教學講義)

 

 

Android 教學 : 什麼是 Content provider ?

 

 

Content provider :它負責應用程式之間資料共享的任務。

 

當您看到這個應用程式組件的英文名稱,可能直覺會想到它與資料庫相關。

 

的確,它在某部份與 Android 智慧型手機內建的 SQLite 資料庫有相關。

 

但,也不全然是…。

 

這怎麼說呢?打個比方好了!

 

其實,您可以把 Content provider 應用程式組件想像成臺北市政府的「1999臺北市民當家熱線」。

 

假若您是臺北市民,當您家有大型廢棄家具要委由市府清潔隊丟棄時,並不需要直接打電話給清潔隊人員。

 

而是,您只要撥打「1999臺北市民當家熱線」,該熱線的人員便可以幫您聯繫清潔隊人員,並且開始為此事進行相關的處理程序。

 

Content provider 應用程式組件在概念層次與「1999臺北市民當家熱線」十分雷同。

 

Content provider 應用程式組件本身並非是直接存取 SQLite 資料庫的方法。而是做為 Android 手機應用程式間的資料共享之統一窗口。

 

它就像「1999臺北市民當家熱線」並非是清潔隊,但他們卻可以提供一套所有臺北市市民都可以共享的便民服務,透過這項服務來幫您聯繫與協調市府相關部門的人員。

 

更簡而言之, Content provider 應用程式組件只是一個資料共享的統一窗口,它並非直接的資料來源。

 

所以,通常來說,您必需在建立完應用程式的 SQLite 資料庫後,才可以建立屬於自己的 Content provider 應用程式組件。

 

另外,在建立 Content provider 應用程式組件之後,它會附帶一個公開的統一資源識別位址 ( Universal Resource Identifier , URI )。

 

對於 Android 手機應用程式來說,當它要共享資料時,無需知道對方的資料來源是何種型態?它僅需得知對方資料來源的 URI ,並在該資料來源有開放權限的情況下,即可透過 Content provider 應用程式組件的相關方法進行資料管理的增刪改查之動作。

 

在此要提醒您的是: Content provider 應用程式組件可應用之範疇並非僅限於 SQLite 資料庫。亦包括了檔案系統、網際網路上的資料來源、或者您的 Android 手機應用程式原本就可以存取的持久性儲存位置。

 

像是 Android 作業系統本身所提供的聯絡人應用程式,便具有 Content provider 應用程式組件的 URI ,因此,在存取權限足夠的前題之下,您的應用程式也可以存取手機之中的聯絡人相關資料。( Android 智慧型手機作業系統的聯絡人應用程式之實際擷圖,如下圖所示。)

 

另一方面,如果 Android 手機應用程式當中的資料來源不需要與其它 Android 手機應用程式共享時,那麼您可以直接使用該資料來源之相關存取方法,而不要使用 Content provider 應用程式組件

 

(註:以上僅為初步介紹,日後我們將會另文專寫 Content provider 的教學講義)

 

2011-03-18 15 18 03 

 

 

Android 教學 : 什麼是 Broadcast receivers

 

 

Broadcast receivers :此應用程式組件的中文譯名,多半會翻成廣播接收者或者廣播接收器。

 

嘿!不過,它可不是讓您在 Android 智慧型手機聽電台廣播之用哦…^_^

 

其實, Broadcast receivers 應用程式組件最主要的用途在於:捕捉智慧型手機當中系統所發出來的重要事件訊息。

 

比如,手機快沒電了、您有一封新簡訊、或者某個電話號碼撥打進來所產生的系統訊息…。

 

說到此,您或許會有個疑問:『取得這些系統訊息,能做什麼呢?』

 

舉例言之。

 

例如,您想設計一個 Android 手機應用程式是:當手機用戶遺失手機後,他只需要寄發一則重要簡訊給那隻遺失的手機,便可以馬上把您的手機上鎖,以避免小偷任意竊取裡頭的一些重要相片或資料。

 

此時,您就可以在該應用程式之中,使用 Broadcast receivers 應用程式組件來協助應用程式捕捉那則重要簡訊的系統訊息,並且進行手機上鎖的動作。

 

在此要特別強調地是, Broadcast receivers 應用程式組件跟 Service 應用程式組件一樣並不具備使用者介面,您可以視情況再配合狀態列( Status Bar )等方式來呈現它所接收到的訊息。

 

另外, Broadcast receivers 應用程式組件通常會再結合 Service 應用程式組件在程式後端執行相關的關鍵動作。

 

同時, Broadcast receivers 應用程式組件也可以透過意圖元件( Intent )來傳送應用程式本身的系統訊息。

 

(註:以上僅為初步介紹,日後我們將會另文專寫 Broadcast receivers 的教學講義)

 

第八講上篇完畢!歡迎繼續閱讀第八講中篇之一”Android 手機程式開發教學課程《免費講義 8-2-1》: Android 的 Empty Process , Background Process , Service Process , Visible Process , Foreground Process 概論課程講義 ”。

 


喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),謝謝!


如果您對於 Android 手機與平板電腦應用程式開發有興趣,歡迎閱讀我們在網路上發表的 Android 手機與平板電腦應用程式開發教學系列講義。

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義

此篇講義的主要參考文獻來源Android Developers 官網

 


著作權聲明


 

本講義之內文、排版等著作權或其他智慧財產權歸屬 孫傳雄 與 孫傳雄研究室 所有,非經書面同意禁止任何形式之翻印、全文轉貼或者授課使用行為。但例外允許在網際網路上引用此講義之網址連結。

 

本講義之內文所提及或者引用的公司名稱、產品名稱以及所引用的文字、商標、Youtube短片、產品相片或者網站頁面,均為其所屬公司所擁有,特以聲明。

 


版權所有 翻印必究


[Android 教學課程] Android Compatibility Package 相容性開發套件下載安裝

Android Compatibility package 相容性開發套件


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義


以下為本篇 Android 教學講義的開始。


我們認為 Android 3.0 平板電腦作業系統在美國時間 2011 年2月22日的正式推出,對於 Android 手機應用程式開發者所象徵的意涵是:

 

過往大家所開發過的 Android 手機應用程式,除了可以在 Android 智慧型手機作業系統之上運行外,也因為 Android 3.0 平板電腦作業系統的向下相容之故,致使這些 Android 手機應用程式亦能跨足到 Android 平板電腦作業系統的新領域之中。

 

然而,Android 官方認為這還不夠!

 

假若,專為 Android 3.0 平板電腦作業系統所開發的應用程式,能夠相容於其它 Android 智慧型手機作業系統之中,那麼 Android 應用程式開發市場的廣大疆域才可以真正地被開啟。

 

但是,問題來了!

 

Android 3.0 SDK 有很多專為平板電腦使用者介面所發展出來的 API ,這些新的 API 並沒有被定義在目前的 Android 智慧型手機作業系統之中。

 

除非,每一位 Android 智慧型手機的用戶都有辦法下載更新 Android 3.0 SDK 裡頭的 API 使用,要不然,這些 Android 平板電腦應用程式到了 Android 智慧型手機之上,就只能望機心嘆了!

 

但是,全面性地更新 Android 智慧型手機作業系統版本,談何容易!

 

這個困境肇因於 Android 的開放性。

 

因為,目前全球市售的 Android 智慧型手機從 Android 1.6 、 Android 2.1 、 Android 2.2 、甚至 Android 2.3 ,什麼版本的 Android 智慧型手機都有。

 

再加上,不同的 Android 智慧型手機硬體業者為了要建立自身的產品差異性之故,似乎常會自行變更其中的系統程式內容。導致 Android 平板電腦應用程式要與 Android 智慧型手機作業系統相容的目標,在短期之內非常難以達成。

 

那怎麼辦呢?

 

Android 官方想出了一個好辦法!

 


什麼是 Android Compatibility package


 

他們在2011年3月3日推出了一個名為 Android Compatibility packageAndroid 相容性套件。

 

Android 手機應用程式開發者可以透過 Android SDK and AVD Manager 工具軟體來下載安裝 Android Compatibility package

 

至於, Android Compatibility package 有何用途呢?

 

它最主要的作用是, Android Compatibility package 裡頭有一個 android-support-v4.jar 的檔案。(註: .jar 檔案格式全名為 Java Archive ,為 Java 程式開發者利用 JDK 所提供的 JAR 檔案壓縮工具( jar.exe ),將多個 Java 類別檔案( .class )壓縮後的檔案格式。)

 

這個檔案壓縮了 Android 3.0 的一些 API 類別檔案。

 

其中,它主要包括了 Fragments 、 LoaderManager 以及其它 Android 3.0 相關的 API 類別檔案。(註: android-support-v4.jar 檔案的詳細 API 類別檔案清單,如下圖所示)

 

Android 3.0 教學 

 

 Android 手機應用程式開發者可放置 android-support-v4.jar 檔案到各自所開發的 Android 手機應用程式當中,成為它的靜態函式庫(static library)。

 

此靜態函式庫可以與 Android 手機應用程式原始碼一併壓縮包裏成為單一的 Android 封裝檔(副檔名為 .apk,Android application package),以供人下載安裝。

 

Android 智慧型手機執行到該應用程式中的一些 Android 3.0 API 之程式碼時,它可以直接從此靜態函式庫之中取用 Android 3.0 相關的 API 類別檔案,以便執行原本在 Android 3.0 才有的一些程式碼。

 

所以,我們認為 Android Compatibility package 的出現,的確為 Android 應用程式疆土的一統,露出了一絲的曙光。

 

然而,它有一個很重要的限制,亦即 Android Compatibility package 目前只支援 Android 1.6 (含) 以上的 Android 智慧型手機作業系統版本。更早以前的版本則無法使用該套件所提供的靜態函式庫。

 

講到這兒,您一定迫不急待想要下載安裝 Android Compatibility package 了吧?

 

由於,這個消息比較新、加上 Android Developers 官網並沒有提供 Android Compatibility package 下載安裝的步驟說明。因此,我們目前在網路上幾乎找不到完整的 Android Compatibility package 下載安裝之參考資料。

 

基於此理由,我們希望藉由此篇 Android 3.0 教學講義,來協助台灣、中國大陸與港澳地區有需要這個 Android 相容性套件的讀者朋友,盡快進行 Android Compatibility package 的下載安裝動作。

 

我們在此要特別強調地是,本篇 Android 3.0 教學講義只會講述 Android Compatibility package 的下載安裝步驟。

 

至於,該如何撰寫使用 Fragments 、 LoaderManager 或者其它 Android 3.0 相關的 API 之完整程式碼呢?

 

我們礙於篇幅之故,因此,會在日後的教學講義當中再陸續發表。

 

在您進行本篇 Android 教學講義之操作步驟前,我們建議您先閱讀本研究室所撰寫的 Android 教學講義懶人包,以便對 Android 應用程式開發有較進一步的暸解。

 

我們的 Android 教學講義,目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學

 


Android Compatibility package 的下載與安裝


 

【孫傳雄研究室 編著】以下,我們便開始透過圖文說明的方式,教大家如何下載安裝 Android Compatibility package

 

首先,請您開啟 Eclipse IDE 。

 

並且,請您在 Eclipse IDE 點選 Windows 下拉式功能表之中的 Android SDK and AVD Manager 選項。以便開啟 Android SDK and AVD Manager 工具程式。(如下圖紅框處所示)

 

Android 3.0 教學 

 

當出現 Android SDK and AVD Manager 對話視窗時,請您點選該視窗左側的 Available packages 頁籤。(如下圖紅框處所示)

 

Android 3.0 教學 

 

Available packages 偵測可下載套件中…。(如下圖所示)

 

Android 3.0 教學 

 

當 Android SDK and AVD Manager 對話視窗的右側出現 Available packages 子視窗後。

 

請您在 Packages available for download 勾選欄位之中,點選 Android Repository 選項前面的 > 圖示。(如下圖箭頭1處所示)

 

此時會出現 Android Repository 選項之子選項 Android Compatibility package, revision 1 時,請您直接勾選此子選項。(如下圖箭頭2處所示)

 

最後,請您按下 Install Selected 按鈕。(如下圖箭頭3處所示)

 

Android 3.0 教學 

 

在您看到 Choose Packages to Install 對話視窗時,請您在該對話視窗中點選 Accept 選項,並按下 Install 按鈕。(如下圖箭頭1與箭頭2處所示)

 

Android 3.0 教學 

 

Android Compatibility package 正在下載中…^_^ (如下圖所示)

 

Android 3.0 教學 

 

Android Compatibility package 正在安裝中…^_______________^ (如下圖所示)

 

Android 3.0 教學 

 

耶!Android Compatibility package 下載安裝完成了!

 

請您按下 Installing Archives 對話視窗中的 Close 按鈕。(如下圖紅框處所示)

 

Android 3.0 教學 

 

當您回到 Android SDK and AVD Manager 對話視窗時,可以按下該視窗左側的 Installed packages 頁籤,以便檢視 Android Compatibility package 是否已下載安裝成功?。(如下圖箭頭1處所示)

 

在您按下 Installed packages 頁籤之後,它會在 Android SDK and AVD Manager 對話視窗右側列示目前您已安裝的各項 Android SDK 相關套件列表。

 

此時,您應該會在此列表之中看到 Android Compatibility package, revision 1 項目,若有則代表您已成功下載安裝 Android Compatibility package 。(如下圖箭頭2處所示)

 

當您確定成功下載安裝 Android Compatibility package 後,請按下 Android SDK and AVD Manager 對話視窗右上角的 X 按鈕,以便關閉該對話視窗。(如下圖箭頭3處所示)

 

Android 3.0 教學 

android-support-v4.jar 置入 Android 手機應用程式開發專案


 

隨後,您還需要將 Android Compatibility package 當中的 android-support-v4.jar 檔案,放置到您那個會使用 Android 3.0 SDK 相關的 API 之 Android 手機應用程式開發專案之中。

 

不過,在您放置 android-support-v4.jar 檔案之前,還需要在該 Android 應用程式開發專案中,新增一個能夠放置這個 android-support-v4.jar 檔案的子資料夾 libs。

 

因此,請您至 Project Explorer 子視窗中,點選該 Android 應用程式開發專案名稱。(如下圖箭頭1處所示)

 

並且,請您在此專案名稱按下滑鼠右鍵。當出現彈出式功能表時,請您點選 New 選項當中的 Folder 子選項。(如下圖箭頭2與箭頭3處所示)

 

Android 3.0 教學 

 

當出現 New Folder 對話視窗後,請您在該對話視窗的 Folder name 文字輸入欄位之中,輸入 libs 文字。(如下圖箭頭1處所示)

 

隨後,請按下 Finish 按鈕。(如下圖箭頭2處所示)

 

Android 3.0 教學 

 

此時,您會在該 Android 應用程式開發專案名稱之下,看到多了一個名為 libs 的子資料夾。

 

請您點選此 libs 子資料夾名稱。(如下圖箭頭1處所示)

 

並且,請您在此子資料夾名稱按下滑鼠右鍵。

 

當出現彈出式功能表時,請您點選 Import 選項。以便匯入 android-support-v4.jar 檔案至 libs 子資料夾之中。(如下圖箭頭2處所示)

 

Android 3.0 教學 

 

在您看到 Import 對話視窗時,請您在該視窗的功能欄位內,點選 General 選項中的 File System 子選項。(如下圖箭頭1處所示)

 

並且,請您按下 Next > 按鈕。(如下圖箭頭2處所示)

 

Android 3.0 教學 

 

之後,您會看到讓您選擇要匯入哪一個檔案的 Import 對話視窗。

 

請您按下該對話視窗中的 Browse… 按鈕。(如下圖箭頭1處所示)

 

Android 3.0 教學 

 

當出現 Import from directory 對話視窗時,請您點選 android-support-v4.jar 檔案所在的實體檔案路徑。

 

通常來說,如果您使用 Android SDK 的預設安裝路徑的話, android-support-v4.jar 檔案應該會被安裝在 C:\Program Files\Android\android-sdk-windows\extras\android\compatibility\v4 當中。

 

若您也是使用此預設安裝路徑,請在此對話視窗中依該路徑點選至 v4 子資料夾。(如下圖箭頭1處所示)

 

並且,請您按下 確定 按鈕。(如下圖箭頭2處所示)

 

Android 3.0 教學 

 

當回到 Import 對話視窗後,請您開啟該對話視窗左側的v4子資料夾。並且在該對話視窗的右側勾選v4子資料夾中的 android-support-v4.jar 檔案名稱。(如下圖箭頭1處所示)

 

在此要請您注意的是:由於,我們只需要 android-support-v4.jar 檔案,因此,請您不要勾選該對話視窗左側的 v4 子資料夾名稱。

 

最後,請您按下 Finish 按鈕。(如下圖箭頭2處所示)

 

Android 3.0 教學 

 


android-support-v4.jar 的建置路徑設定


 

此時,您會在 libs 子資料夾之下看到 android-support-v4.jar 檔案已成功匯入。

 

不過,除了將 android-support-v4.jar 檔案匯入 libs 子資料夾之外,您還必需要設定 android-support-v4.jar 檔案的建置路徑( Build Path )。

 

如此作法才能讓 Android 手機應用程式開發專案在被編譯器編譯時,正確納入 android-support-v4.jar 所提供的 Android 3.0 相關的 API 類別檔案。

 

所以,請您點選在 Project Explorer 子視窗中的 android-support-v4.jar 檔案名稱。(如下圖箭頭1處所示)

 

並且,請您在此檔案名稱按下滑鼠右鍵。

 

當出現彈出式功能表時,請您點選 Build Path 選項當中的 Add to Build Path 子選項。(如下圖箭頭2與箭頭3處所示)

 

Android 3.0 教學 

 

耶! android-support-v4.jar 檔案的建置路徑設定成功!(如下圖紅框處所示)

 

Android 3.0 教學 

 

android-support-v4.jar 檔案裡頭包括了相當多的 Android 3.0 的 API 類別檔案。(如下圖所示)

 

Android 3.0 教學 

 


import android.support.v4.*;


 

當您撰寫到 Android 3.0 的相關 API 程式碼時,則只需同時按下鍵盤上的 Ctrl + Shift + O 按鈕,Eclipse便會自動幫您加上匯入 android-support-v4.jar  的 API 類別檔案之程式碼。(如下圖紅框處所示)

 

不過,我們在此要提醒您的是: android-support-v4.jar 並非支援全部的 Android 3.0 相關 API 哦!

 

Android 3.0 教學

 

至於,如何撰寫 Android 3.0 相關的手機或平板電腦應用程式呢?

 

我們日後會再陸續發表 Android 3.0 相關的網路教學文章,歡迎您長期鎖定閱讀本研究室的 Android 教學講義,謝謝!

 


喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),謝謝!


 

如果您對於 Android 手機與平板電腦應用程式開發有興趣,歡迎閱讀我們在網路上發表的 Android 手機與平板電腦應用程式開發教學系列講義。

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義

 

此篇講義的主要參考文獻來源Android Developers 官網

 


著作權聲明


 

本講義之內文、排版等著作權或其他智慧財產權歸屬 孫傳雄 與 孫傳雄研究室 所有,非經書面同意禁止任何形式之翻印、全文轉貼或者授課使用行為。但例外允許在網際網路上引用此講義之網址連結。

 

本講義之內文所提及或者引用的公司名稱、產品名稱以及所引用的文字、商標、Youtube短片、產品相片或者網站頁面,均為其所屬公司所擁有,特以聲明。

 


版權所有 翻印必究


[Android 教學課程] 如何解決 main.xml 介面檔案的 LinearLayout 根節點不能刪除的問題?

Android 教學


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義


以下為本篇 Android 教學講義的開始。


在您閱讀本篇 Android 教學講義之前,我們要先強調地是,若您已對您的 main.xml 進行 Android 應用程式介面設計之動作,請您不要操作本篇 Android 教學講義之步驟。

 

本篇 Android 教學講義只適合使用 ADT 9 或者 ADT 10 且剛建立 Android 應用程式開發專案,尚未進行介面設計動作的開發者參考操作。

 

另外,在您閱讀此篇講義之前,我們建議您先閱讀本研究室先前所撰寫的

Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義

。以便對 Android 應用程式開發有較完整的理解。

 


如何解決 main.xml 介面檔案的 LinearLayout 根節點無法刪除的問題 ?


 

【孫傳雄研究室 編著】 其實,這篇 Android 教學講義原本不在我們所規劃的撰寫清單之中。

 

不過,自從 ADT 9 在美國時間 2011年1月26日發表、以及 ADT 10 在美國時間2011年2月22日發表後,我們便陸續接獲一些讀者朋友反應關於 ADT 9 或者 ADT 10 當中的 Android 視覺化介面開發工具之問題。

 

其中的問題之一是: Android 視覺化介面開發工具已不像 ADT 8 那時的舊版本一樣,可以直接在 Outline 子視窗之中,刪除掉 main.xml 所預設在根節點的線性式排版( LinearLayout )介面元件。

 

此舉造成許多習慣使用 Android 視覺化介面開發工具的 Android 應用程式開發者之困擾。

 

畢竟, Android 應用程式開發者有時候並不希望使用線性式排版( LinearLayout )介面元件做為根節點,而是希望使用 TableLayout 或者 RelativeLayout 等其它排版介面元件。

 

當然,關於此點問題對於已習慣直接編寫 Android XML介面程式碼之讀者朋友來說,它並非是個大問題。

 

但是,對於想要直接使用 Android 視覺化介面開發工具進行介面設計的讀者朋友而言,卻是一個極大的問題。

 

因此,我們為了解決這些讀者朋友的困擾,嘗試了幾種的解決方案。

 

在此之中,我們選擇了一個 Android 應用程式開發初學者比較能夠理解與操作的方式,該方法步驟如下所示:

 


確認 main.xml 介面檔案的 LinearLayout 根節點是否真的無法刪除 ?


 

首先,為了確定您在安裝或升級 ADT 10 或者 ADT 9 之後,是否真的無法刪除 main.xml 所預設在根節點的線性式排版( LinearLayout )介面元件?

 

請您在 Outline 子視窗中,點選該線性式排版( LinearLayout )介面元件之表列名稱,並且按下滑鼠右鍵。(如下圖箭頭1處所示)

 

當出現彈出式功能表之後,請您點選 Delete 選項。(如下圖箭頭2處所示)

 

Android 教學 

 

結果,如預期般…

 

完全沒反應…(如下圖所示)

 

亦即, ADT 10 與 ADT 9 之下的 Android 視覺化介面開發工具,它並無法像 ADT 8ADT 0.9.9 的舊版本一樣,直接在 Outline 子視窗中順利將 main.xml 所預設的線性式排版( LinearLayout )介面元件刪除。

 

Android 教學 

 


刪除原有的 main.xml 介面檔案


 

該怎麼辦呢?

 

有了!

 

我們想到一個好辦法,那就是請您先完整刪除掉原有的 main.xml 檔案,然後再新增一個新的 main.xml 檔案。並且,在新增過程中設定 main.xml 檔案之根節點所要預設的排版(Layout)介面元件之形式。

 

在進行此步驟前,讓我們先看一下 main.xml 在 R.java 檔案之 Layout 子類別裡頭的 main 類別屬性與其索引代號(如下圖紅框處所示)。

 

以便,在您等會刪除 main.xml 之後,觀察該屬性是否也一併被刪除。

 

當然,此步驟只是讓您看一下 R.java 之變化,您也可以直接跳過此步驟。

 

Android 教學 

 

接著,請您在 Package Explorer 子視窗中,點選 main.xml 檔案名稱,並且按下滑鼠右鍵。

 

當出現彈出式功能表之後,請您點選 Delete 選項。(如下圖箭頭1與箭頭2處所示)

 

Android 教學 

 

當出現 Confirm Delete 對話視窗時,請您按下該對話視窗的 OK 按鈕。(如下圖紅框處所示)

 

Android 教學 

 

main.xml 檔案刪除中…(如下圖所示)

 

Android 教學 

 

隨後,請您再回到 R.java 檔案當中。

 

您應該會發現 Layout 子類別也整個一併被刪除了。(如下圖所示)

 

Android 教學 


Android 建立新的 main.xml 介面檔案


 

之後,我們需要再建立一個新的 main.xml 檔案。

 

請您在 Package Explorer 子視窗中,點選 layout 資料夾名稱,並且按下滑鼠右鍵。

 

當出現彈出式功能表之後,請您點選 New 選項當中的 Other… 子選項。(如下圖箭頭1、箭頭2與箭頭3處所示)。

 

Android 教學 

 

當出現 New 對話視窗時,請您點選 Wizards 表單當中的 Android XML File 選項,並且按下 Next > 按鈕。(如下圖箭頭1與箭頭2處所示)

 

Android 教學 

 

隨後會出現 New Android XML File 對話視窗。

 

請您在 File 文字輸入欄位中輸入 main.xml 。(如下圖箭頭1處所示)

 

並且,請您在 Select the root element for the XML file下拉式清單欄位中,選擇 main.xml 檔案之根節點所要預設的排版(Layout)介面元件之形式。(如下圖箭頭2處所示)

 

比如,我們選擇表格式排版( TableLayout )介面元件,做為 main.xml 檔案所要預設的排版( Layout )介面元件之形式。(如下圖箭頭3處所示)

 

當然,您也可以選則其它形式的排版( Layout )介面元件。

 

最後,請您按下 Finish 按鈕。(如下圖箭頭4處所示)

 

Android 教學 

 

耶, main.xml 現在預設的排版( Layout )介面元件變成我們所要的表格式排版( TableLayout )介面元件了!(如下圖所示)

 

Android 教學 

 

main.xml 在 R.java 檔案之 Layout 子類別裡頭的 main 類別屬性與其索引代號,也再度重返了。(如下圖所示)

 

Android 教學

 

隨後,您便可以開始在該檔案當中,進行其它您所要的 Android 應用程式之介面設計工作了!

 


喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),謝謝!


 

如果您對於Andorid手機與平板電腦應用程式開發有興趣,歡迎閱讀我們在網路上發表的Android手機與平板電腦應用程式開發教學系列講義。

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義


著作權聲明


 

本講義之內文、排版等著作權或其他智慧財產權歸屬 孫傳雄 與 孫傳雄研究室 所有,非經書面同意禁止任何形式之翻印、全文轉貼或者授課使用行為。但例外允許在網際網路上引用此講義之網址連結。

 

本講義之內文所提及或者引用的公司名稱、產品名稱以及所引用的文字、商標、Youtube短片、產品相片或者網站頁面,均為其所屬公司所擁有,特以聲明。

 


版權所有 翻印必究


[Android 教學課程] SAAB IQon - 全球首款 Android 車用電腦

Android 開發


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義


以下為本篇 Android 教學講義的開始。


【孫傳雄研究室 撰文】Android 目前雖已有為數不少汽車相關的嵌入式系統軟硬體之開發應用,但真正被國際汽車大廠採用而成為正式的 Android 車用電腦之開發應用案例卻是少之又少。

 

不過,就在今天(美國時間2011年3月1日),

 

國際汽車大廠 SAAB ,他們領先業界推出了以 Android 嵌入式系統 ( Android OS 版本目前未知)為核心的車用電腦。(註:此系統目前尚未正式上市,且未來可能僅搭載於 SAAB 相關車系。)

 

他們稱之為 IQon 。

 

以下為 SAAB IQon 的官方功能介紹短片。(資料來源:Youtube)

 

 

 

 

據 SAAB 汽車官網所示, SAAB IQon 會有以下五個特點(資料來源: SAAB 汽車官網):

 

 

  • 領先業界,首次採用 Android 嵌入式系統平台的車用電腦
  • 如同 Android 智慧型手機般, SAAB IQon 用戶可以透過 SAAB 汽車所設立的 Saab IQon store 網路商店,下載與更新各類應用程式。
  • IQon 並非是封閉性嵌入式系統,它有提供 API 給大眾共同發揮創意去開發 IQon 當中的應用程式。

    但大眾所開發的應用程式,需經由 SAAB 官方審核通過,才能放置於 Saab IQon store 網路商店供人下載。
  • IQon 除了具有行動通訊、多媒體影音娛樂、衛星導航、上網等常見的車用功能外,

    它還具有五百多個汽車感應器,可以讓大眾透過 API 來取得車速、車輛位置和方向、駕駛者的工作量、彎道中車輛的偏航率、方向盤角度、引擎轉速與扭力、車室內外的溫度、氣壓與太陽的位置等數據。並以這些數據進行更多具有創意的應用程式。
  • IQon 可以遠端傳送車輛的相關監測與診斷數據給汽車服務廠。

 

 

SAAB 汽車稱此次 IQon 的推出為『開放式創新』(open innovation)。

 

簡而言之, IQon 不只是 SAAB 的 IQon ,更可以透過群眾的智慧,在未來開發出更多頗具創新價值的車用功能。

 

雖然, IQon 仍未正式上市,但我們願意相信它將為各大國際汽車大廠立下一個很不錯的典範。

 

這個典範或許也將提供給 Android 應用程式開發者更多的應用程式開發之發展機會。

 

另一方面,我們也更期待國內的汽車大廠也能在我國精練的資訊通訊硬體業者之配合下,發展出比國外更具創新性的車用電腦系統。

 


喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),謝謝!


 

如果您對於Andorid手機與平板電腦應用程式開發有興趣,歡迎閱讀我們在網路上發表的Android手機與平板電腦應用程式開發教學系列講義。

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義


著作權聲明


 

本講義之內文、排版等著作權或其他智慧財產權歸屬 孫傳雄 與 孫傳雄研究室 所有,非經書面同意禁止任何形式之翻印、全文轉貼或者授課使用行為。但例外允許在網際網路上引用此講義之網址連結。

 

本講義之內文所提及或者引用的公司名稱、產品名稱以及所引用的文字、商標、Youtube短片、產品相片或者網站頁面,均為其所屬公司所擁有,特以聲明。

 


版權所有 翻印必究