Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
指導教師:張 志 宏 老師
中 華 民 國 一 百 零 一 年 十 二 月修 平 科 技 大 學
資 訊 管 理 系專 題 實 務 報 告 審 定 書
本 系 日 間 部 四 技組長:BF98031 陳政倫組員:BF98003 林靜柔 BF98024 程子鍵 BF98041 王凱琳
所 提 報 告 F U N 輕 鬆 A n d r o i d 系 統
經 本 委 員 會 評 審 通 過 。
口試委員:
摘 要為了配合現代國人普遍重視休閒及親子活動,因此程式顧名思
義為 Fun 輕鬆,想藉由這個程式讓國人放輕鬆好好享受假日假期,共享天倫之樂,程式提供了許多著名景點、GPS 定位、路徑的規劃。方便使用者走到哪玩到哪。
透過大家親身經歷或者是網友的意見,定義出要介紹的景點,試圖用手機連結外部資料庫取得景點相關資訊,除了手機端的 APP
撰寫外,還多了使用作業系統架設相關伺服器,來達成我們的目標。
目 錄目 錄...........................................................................................................i
表 目 錄......................................................................................................iii
圖 目 錄......................................................................................................iv
第一章 前言...................................................................................................1
1-1 研究動機..........................................................................................1
1-2 研究目的..........................................................................................2
1-3 軟體需求..........................................................................................3
1-4 硬體需求..........................................................................................4
第二章 文獻探討...........................................................................................5
2-1 Android 簡介....................................................................................5
2-2 LAMP 簡介.......................................................................................7
2-3Linux Ubuntu 簡介............................................................................8
2-3 Apach HTTP Server 簡介.................................................................9
2-4 MySQL 簡介...................................................................................10
2-5 PHP 簡介........................................................................................11
2-6 PhpMyAdmin 簡介.........................................................................12
2-7 Eclipse 簡介....................................................................................13
2-7 SQL 簡介........................................................................................15
i
第三章 系統分析與設計.............................................................................16
3-1 使用者案例....................................................................................16
3-2 系統的類別圖................................................................................17
3-3 系統功能循序圖............................................................................18
3-4 工作分配表.....................................................................................19
3-5 工作進度表....................................................................................20
第四章 系統實作說明................................................................................21
4-1 作業系統畫面................................................................................21
4-2 手機實機系統畫面.......................................................................23
第五章 結論................................................................................................34
第六章 問題討論.........................................................................................35
參考文獻......................................................................................................36
ii
表 目 錄表 1 製作軟體需求表....................................................................................3
表 2 硬體設備使用表....................................................................................4
表 3 Android 版本歷史表..............................................................................6
表 4 工作分配表..........................................................................................19
表 5 工作進度表..........................................................................................20
iii
圖 目 錄圖 1 使用者案例..........................................................................................16
圖 2 系統類別圖..........................................................................................17
圖 3 系統循序圖..........................................................................................18
圖 4 架設伺服器..........................................................................................21
圖 5 檢查 Port..............................................................................................22
圖 6 進入介面..............................................................................................23
圖 7 POST 撈資料.......................................................................................24
圖 8 景點列表..............................................................................................25
圖 9 景點資訊..............................................................................................26
圖 10 路徑規劃............................................................................................27
圖 11 執行規劃............................................................................................28
圖 12 顯示路徑............................................................................................29
圖 13 標籤二地圖........................................................................................30
圖 14 地圖座標............................................................................................31
圖 15 座標資訊............................................................................................32
圖 16 相關圖片............................................................................................33
iv
第一章 前言1-1 研究動機
假日要去哪裡玩?相信這個問題是人人都會問的問題,每當碰上假日想出去玩時都不知道要去哪裡玩,也不知道附近有哪些好景點可以去。以往很多有從外地來的人們或學生,因為環境不熟只能選擇固
定的那幾個景點。現今多了很多美麗的景點。對於附近可以選擇的地點無從得知。
這就是本團隊做此專題的用意,除了可以有更多旅遊景點選擇,也可以很快的瞭解路徑的規劃,知道附近有哪些景點,讓外地的遊客可以很方便的收尋想要的旅遊景點、放輕鬆、和親人或朋友互動,到處走到處玩,讓情感更加溫,不用都去以往的舊景點。本研究相信這一定可以幫助喜歡旅遊欣賞風景、親子遊玩的人改善惱人的問題,可以節省下找景點的時間,運用在其他更有意義的事情上。
1
1-2 研究目的從古至今,旅遊娛樂是不可或缺的,最早只是爬爬山看看風景,
現今除了爬山看風景還有可以喝茶吃飯聊天的景點餐廳也有民宿,讓旅遊豐富多元化,不需要因為時間或是住宿問題而煩惱,也不用擔心環境的選擇。而要在這環境去瞭解有哪些地點可以選擇,是需要花上很多時間與精神的。
為了讓人們可以既方便簡單又能多元選擇的找到理想的旅遊地點,最簡單的方法就是使用我們的程式收尋,把附近的旅遊景點整合起來,提供使用者參考,這樣就可以輕輕鬆鬆的知道附近有什麼可以去的景點。
本研究的目的是以執行 FUN 輕鬆的方式來介紹五大直轄市有什麼風景景點與商家的資訊、座標及路徑規劃方式。讓使用者可以知道五大直轄市著名的景點,不用為了假日不知道去哪或者是都去過好幾次的景點而煩惱規劃。本團隊收集了網路上一些熱心網友的推薦加上團隊隊員去過的景點資訊,評估整理成資料,再用地圖的方式來呈現。這樣使用者就可以知道景點的所在位置,也方便尋找。另外為了讓地圖更加活性化,也增加了 GPS 的定位用以結合地圖與路徑規劃。
2
1-3 軟體需求表 1 製作軟體需求表
軟 體 名 稱 說明Linux Ubuntu 以桌面應用為主的 Linux 作業系統。MySQL 開放原始碼的關聯式資料庫管理系統。
Apache2Linux 系統上最廣泛用來架設 WWW 伺服器的架站軟體
PHP 一種腳本語言,用途在於處理動態網頁。
PhpMyAdminPHP 為基礎,架構在主機上的資料庫管理工具。
Eclipse跨平台開源整合式開發環境,用來 Java語言開發。
Software Ideas Modeler 使用各種物件畫出多樣化系統架構圖。
3
1-4 硬體需求表 2 硬體設備使用表
硬體名稱 說明電腦 雙核心 2.83GHz 或以上。記憶體 4 GB 或以上。硬碟 100 GB 或以上。
表 3 手機硬體設備規格硬體名稱 說明處理器 800MHz。作業系統版本 Android 2.3.6
記憶體 384MB 或以上。
4
第二章 文獻探討2-1 Android 簡介講到 Android[1]就會聯想到搜尋引擎龍頭 Google。創立於 1998
年致力於網際網路搜尋、雲端運算、廣告技術等領域,在短短幾年開發並提供大量用於網際網路的產品與服務,成為日後蘋果、微軟等公司的強敵,其主要利潤九成來自於廣告。
2007 年,Google 與 34 家手機製造商、晶片製造商、軟體開發商和電信運營商一同建立了開放手機聯盟,開發 Android 系統與蘋果 iOS、微軟 Windows Phone等行動平台競爭。
Android 的原意為「機器人」,Google將Android 的代表圖騰為綠色機器人,不但表達字面意義,且表示 Android 系統是符合環保概念,使用開放免費源代碼許可證,一切源代碼都是公開免費的。對行動裝置使用者來說,Android 是一個功能廣泛的作業系統,
體積雖小卻五臟俱全。Google 與 Android做整合,使用者申請一個Google帳號之後,當使用者更換手機時,即使是不同廠牌的手機,只要其是使用 Android 系統,就可將原手機的各種資訊轉移到新手機中。
5
Android 版本歷史介紹表 4 Android 版本歷史表
1.5 (Cupcake) 基 於Linux Kernel 2.6.27
拍攝/播放影片並支持立體聲藍芽耳機,改善自動配對性能,提供螢幕虛擬鍵盤,應用程式自動隨著手機旋轉,主螢幕增加音樂播放器和相框widgets,拍攝圖片可以直接上傳到 Picasa;來電照片顯示。
1.6 (Donut) 基 於Linux Kernel 2.6.29
重新設計 Android Market 手勢;支持 CDMA 網路、文字轉語音系統、快速搜索框、全新的拍照介面、查看應用程式耗電、支援虛擬私人網路(VPN)、更多的螢幕解析度、OpenCore2媒體引擎、面向視覺或聽覺困難人群的易用性外掛程式。
2.0/2.0.1/2.1(Eclair)
基 於 Linux Kernel
2.6.29
優化硬體速度;"Car Home"程式;支援更多的螢幕解析度、改良的使用者介面、新的流覽器的使用者介面和支援 HTML5;更好的白 /黑背景比率;改進 Google Maps3.1.2;支持 Microsoft
Exchange;支持內置相機閃光燈、藍牙 2.1、動態桌面的設計。
6
2.2/2.2.1 (Froyo)
整體性能大幅度的提升;3G 網路共用功能;Flash 的支持;App2sd 功能;全新的軟體商店;更多的 Web應用 API 介面的開發。
3.1Honeycomb
優化的 Gmail;全面支持 Google Maps ;將Android 手機系統跟平板系統再次合併;工作管理員可滾動,支援 USB 輸入裝置;支持 Google
TV。支援 XBOX 360無線手柄,能更加容易的定制螢幕widget 外掛程式。
4.0IceCream Sandwich
全新的 UI、Chrome Lite瀏覽器、離線閱讀,16
標籤頁、隱身流覽模式等、截圖功能、自帶照片應用堪比 Instagram,可以加濾鏡、加相框,進行360 度全景拍攝,照片還能根據地點來排序,有望支援使用者自訂添加協力廠商服務;新增流量管理工具,可具體查看每個應用產生的流量,限制使用流量,到達設置標準後自動斷開網路。
7
2-2 LAMP
LAMP[2],即是用 Linux 作為作業系統,Apache 作為 Web 服務器,MySQL 作為資料庫,PHP 作為服務器端腳本解釋器。由於這四個軟體都是開放原始碼軟體,因此使用這種方式不用花一分錢就可以建立起一個穩定、免費的網站系統。以下逐一介紹。
8
2-3 Linux Ubuntu
Ubuntu 是 一 個以桌面應用 為主的 GNU/ Linux 作 業 系 統 ,Ubuntu基於 Debian發行版和 GNOME桌面環境,與 Debian 的不同在於它每 6 個月會發佈一個新版本。而在最新的 Ubuntu 12.04 LTS
中,桌面版和伺服器版均可獲得為期五年的技術支援。Ubuntu 的目標在於為一般用戶提供一個最新的、同時又相當穩
定的作業系統。Ubuntu具有龐大的社群力量,用戶可以方便地透過社群獲得幫助。
Ubuntu精簡容量很小,希望讓使用者自行去安裝所需要的軟體。加上 Ubuntu對於權限很謹慎,因此預設不開放 root(管理者)登入。使用者需透過 sudo 來切換身分執行。選擇 Linux做為作業系統,因為在學校課程上接觸了一年,發現
其功能強大、文字介面(不啟用 X-Window)、只載入系統需要的程序因此記憶體用的少,本身就是用於架設伺服器,Linux 強大的指令Route、Iptables可媲美 Cisco 的 Router 與 Access Control List(ACL)可以鞏固 Server 的安全又是免費的自由軟體基於想發揮學以致用而選擇 Linux。
9
2-4 Apache HTTP Server
Apache HTTP Server[3][4](簡稱 Apache)是一種開源的網頁伺服 器 ,起初由伊利諾大 學香檳分校的 國 家超級電腦應用 中心(NCSA)開發。可以在大多數電腦作業系統中執行,由於其跨平台和安全性被廣泛使用,是最流行的 Web 伺服器端軟體之一。
一方面 Apache 網路伺服器,讓用戶充分體驗到開放原始碼軟體的穩定性、可靠性和可定製性。Linux 使用 Apache 當作 Web 伺服器已經有一段時間的默契。
10
2-5 MySQL
MySQL[5][6]是一個開放原始碼的關聯式資料庫管理系統且跨平台。2009 年,甲骨文公司(Oracle)收購昇陽微系統公司,MySQL
成為 Oracle旗下產品。MySQL在過去由於效能高、成本低、可靠性好,已經成為最流行的開源資料庫,一直以來也是 Linux常用的資料庫,因此被廣泛地應用在 Internet 上的中小型網站與 Linux 平台中。雖然跟其他大型資料庫相比MySQL也有它的不足之處,如規
模小、功能有限等,但是這絲毫也沒有減少它受歡迎的程度。對於我們專題開發來說選擇MySQL 當作資料庫,因為 MySQL 提供的功能已經綽綽有餘,而且由於MySQL 是開放原始碼軟體,因此可以省去一筆不少的支出。
11
2-6 PHP
PHP(PHP:Hypertext Preprocessor)是一種在電腦上執行的腳本語言,主要用途是在於協助處理動態網頁。
PHP 的應用範圍相當廣泛,尤其是在網頁程式的開發上。一般來說 PHP 大多執行在網頁伺服器上,透過執行 PHP 程式碼與後端的MySQL溝通將資料呈現上網頁伺服器上。PHP跨平台可以在多數的伺服器和作業系統上執行,而且使用 PHP完全是免費的。
12
2-7 PhpMyAdmin
PhpMyAdmin[7]是一個以 PHP 為基礎,讓管理者可用 Web 圖形化介面的管理 MySQL 資料庫。藉由此 Web 圖形化介面可以提供初階管理者對於 SQL語法不太熟悉進而透過 PhpMyAdmin 輕易的操作繁雜又困難的 SQL語法。其中一個更大的優勢在於由於 PhpMyaAdmin跟其他 PHP 程式
一樣在網頁伺服器上執行,但是您可以在任何地方透過網頁,遠端管理 MySQL 資料庫,方便的建立、修改、刪除資料庫及資料表。也可藉由 PhpMyAdmin針對權限的管理,匯出跟匯入 SQL 是一套很強大的軟體。也算初階管理者入門軟體工具!
13
2-8 Eclipse
Eclipse[8]是著名的跨平台的自由整合式開發環境(IDE)。最初主要用來 Java語言開發,目前亦有人透過外掛程式使其作為 C+
+、Python、PHP等其他語言的開發工具。Eclipse 的本身只是一個框架平台,但是眾多外掛程式的支援,
使得 Eclipse擁有較佳的靈活性。許多軟體開發商以 Eclipse 為框架開發自己的 IDE。
Eclipse採用的技術是 IBM公司開發的(SWT),這是一種基於Java 的窗口元件,類似 Java 本身提供的 AWT和 Swing窗口元件;不過 IBM聲稱 SWT比其他 Java窗口元件更有效率。Eclipse 的使用者介面還使用了 GUI 中間層 JFace,從而簡化了基於 SWT 的應用程式的構建。
Eclipse 的外掛程式機制是輕型軟體元件化架構。在富客戶機平台上,Eclipse 使用外掛程式來提供所有的附加功能,例如支援 Java
以外 的其他語言。已有的分離的 外掛程式已經 能夠支援 C/C++
(CDT)、PHP、Perl、Ruby,Python、Telnet和資料庫開發。外掛程式架構能夠支援將任意的擴充功能加入到現有環境中,例如配置管理,而決不僅僅限於支援各種程式語言。
14
Eclipse 的設計思想是:一切皆外掛程式。Eclipse核心很小,其它所有功能都以外掛程式的形式附加於 Eclipse核心之上。Eclipse基本核心包括: 圖形 API(SWT/Jface),Java 開發環境外掛程 式(JDT),外掛程式開發環境(PDE)等。
SWT:SWT(Standard Widget Toolkit),最初由 IBM開發的一套用於 Java 的圖形用戶界面系統,用來與 Swing競爭。開源整合開發環境 Eclipse就是用 Java和 SWT開發的。
15
2-9 SQL 介紹SQL[9] (Structure Query Language,結構化查詢語言) 是一種資料
庫查詢和程式設計的語言,用於存取資料以及查詢、更新及管理關聯式資料庫系統,SQL 是屬於第四代的語言,和第三代的程式語言不同,SQL 是在描述想要得到的資料,而不是描述資料要如何被取出來,在使用上相當簡便,就算是沒有程式基礎的人也能上手。美國國家標準局(ANSI)及國際標準化組織(ISO)已經制定了 SQL
的 標 準 。 1992 年 ISO 和 IEC (International Electrotechnical
Commission)發怖了 SQL 的國際標準,稱為 SQL-92,隨後,ANSI也制定了相對應的標準 ANSI SQL-92。也就是目前業界所遵循的標準。不同的關聯式資料庫可能會有不同的 SQL 版本,但基本上他們都是符合 ANSI SQL 的,所以只要懂得不管是那一種關聯式的資料庫都能適用。
SQL語言包括了兩種主要的語言,兩種主要用途的語言:資料定義語言(DDL)與資料操作語言(DML)。資料定義語言用於定義資料庫物件的結構,像資料庫,資料表,及檢視表(view)。講明白一點就是可以用 DDL 來開資料庫,開資料表格及檢視表,也可以用 DDL
來修改這些物件。資料操作語言(DML)是操作資料表格上資料的語言,主要是有「新增」、「修改」、「刪除」及「查詢」的功能,
16
對應到 的語法是「 INSERT」、「UPDATE」、「DELETE」「SELECT」。
第三章 系統分析與設計本章節介紹研究使用者案例、系統功能架構、環境架構圖、軟、硬體需求、工作分配圖、工作進度甘特圖。3-1 使用者案例
圖 1 使用者案例
17
3-5 工作進度表 本組專題工作分配的進度表如下表
表 6 工作進度表時 間
項 目2012年 2012年03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
理論及工具準備分工及定時程
資料收集
程式製作
程式整合測試
書面製作
書面資料確認
上台發表註: 預期時程 實際使用時程
21
標籤一-城市圖 7選擇四大直轄市來介紹,未來希望可以新增各縣市,城市包
含新北市、臺中市、臺北市、高雄市。點擊城市會顯示目前選擇的城市。
圖 7 POST 撈資料
說明:圖 7 一開始用戶端會透過 Apache、PHP從後端 MySQL 資料庫撈資料顯示在網頁上,透過 Android 程式顯示在用戶端上。
25
景點資訊
圖 9 景點資訊說明:上圖以芳之心庭為例,如圖 9從資料庫撈資料暫定第一個欄位是景點的名稱,第二個欄位是景點的地址,第三個欄位是景點的資訊介紹,第四個欄位為地圖標籤會指引到第二個標籤地圖所在,第五個是路徑導引,會再加入一些資訊比如景點剛好是商家,可以加上商家的電話點擊可撥打、諸如此類等。
27
第五章 結論
我們團隊利用 Android 平台來開發,將開發環境安裝完成,以及 設 計 Android 手 機 前 端 要 顯 示 的 ui 介 面按鍵和文字大小屬性,GPS 的定位是使用 Android 裡的 Google map,測試前端 UI 介面是否正確,依次建立後端資料庫並且將 Android 手機程式前端與後端伺服器做連結,來達成手機前端資訊能與後端資料庫同步,且確認路徑規劃是否可行,在完成之後感覺實用性蠻高,對於現在有智慧型手機的使用者方便許多。
本專題之後還能衍生更多的城市和其他的地區風景和登入註冊介面等等,使其程式能提供更豐富的資訊與服務,來達到程式的功能完整性。
35
第六章問題與討論問題討論1.問:如何在 Linux 上啟用伺服器且驗證?答:我們查詢相關書籍以及瀏覽相關網頁,例如:鳥哥的私房菜網站得知啟用的方法。例如: /etc/init.d/Apache2 start。並透過 netstat –
tlunp 查詢有無 80 port,Apache 預設 80 port。2.問:如何把Google map套用到程式內?答:為了讓本程式的旅遊景點更精緻,本團隊決定使用有完善地圖系統的 Google map,Google map API有完善的教學,教你如何套用想要的地圖。3.問:如何在Android 用戶端取得遠端資料庫?答:透過網頁 POST 方法,Apache搭配 PHP語法將資料從MySQL
撈回網頁,再透過用戶端程式去讀取,然後顯示在畫面上。4.問:如何解決顯示在畫面的資料是亂碼?答:這個問題困擾我們團隊很久了,後來在網路上查詢相關資料,知道可能是有很多地方的問題,我們一一去排除,首先從資料庫編碼改成 Unicode 結果還是亂碼,之後再從 PHP語法修改成 Unicode,結果方法可行。
36
附錄參考文獻[1] Android 介紹 http://zh.wikipedia.org/wiki/Android%E6%AD
%B7%E5%8F%B2%E7%89%88%E6%9C%AC
[2] LAMP 介紹 http://baike.baidu.com/view/365086.htm?fromTaglist
[3] Apache HTTP Server 介紹 http://zh.wikipedia.org/wiki/Apache_HTTP_Server
[4] 南方站長 http://southmaster.com/article/pub.php?
page=red2.php&id=1762
[5] MySQL 介紹 http://zh.wikipedia.org/wiki/MySQL
[6] MySQL 介紹 http://www.soku.com.tw/MySQL/
[7] PhpMyAdmin 介紹 http://zh.wikipedia.org/wiki/PhpMyAdmin
[8] Eclipse 介紹 http://zh.wikipedia.org/wiki/Eclipse
[9] SQL 介紹 http://zh.wikipedia.org/wiki/SQL
37