第二章:行動裝置與擴增實境

30
第第第 第第第第第第第第第 姓姓 : 姓姓姓 姓姓 :MA0G0216 姓姓姓姓 : 姓姓姓 姓姓 :2011/11/01 1

Upload: mona-lucas

Post on 02-Jan-2016

28 views

Category:

Documents


0 download

DESCRIPTION

第二章:行動裝置與擴增實境. 姓名 : 胡惟評 學號 :MA0G0216 指導教授 : 李育強 日期 :2011/11/01. Outline. 2 - 1 智慧型行動裝置 2 - 2 行動 擴增實境 2 - 2 - 1 AndAR 2 - 2 - 2 NyARToolkit 2 - 2 - 3 QCAR 2 - 3 Android 2 - 3 - 1 Android 的歷史 2 - 3 - 2 Android 的系統架構. 2 - 1 智慧型行動裝置( 1 ). 智慧型行動裝置:平板電腦。 - PowerPoint PPT Presentation

TRANSCRIPT

1

第二章:行動裝置與擴增實境

姓名 : 胡惟評學號 :MA0G0216指導教授 : 李育強

日期 :2011/11/01

2

2 - 1 智慧型行動裝置 2 - 2 行動擴增實境

◦ 2 - 2 - 1 AndAR◦ 2 - 2 - 2 NyARToolkit◦ 2 - 2 - 3 QCAR

2 - 3 Android◦ 2 - 3 - 1 Android 的歷史◦ 2 - 3 - 2 Android 的系統架構

Outline

3

智慧型行動裝置:平板電腦。◦ 在六十年代末 Alan Kay 提出了一種可以用筆輸入資訊的新型筆

記型電腦的構思。◦ 1989年9月第一台平板電腦問世,但其手寫辨識率過差、價格過高、重量過重,使得平板電腦並沒有受到青睞。

◦2002年由微軟公司大力推廣Windows XP Tablet PC Edition使得平板電腦慢慢流行起來。

智慧型行動裝置:智慧型手機。◦隨著電腦硬體技術的發展,伴隨各種硬體零件重量與體積的縮小。以及3G無線網路的普及,使得原本厚重的黑金剛大哥大手機,逐漸被輕薄且功能強大的多功能手機所取代。

◦智慧型手機,並不是手機擁有許多的智慧。而是其功能除了可接聴電話外,更可以像電腦一樣,可任意安裝移除軟體,具備多功能的用途。

2 - 1 智慧型行動裝置( 1 )

4

BlackBerry 黑莓機。◦ 第一台較有發展潛力的智慧型手機。◦ BlackBerry 配備一個小型的 QWERTY 鍵盤,讓很多習慣電

腦的使用者,馬上就能上手 BlackBerry 。◦ BlackBerry 不只可以接聽電話,還擁有收發電子郵件的功能。

陸續推出的智慧型手機 HTC 、 iPhone 、 G-Mobile… 等,使用較大螢幕與簡單的觸控式操作,顛覆了以往小螢幕且礙手的鍵盤輸入之手機印象。

智慧型手機豐富的使用者介面、強大且多功能的作業系統,且隨著科技的進步、越來越多人開放原始碼與提供各種軟體,智慧型手機的提供服務越來越多。

2 - 1 智慧型行動裝置( 2 )

5

參考資料◦ 維基百科。

http://zh.wikipedia.org/wiki/%E6%99%BA%E6%85%A7%E5%9E%8B%E6%89%8B%E6%A9%9F。

◦ HTC 官方網站新聞稿。 http://www.htc.com/tw/press/2011.html 。

◦ 淺談智慧型手機。 http://www.cc.ntu.edu.tw/chinese/epaper/0008/20090320_8004.htm 。

◦ Apple 官方網站。 http://www.apple.com/tw/iphone/compare-iphones/ 。

2 - 1 智慧型行動裝置( 3 )

6

智慧型行動裝置(包含 HTC 、 iPhone 、 iPad… 等)在這二、三年十分熱門。

智慧型手機是源於個人數位助理 Personal Digital Assistant , PDA 。

PDA 具有3吋以上觸控式液晶螢幕、軟硬體擴充性與開放性作業系統的掌上型電腦,在過去讓很多人愛不釋手。

後來業者為了擴大市場的規模,因此將個人數位助理結合手機通訊功能,並加以推廣,進而成為目前超夯的智慧型手機市場。

因為智慧型手機功能幾乎等同於小筆電,讓手機與電腦之間的分隔線越來越模糊。智慧型行動裝置並包含平板電腦。

除了桌上型、筆記型電腦外,智慧型行動裝置也逐漸形成第3大勢力。

2 - 2行動擴增實境( 1 )

7

試著想像,有一種手機除了可以讓你透過鏡頭觀看真實的世界,並在所見的真實的世界中出現了原本不存在的有趣物件。

這類「擴增實境」在過去是虛擬小說中才會出現的,現在讓我們帶領你進入手機擴增實境,打造一個現實又虛擬的世界。

常見手機擴增實境( AR )開發套件及其可開發執行的環境:◦ AndAR : Android 。◦ NyARToolkit : Windows 、 Android 。◦ QCAR : Android 、 iOS 。

2 - 2行動擴增實境( 2 )

8

AndAR 是運用在 Android 平臺的擴增實境技術開發套件。整個套件是根據 GNU 通用公共許可證( GNU General Public License )所發佈。

這意味著,只要認同他們的授權合約,就可以自由地在自己的專案中引入 AndAR套件中。

它是一個開放源碼專案,歡迎任何使用者提出程式碼方面的貢獻。

2 - 2 - 1 AndAR ( 1 )

9

AndAR 官方網站。 http://code.google.com/p/andar/。 下圖為 AndAR 官方網站首頁的畫面。首頁上有五個標籤分別為「 Project Home」、「Downloads」、「Wiki」「 Issues」、「 Source」。定內標籤頁面為「 Project Home」,有提供AndAR 的由來、 AndAR贊助單位、成員、 Demo視訊、以及下載…等相關資訊。

2 - 2 - 1 AndAR ( 2 )

10

NyARToolkit 是由 ARToolKit- 2 .72 . 1開發而來的類別庫。可以用來開發擴增實境的應用程式。

在 Windows 平台上 NyARToolkit已開發出支援數種主要程式語言的版本,使用者可選擇適合的開發語言來開發,如:Java / C# / ActionScript3/c + +,並開發出支援開發Android 的版本。

NyARToolkit 的作者為日本人,所以官方網站是日文版的。 http://nyatla.jp/nyartoolkit/wiki/index.php?FrontPage

NyARToolkit 的作者,有另外製作英文版官方網站。 http://nyatla.jp/nyartoolkit/wiki/index.php?FrontPage.en 。

2 - 2 - 2 NyARToolkit ( 1 )

11

下圖為 NyARToolkit 的英文版官方網站畫面。頁面左對各種 NyARToolkit所支援的開發程式語言版本做一簡介,及相關用來撰寫程式的工具,如 Eclipse等。首頁最下方則公告最新訊息。

首頁右方則為各種選單。

2 - 2 - 2 NyARToolkit ( 2 )

12

QCAR SDK 是 Qualcomm公司開發出來的一套擴增實境( Augmented Reality )開發套件,目前有 Android版以及 iOS版供開發者免費下載使用。

更多開發內容可以到以下網址瀏覽學習 。 http://developer.qualcomm.com/dev/augmented-reality 。

http://jwill.pixnet.net/blog/post/28287179-qcar-qualcomm-ar- 。

2 - 2 - 3 QCAR

13

Android (早期是一科幻小說上機器人的名字):◦ 是一種專門為了行動裝置所設計的作業系統,建構在 Linux核心

( Linux Kernel )之上。◦ 使用者可以透過 Android撥打電話、傳送簡訊、收發電子郵件、查看行事曆、上網、玩遊戲、享受影音娛樂。

◦甚至透過應用程式的下載,達成許多意想不到的創新功能。 Linux 是一個相當成熟且穩定的作業系統,無論安全性、

多工處理能力甚至軟硬體的支援,都非常優越。 不過 Android 並不完全相容於傳統 Linux 系統,例如他沒

有 X Window 系統,也沒有完全支援 GNU函式庫,所以無法將所有 Linux/GNU 的應用程式都移植到 Android 上。

Android 官方網站。 http://www.android.com/。

2 - 3 Android ( 1 )

14

下圖為 Android 的官方網站的頁面。下方分為三個部份分別為「 Partners」、「 Developers」、「 Android Market」。

2 - 3 Android ( 2 )

15

Android 是個先進的平台,對於手持裝置開發者來說。平 台 上所開 發 的應用程式 可相容於 各 種 型 號 的Android 手機,不會因手機型號而造成開發困擾。

 Android支援網路、繪圖、3 D處理、 Google Map ,提升更好的使用者體驗。

也可以透過 Android Market ( Android 市場) 可以方便的將自己所開發的 Android應用程式銷售給世界各地使用者。

對於使用者來說,只要擁有免費的 Google帳戶,就可以在不同廠商,同樣是 Android 作業系統手機之間轉換資料。容易將連絡簿等個人資料更新至手機平台。

2 - 3 Android ( 3 )

16

Android 手機通常都帶有一套預先安裝的通用應用程式,包括但不限於以下幾種 :◦ 電子郵件用戶端。◦ SMS管理應用程式。◦ 完整的個人資訊管理套件。◦ 基於 WwbKit 的 Wwb瀏覽器。◦ 照相機和視訊錄製應用程式。◦ 計算機。◦ 主螢幕。◦ 鬧鐘。◦ 功能豐富的行動 Google Map應用程式。◦ Android Market 用戶端。◦ Gmail 郵件用戶端。◦ Google Talk即時銷實用戶端。◦ YouTube視訊播放器。

內建的應用程式儲存和使用的資料也可以被第三方應用程式使用,因此,個人所撰寫的應用程式可以用來處理來電或者新的 SMS 資訊。

 Android 手機上的應用程式可能會根據硬體製造商或手機營運商的不同而有所不同。

2 - 3 Android ( 4 )

17

Android早期是由 Andy Rubin所創辦, Andy Rubin 有 Android 之父之稱。

Google 在2005年併購了 Android公司,開始了手機等業務,並以 Linux 的通用平台切入開發。

 Google公司在2007年11月5日正式公布了 Android 作業系統。

Android 平台公佈之後, Google緊接著發佈「 Android 軟體開發工具 Software Development Kit, SDK」支援眾多作業系統上(如: Windows 、 Mac OS X 、 Linux )的開發,且使用者可以免費下載。

2008年, Patrick Brady ,由演講中提出的 Android HAL 架構圖。可以把 Android framework 與 Linux kernel 隔開。

2008年9月24日, T-Mobile 首度公佈第一台 Android 手機( G 1)的細節,同日 Google 也釋出了 Andorid SDK 1 .0 rc 1的開發套件。

2 - 3 - 1 Android 的歷史( 1 )

18

對應用程式開發者而言,1 .0 代表了開發者可以放心地使用 API ,而不必再擔心 API 有太大的變動。

2008年 10月21日, Open Handset Alliance 公開了全部 Android 的原始碼。從此,開發者擁有了一個完全開放的手機平台。

2009年2月, Google 推出 Android Market 線上應用程式商店,使用者可在線上商店中找尋自己所需要的免費或需付費的軟體,讓 Android程式開發者有著另一個賺錢的管道。

2010年2月3日, Linux核心開發者 Greg Kroah-Hartman將 Android 的驅動程式從 Linux核心移除,從此, Android 與Linux核心不再合一 。

2011年2月2日,發表僅供平板電腦使用的 Android 3 .0版 。

2011年10月,發表Android 4 .0版 。

2 - 3 - 1 Android 的歷史( 2 )

19

開放性:建立標準化、開放式的移動軟體平臺。 平等性:所有應用程式皆平等。無界性:應用程式之間沒有界限。 方便性:開發應用程式非常方便。 硬體豐富性:由於是開放性的平臺,不同的製造商皆可投入支援。

選擇 Android 的理由

20

維基百科。 Android 。 http://zh.wikipedia.org/wiki/Android。 初探Android 。

http://code.google.com/p/androidbmi/wiki/IntroAndroid 。 http://www.kroah.com/log/linux/android-kernel-problems.html

。 吳亞峰、蘇亞光。 Android遊戲程式開發範例大全。博碩文化。201

1年5月。 Reto Meier 著、鍾政欣譯。 Android 2.X應用程式開發經典。碁峰。

2011年6月初版。 黃彬華。 Android 2.X 手機程式開發教戰手冊:體驗最夯最潮的智慧型

手機程式開發。碁峰資訊 。2011年。 蓋索林( Gasolin ) 。 Google! Android 手機應用程式設計入門。統一元氣資產管理。2009年。

吳亞峰、索依娜。學會Android 應用開發的 18 堂關鍵基礎課程。博碩文化。2011年。

參考資料

21

Android 手機系統可分為上下層,上層使用 Java編寫應用程式,下層使用 C語言編寫系統程式。

上層的 Java層又可細分出應用層( Applications )與應用架構層( Application Framework )。

應用層:應用程式均由 Java編寫。各應用程式之間完全平等,開發人員可替換內建的 Android程式成為自己所設計的應用程式。

2 - 3 - 2 Android 的系統架構( 1 )

22

應用層包含應用程式如下:◦ 1 . Home 。◦ 2 . 內建應用程式(瀏覽器、聯絡人…等) 。◦ 3 . 第三方應用程式。◦ 4 . 自行開發應用程式。

應用架構層:此層的設計簡化了元件的重複使用。用戶可以任意替換程式的元件,而不會影響其他模組。

2 - 3 - 2 Android 的系統架構( 2 )

應用層內建應用程式(瀏覽器、聯絡人…

等)Home 第三方應用程式 自行開發應用程

應用層內建應用程式(瀏覽器、聯絡人…

等)Home

第三方應用程式

自行開發應用程式

應用架構層活動管理 視窗管理

套件管理 通話管理

內容提供 視圖系統

資源管理 定位管理 通知管理

函式庫外觀管

理多媒體

架構

FreeType

WebKit

資料庫管理

繪圖引擊

SSL libc

Android 執行核心函

式庫Dalvik虛擬機器

Linux核心層顯示驅動 Camera

驅動

行程管理 記憶體管理

WiFi驅動 其他硬體驅動程式

電源管理

23

應用架構層主要包含九大部份如下:◦ 1 . 活動管理。◦ 2 . 視窗管理。◦ 3 . 內容提供。◦ 4 . 視圖系統。◦ 5 . 套件管理。◦ 6 . 通話管理。◦ 7 . 資源管理。◦ 8 . 定位管理。◦ 9 . 通知管理。

2 - 3 - 2 Android 的系統架構( 3 )應用架構層

活動管理 視窗管理

套件管理 通話管理

內容提供 視圖系統

資源管理 定位管理 通知管理

應用層內建應用程式(瀏覽器、聯絡人…

等)Home

第三方應用程式

自行開發應用程式

應用架構層活動管理 視窗管理

套件管理 通話管理

內容提供 視圖系統

資源管理 定位管理 通知管理

函式庫外觀管

理多媒體

架構

FreeType

WebKit

資料庫管理

繪圖引擊

SSL libc

Android 執行核心函

式庫Dalvik虛擬機器

Linux核心層顯示驅動 Camera

驅動

行程管理 記憶體管理

WiFi驅動 其他硬體驅動程式

電源管理

24

然後下層的系統層也可細分為函式庫層( Libraries )與Linux核心系統層。

函式庫層:包含函式庫及 Android執行函式庫兩大部份。 以下為函式庫所包含的主要功能:

◦ 1 . 外觀管理。◦ 2 . 多媒體架構。◦ 3 . 資料庫管理。◦ 4 . 繪圖引擊。◦ 5 . FreeType 。◦ 6 . WebKit 。◦ 7 . SSL 。◦ 8 . libc 。

2 - 3 - 2 Android 的系統架構( 4 )

25

Android執行函式庫:包含核心函式庫以及 Dalvik虛擬機器。

整個函式庫層如下圖所示。

2 - 3 - 2 Android 的系統架構( 5 )

函式庫

外觀管理 多媒體架構

FreeType WebKit

資料庫管理 繪圖引擊

SSL libc

Android 執行核心函式庫

Dalvik虛擬機器

應用層內建應用程式(瀏覽器、聯絡人…

等)Home

第三方應用程式

自行開發應用程式

應用架構層活動管理 視窗管理

套件管理 通話管理

內容提供 視圖系統

資源管理 定位管理 通知管理

函式庫外觀管

理多媒體

架構

FreeType

WebKit

資料庫管理

繪圖引擊

SSL libc

Android 執行核心函

式庫Dalvik虛擬機器

Linux核心層顯示驅動 Camera

驅動

行程管理 記憶體管理

WiFi驅動 其他硬體驅動程式

電源管理

26

Android 函 式 庫 , 此 函 式 庫 主 要 以 C/C++ 而成。 Android應用程式開發人員並非直接使用此函式庫,而是透過更上層的 Application Framework 來使用此函式庫功能。此函式庫又可細分成各種類型的函式庫。

以下列出部份比較重要的函式庫 :◦ Media Framework : 播放與錄製功能,支援個檔案類型包括

MPEG4、 MP 3、 H. 264、 AAC 、 AMR 、 JPG 、 PNG 等。◦ Surface Manager : 管理圖形介面與2 D 、3 D圖層顯示。◦ WebKit : 內建瀏覽器的引擎。◦ SGL : 專門處理2 D圖形◦ OpenGL : 嵌入式系統使用的3 D圖形函式庫。◦ SQLite : 關聯式資料庫引擎。

2 - 3 - 2 Android 的系統架構( 6 )

27

在 C 語 言 方 面 結 合 了WebKit 、 OpenGL 、 SQLite 、 Linux 等資源, Java 方面則結合 Apache函式庫等資源。

再利用 Dalvik虛擬機避開了昇陽在 Java 的專利,因此擁有豐富的開放原始碼應用程式,又避開侵犯智慧財產權。

採用 Apache Software License 2 .0,讓商業公司可以放心投入 Android 手機的開發。

2 - 3 - 2 Android 的系統架構( 7 )

28

以下為 Linux核心層:◦ 1 . 顯示驅動。◦ 2 . Camera驅動。◦ 3 . WiFi驅動。◦ 4 . 其他硬體驅動。◦ 5 . 行程管理。◦ 6 . 記憶體管理。◦ 7 . 電源管理。

2 - 3 - 2 Android 的系統架構( 8 )

Linux核心層

顯示驅動 Camera驅動

行程管理 記憶體管理

WiFi驅動 其他硬體驅動程式

電源管理

應用層內建應用程式(瀏覽器、聯絡人…

等)Home

第三方應用程式

自行開發應用程式

應用架構層活動管理 視窗管理

套件管理 通話管理

內容提供 視圖系統

資源管理 定位管理 通知管理

函式庫外觀管

理多媒體

架構

FreeType

WebKit

資料庫管理

繪圖引擊

SSL libc

Android 執行核心函

式庫Dalvik虛擬機器

Linux核心層顯示驅動 Camera

驅動

行程管理 記憶體管理

WiFi驅動 其他硬體驅動程式

電源管理

29

Android 系統的整體架構圖, http://developer.android.com/guide/basics/what-is-android.html。整個 Android 系統架構可說展現了 Google 的技術。

2 - 3 - 2 Android 的系統架構( 9 )

應用層內建應用程式(瀏覽器、

聯絡人…等)Home 第三方應用程式 自行開發應用程式

應用架構層

活動管理 視窗管理

套件管理 通話管理

內容提供 視圖系統

資源管理 定位管理 通知管理

函式庫

外觀管理 多媒體架構

FreeType WebKit

資料庫管理 繪圖引擊

SSL libc

Android 執行

核心函式庫

Dalvik虛擬機器

Linux核心層

顯示驅動 Camera驅動

行程管理 記憶體管理

WiFi驅動 其他硬體驅動程式

電源管理

30

http://developer.android.com/guide/basics/what-is-android.html

維基百科。 Android 。 http://zh.wikipedia.org/wiki/Android。 初探Android 。

http://code.google.com/p/androidbmi/wiki/IntroAndroid 。 http://www.kroah.com/log/linux/android-kernel-problems.html

。 吳亞峰、蘇亞光。 Android遊戲程式開發範例大全。博碩文化。201

1年5月。 Reto Meier 著、鍾政欣譯。 Android 2.X應用程式開發經典。碁峰資

訊。 2011年6月初版。 黃彬華。 Android 2.X 手機程式開發教戰手冊:體驗最夯最潮的智慧型

手機程式開發。碁峰資訊 。2011年。 蓋索林( Gasolin ) 。 Google! Android 手機應用程式設計入門。統

一元氣資產管理。2009年。 吳亞峰、索依娜。學會Android 應用開發的 18 堂關鍵基礎課程。博碩文化。2011年。

參考資料