第二章 開發環境及工具介紹
2.1 Android 介紹
2.1.3 Android 發展與應用
圖 2.1.3.A 2010 Android 市場市佔率
如圖 2.1.3.A,得知 Android 在 2010 年市佔率正式超越 iPhone
14 逢甲大學學生報告 ePaper(2014 年)
圖 2.1.3.B Android 系統更新時間點
如圖 2.1.3.B,可知 Android 每年會有兩次重大的版本更新。
Android 開發的軟體開發套件-Android SDK(Android Software Development),提供必要的 API 與開發工具,使用 Java 語言為主體,在 Android 平台上開發應用軟體,目前提供的功能如下:
1. 應用程式架構
在應用程式架構具備多種不同的基礎軟體元件,在開發應用程式時,直 接呼叫這些元件來使用,以節省開發應用程式的時間。
2. Dalvik 虛擬機器
Android 平台上使用的虛擬機器,雖然是用 Java 語言來開發,但是並 非標準的 Java 虛擬機器(Java Virtual Machine)。
3. 整合瀏覽器
整合瀏覽器是 Android 內建的瀏覽器,配合 Android 手機的功能,瀏 覽網頁達到更好的效果,例如:局部性的縮放網頁、觸控式操作等效果。
15 逢甲大學學生報告 ePaper(2014 年)
4. 最佳化的繪圖能力
在程式會用到的繪圖功能分為 2D 與 3D 兩個方面, Android 分別都 有提供特有的支援繪圖功能的開發。
5. SQLite 資料庫
SQLite 是開放性原始碼的資料庫,輕量性方面的設計結構是它最大的 特色,很適合在手機上使用。
6. 多媒體的支援能力
在 Android 帄台上支援多種不同的多媒體格式,例如:MPEG4、H.264、
MP3、AAC、AMR、JPG、PNG、GIF 等格式。
7. Bluetooth、EDGE、3G 及 Wi-Fi
在開發 Android 手機應用程式時,能支援的通訊硬體設備。
8. 其他手機硬體設備
開發 Android 應用程式,除了有提許多軟體上的函示庫讓開發者使用 之外,另外還有許多手機硬體設備的支援,如:Camera 相機功能、GPS 衛 星定位、電子羅盤、加速度感測裝備等等,讓開發者輕鬆地開發出豐富的 Android 應用程式。
16 逢甲大學學生報告 ePaper(2014 年)
1. Eclipse
Eclipse 是著名的跨平台開源整合式開發環境(IDE)。最初主要用來 Java 語言開發,目前亦有人透過外掛模組使其作為 Android、C++、Python、
PHP 等其他語言的開發工具。
2. Java Development Kit (JDK)
Java Development Kit (JDK) 是 Sun 公司針對 Java 開發人員發行的免 費軟體開發套件(SDK,Software development kit)。自從 Java 推出以來,
JDK 已經成為使用最廣泛的 Java SDK。
3. Android Development Tools (ADT)
Android Development Tools 是 Eclipse 開發 Android 應用程式的擴 充套件,提供許多 Android 專案與工具的整體支援,有助於除錯和開發 Android 應用程式。
4. Android SDK
Android SDk Tool 軟件開發工具包(software development kit)。被 軟件開發工程師用於為特定的軟件包、軟件框架、硬件平台、操作系統等建 立應用軟件的開發工具的集合,是 Android 專屬的軟件開發工具包。
5. Apache
Apache HTTP Server(簡稱 Apache)是 Apache 軟體基金會的一個開放 原始碼的網頁伺服器,可以在大多數電腦作業系統中執行,由於其跨平台和
17 逢甲大學學生報告 ePaper(2014 年)
安全性。被廣泛使用,是最流行的 Web 伺服器端軟體之一。
6. PHP
PHP(全稱:PHP:Hypertext Preprocessor,及「PHP:超文字預處理 器」)是一種開源的通用電腦指令碼語言,尤其適用於網路開發並可嵌入 HTML 中使用。PHP 的應用範圍相當廣泛,尤其是在網頁程式的開發上。一般 來說 PHP 大多執行在網頁伺服器上,透過執行 PHP 程式碼來產生使用者瀏覽 的網頁。
7. MySQL
MySQL 在過去由於效能高、成本低、可靠性好,已經成為最流行的開源 資料庫,因此被廣泛地應用在 Internet 上的中小型網站中。隨著 MySQL 的 不斷成熟,它也逐漸用於更多大規模網站和應用,如 Google 和 Facebook 等網站。非常流行的開源軟體組合 LAMP 中的「M」指的就是 MySQL。
8. Appserv
AppServ 整合了 Apache、MySQL 和 PHP,透過 phpMyAdmin 來管理 MySQL。
18 逢甲大學學生報告 ePaper(2014 年)
第三章 系統分析
本章將介紹我們系統的分析以及資料庫的規劃。
3.1 系統分析
3.1.1 系統架構
圖 3.1.1 系統架構圖
如圖 3.1.1,由於我們系統需要遠端伺服器來存取資料,所以我們系統可以 分為手機端與電腦端。在手機端中,使用者分為一般使用者與店家,一般使用者 可以透過手機內的逢甲美食導覽 App 來操作內部功能,若功能(如:會員中心)
19 逢甲大學學生報告 ePaper(2014 年) 搜尋」等…。系統透過 PHP 傳遞參數到遠端的 Server。當遠端 Server 有資料回覆時,會利用 PHP 將資料轉換成 JSON 再傳遞 JSON 資料至逢甲
20 逢甲大學學生報告 ePaper(2014 年)
3.1.2 系統功能描述
圖 3.1.2 使用者案例圖
如圖 3.1.2,當使用者進入本系統時,可以直接進行美食搜尋或者進入選單 頁面。本系統提供的功能如下,詳細的細部功能會在第四章做介紹:
(1) 美食天堂
使用者在目錄清單介面,點選美食天堂,右邊視窗呈現美食天堂頁面。
(2) 美食推薦
使用者在目錄清單介面,點選美食天堂,右邊視窗呈現美食推薦頁面。
(3) 我的最愛
使用者在目錄清單介面,點選美食天堂,右邊視窗呈現我的最愛頁面。
(4) 會員中心
使用者在目錄清單介面,點選美食天堂,右邊視窗呈現會員中心頁面。
(5) 系統資訊
21 逢甲大學學生報告 ePaper(2014 年)
22 逢甲大學學生報告 ePaper(2014 年)
Modify Delete
1
s historySearch
System
23 逢甲大學學生報告 ePaper(2014 年)
我的最愛到伺服器。
資料庫綱要 (Database schema)
member
Account Pwd Gender Birthday IsAdmin Store_id favorite historysearch
Version Updated_at
Food_id Add_time Key Search_time
圖 3.2.1.B 手機端資料庫綱要圖
如圖 3.2.1.B,為手機端的關聯式資料庫綱要圖。當使用者註冊會員時輸入 一些會員基本資料記錄在 member 資料表中,若使用者為店家身分,member 資料 表中的 Store_id 則會關聯到 store 的資料表的 Id 欄位;或者,當店家會員登入
24 逢甲大學學生報告 ePaper(2014 年)
25 逢甲大學學生報告 ePaper(2014 年)
26 逢甲大學學生報告 ePaper(2014 年)
(3) food 美食資料表
food 美食資料表(如表 3.2.1.C)主要是記錄所有從遠端美食伺服器下 載的全部美食資訊,讓系統不需要網路就可以為使用者進行導覽。
表 3.2.1.C food 美食資料表 /手機端
序號 欄位名稱 中文名稱 資料型態 NULL 備註 1 Id 食物編號 varchar(10) 否 Primary key
Store_id+ Type + 000 2 Name 食物名稱 varchar(16) 否
3 Price 價格 int 否
4 Rating 推薦指數 varchar(1) 否
以下為欄位介紹:
1. 「食物編號」:記錄美食的編號,方便存取資料。由店家資料表(表 3.2.2.B)中的「店家編號」與食物種類資料表(表 3.2.2.D)中的「種類 編號」所組合而成的。
2. 「食物名稱」:記錄美食的名稱。
3. 「價格」:記錄美食價格。
4. 「推薦指數」:記錄美食推薦指數,為排列美食的依據。
27 逢甲大學學生報告 ePaper(2014 年)
28 逢甲大學學生報告 ePaper(2014 年)
29 逢甲大學學生報告 ePaper(2014 年)
Modify Delete
1
30 逢甲大學學生報告 ePaper(2014 年)
如圖 3.2.2.A 為 Server 端的資料庫實體關聯圖,Server 端實體之間的關係 與手機端的實體之間的關係相同。不同的是,Server 端的 member、store、food、
favorite 實體內黑底白字的屬性是額外新增的,換句話說,在 Server 端的 member 實體中的屬性也包含手機端的 member 實體中的屬性,但反之不成立。手機端的 historySearch 與 system 實體從 Server 端中移除。
資料庫綱要 (Database schema)
member
Account Pwd Gender Birthday IsAdmin Store_id created_at updated_at OnlineTag favorite
store
Id Name Tel Address Longitude Latitude Info created_at updated_at food
Id Name Price Rating created_at updated_at food_type
Id Name
圖 3.2.2.B 伺服器資料庫綱要圖
如圖 3.2.2.B,為伺服器端的資料庫綱要圖。關聯方式與手機端的資料庫關 聯雷同。比較不一樣的是,當 Server 接收到 Client 傳送要求備份的我的最愛時,
Uid User_id Food_id Add_time
31 逢甲大學學生報告 ePaper(2014 年)
Server 會參考 member 資料表中的 Account 欄位來記錄 User_id,方便日後還原。
資料表欄位說明
32 逢甲大學學生報告 ePaper(2014 年)
33 逢甲大學學生報告 ePaper(2014 年)
34 逢甲大學學生報告 ePaper(2014 年)
Store_id+ Type + 000 2 Type 食物種類 Varchar(1) 否
35 逢甲大學學生報告 ePaper(2014 年)
2. 「種類名稱」:記錄美食種類的名稱。
36 逢甲大學學生報告 ePaper(2014 年)
第四章 系統設計
本章將介紹我們系統的設計。
4.1 使用者案例圖 (Use Case Diagram)
以下為本系統使用者案例圖的介紹:
1. 美食搜尋
圖 4.1.A 搜尋美食使用者案例圖
如圖 4.1.A 所示,使用者包括一般使用者與店家,使用者可以依照關鍵字搜 尋的動作,來達成閱覽美食資訊的目的;使用者也可以依照線上搜尋的動作,來 達成地圖檢視美食的目的。而關鍵字搜尋之後是依照條列式的清單顯示;線上搜 尋則是把美食標記在地圖上。
37 逢甲大學學生報告 ePaper(2014 年)
2. 美食資訊
圖 4.1.B 美食資訊使用者案例圖
如圖 4.1.B 所示,前往地圖、直接導行、加入最愛、移除最愛,都必須經由 美食資訊來完成,而美食資訊的來源是透過讀取資料庫裡的資料。
「前往地圖」:轉跳地圖畫面而非 Google Map 的應用程式,畫面將繪製路徑規 劃的路線,提供使用者前往方向。
「直接導行」:轉跳至 Google Map 應用程式,利用 Google App 來導航。
「加入最愛」:將美食蒐藏至我的最愛。
「移除最愛」:將美食從我的最愛移除。
38 逢甲大學學生報告 ePaper(2014 年)
3. 美食天堂
圖 4.1.C 美食天堂使用者案例圖
如圖 4.1.C 所示,美食資訊、店家資訊,可以透過「美食天堂」得到資訊。
當使用者進行閱覽美食資訊的動作時,系統將讀取 SQLite DB 來獲取相關資料。
其中,美食天堂包含分類顯示,將美食分類可以讓使用者迅速找到喜愛的食物,
其中,使用者可以透過店家資訊來達成撥打電話或地圖顯示;分類顯示可以依照 炸、烤、炒、滷、燻、煎、飲料、冰品、其他等分類。
4. 美食推薦
39 逢甲大學學生報告 ePaper(2014 年)
圖 4.1.D 美食推薦使用者案例圖
如圖 4.1.D 所示,美食資訊也可以透過「美食推薦」得到資訊,並且可以將 顯示的美食資訊做分類顯示,將美食分類方面使用者尋找。當使用者進行閱覽美 食資訊的動作時,系統將讀取 SQLite DB 來獲取相關資料。
5. 我的最愛
圖 4.1.E 我的最愛使用者案例圖
如圖 4.1.E 所示,美食資訊、店家資訊、食物種類,可以透過「美食天堂」
得到資訊。當使用者進行閱覽美食資訊的動作時,系統將讀取 SQLite DB 來獲取 相關資料。我的最愛也提供了分類顯示,將蒐藏食物做分類,方便查詢。
40 逢甲大學學生報告 ePaper(2014 年)
6. 會員中心
圖 4.1.F 會員中心使用者案例圖
如圖 4.1.F 所示,會員註冊與會員登入都必須透過會員中心來進行動作。使 用者登入會員後,可以進行修改會員資料或者會員登出;若會員身分為店家管理 者,則可以再進行新增美食與瀏覽美食的動作,其中,刪除美食與修改美食可以 從瀏覽美食動作。
7. 會員登入
圖 4.1.G 會員登入使用者案例圖
41 逢甲大學學生報告 ePaper(2014 年)
如圖 4.1.G 所示,使用者一旦觸發會員登入事件,必須從 Server 驗證登入
如圖 4.1.G 所示,使用者一旦觸發會員登入事件,必須從 Server 驗證登入