65
資訊管理系 Soyo (Android 之藍牙好友搜尋裝置) 指導教授: 萬絢 教授 組員名單: 詹聖彥 988C096 洪楷鈞 988C088 中華民國102年5月

資訊管理系 - teach.ltu.edu.t³‡管系/101學年度四技... · 芽組織也希望能在一個標準之下整合所有的無線電子短程通訊產品。 2.1.2 藍芽的發展

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

資訊管理系

Soyo (Android 之藍牙好友搜尋裝置)

指導教授: 萬絢 教授

組員名單: 詹聖彥 988C096

洪楷鈞 988C088

中華民國102年5月

嶺東科技大學

資訊管理系

So

yo

(and

roid

之藍牙好友搜裝)

中華民國一○二年五月

資訊管理系專題口試委員審定書

Soyo (Android 之藍牙好友搜尋裝置)

指導教授: 萬 絢 教授

組員名單: 詹 聖 彥 988C096

洪 楷 鈞 988C088

指導教授:

口試委員:

中 華 民 國 一 0 二 年 五 月 九 日

誌 謝

本專題報告得以順利完成,首先要感謝恩師萬絢老師細心引

導我們,耐心的協助我們,克服研究過程中所面臨的困難,給予

我們最大的協助,使本專題得以順利完成。

研究報告口試期間,感謝陳建興老師、李靜怡老師不辭辛勞

細心審閱,不僅給予我們指導,並且提供寶貴的建議,使我們的

專題內容以更臻完善,在此由衷的感謝。

最後,感謝系上諸位老師在各學科領域的熱心指導,增進商業管

理知識範疇,在此一併致上最高謝意。

詹聖彥

謹誌

洪楷鈞

嶺東科技大學資訊管理系

中華民國一○二年五月於嶺東

- I -

摘 要

近幾年,智慧型手機越發普及,雖然帶來了許多便利卻也讓

人與人之間的互動變得冷漠,無論何時何地皆可看到人們低著頭操作

手機,也造就了「低頭族」這個名詞。

雖然網路上充斥許多交友網站,但大多數皆對人與人互動沒

有絲毫幫助還會讓使用者的電腦中毒甚至個資外洩,而且市面上的交

友網站交友區域都太過於廣闊,時常認識到了卻因彼此距離太過遙遠

而無法更進一步認識。

所以我們設計搜友程式來解決人與人之間互動問題和交友網

站不足之處,搜友最大優點便是利用藍牙搜尋範圍較近的缺點來變成

優勢以限制搜尋範圍,並和熱門網站配合以達到遠近搜尋皆宜。

- II -

目 錄

頁次

摘要 ....................................................................................... I

目錄 ...................................................................................... II

表目錄 ................................................................................. IV

圖目錄 .................................................................................. V

第壹章 緒論 .......................................................................... 1

1.1 研究背景 ...................................................................... 1

1.2 研究動機 ...................................................................... 1

1.3 研究目的 ...................................................................... 1

1.4 研究架構圖 ................................................................... 2

1.5 需求塑模-事件條列式 .................................................. 3

1.6 需求塑模-環境圖 ........................................................ 3

第貮章 文獻回顧與探討 ......................................................... 4

2.1 藍芽介紹 ...................................................................... 4

2.1.1 藍芽的由來 ............................................................. 4

2.1.2 藍芽的發展 ............................................................. 4

2.1.3 藍芽的應用 ............................................................. 5

2.2 智慧型手機之定義 ........................................................ 6

2.3 何謂Android系統 .......................................................... 6

2.3.1 Android系統設計 .................................................... 7

2.3.2 Android特點 ........................................................... 8

2.4 硬體支援 .................................................................... 11

2.5 應用程式 .................................................................... 11

2.5.1 程式開發 ............................................................... 12

- III -

2.5.2 應用程式安全機制 ................................................. 13

2.6 市場使用情況 ............................................................. 13

2.6.1 市場佔有率 ........................................................... 13

2.6.2 使用者使用系統版本比例 ....................................... 15

2.7 Eclipse整合式開發環境 ............................................ 16

2.8 Java開發工具包(JDK) .......................................... 16

2.9 Android SDK ........................................................... 16

第參章 研究方法 ................................................................. 17

3.1 研究架構 ..................................................................... 17

3.2 系統需求分析 .............................................................. 18

3.2.1 開發環境 .................................................................. 18

3.2.2 開發硬體 .................................................................. 18

3.2.3 功能性需求 ............................................................... 18

3.2.4 非功能性需求 ........................................................... 18

第肆章 程式說明 ................................................................. 19

第伍章 結論 ........................................................................ 52

參考文獻 .............................................................................. 53

附錄A ................................................................................. 54

A.1 主程式 .................................................................... 54

A.1.1 FullscreenActivity.java ......................................... 54

A.1.2 SecondActivityActivity.java ................................. 54

- IV -

表目錄

表1.1 需求塑模表 ................................................................... 3

表2.1 用戶比例表 ................................................................. 15

- V -

圖目錄

圖1.1 研究架構圖 ................................................................... 2

圖1.2 系統環境圖 ................................................................... 3

圖2.1 用戶比例圖 ................................................................. 15

圖3.1 Soyo程式流程圖 .......................................................... 17

圖4.1 搜友Logo圖示 ............................................................. 19

圖4.2 Soyo歡迎畫面 ............................................................. 20

圖4.3 伸縮式按鈕 ................................................................. 21

圖4.4 點擊返回鍵 ................................................................. 22

圖4.5 連續點擊畫面 .............................................................. 23

圖4.6 點擊Soyo按鈕 ............................................................. 24

圖4.7 點擊”否”程式關閉 .................................................... 25

圖4.8 請輸入訊息-未輸入 ...................................................... 26

圖4.9 請輸入訊息-已輸入 ...................................................... 27

圖4.10 請輸入訊息-含有” |”符號 ............................................. 28

圖4.11 問題回報 ................................................................... 29

圖4.12 點擊Menu鍵 .............................................................. 30

圖4.13 個人名稱-未輸入名稱 ................................................. 31

圖4.14 個人名稱-已輸入名稱 ................................................. 32

圖4.15 個人名稱-含有” |”符號 ................................................ 33

圖4.16 個人名稱-點擊”確定”按鈕 .......................................... 34

圖4.17 偵測時間 ................................................................... 35

圖4.18 偵測時間-點擊”1分鐘”按鈕 ........................................ 36

圖4.19 背景顏色 ................................................................... 37

圖4.20 背景顏色-點擊”red”按鈕 ............................................ 38

- VI -

圖4.21 關於我們 ................................................................... 39

圖4.22 不可被偵測 ............................................................... 40

圖4.23 不可被偵測-點擊”確定”按鈕 ....................................... 41

圖4.24 開始搜尋 ................................................................... 42

圖4.25 搜尋結果 ................................................................... 43

圖4.26 點擊第一筆資料 ......................................................... 44

圖4.27 長按第一筆資料 ......................................................... 45

圖4.28 點擊”連結”按鈕-不是網址 .......................................... 46

圖4.29 長按第二筆資料 ......................................................... 47

圖4.30 點擊”連結”按鈕-是網址 ............................................. 48

圖4.31 點擊”刪除”按鈕 ......................................................... 49

圖4.32 刪除清單 ................................................................... 50

圖4.33 刪除清單-點擊”確定”按鈕 .......................................... 51

- 1 -

第壹章 緒論

1.1 研究背景

現在是高科技時代,幾乎人手一支智慧型手機,智慧型手機除了接聽

電話、傳遞郵件之外,隨著臉書的興起近幾年最熱門的Application應用程

式也就是大家說的App應用程式,也相繼推出不少交友軟體的APP。但是市

面上的交友軟體卻沒有一套解決搜尋範圍太廣泛這跟本問題。

1.2 研究動機

隨著智慧型手機的普及,人與人之間互動頻率逐漸減少,雖然市面上

出現不少交友軟體,但都有其通病即搜尋範圍太過廣泛,所以我們尋求一

套交友軟體不僅可以將搜尋範圍鎖定在自己生活圈,還可以與網站相輔相

成,為此「搜友」誕生。

1.3 研究目的

首先先來介紹「藍芽」,藍芽是一種可應用在電腦、行動電話、及其

他家電用品上的無線傳輸技術,使用範圍在距離10公尺以內。利用藍芽搜

尋範圍小的特性,搜尋周遭的人即生活圈,取得個人資料接著透過網路連

接到對方主頁並加入好友。

1.與交友網站做結合,彌補其所不足。

2.近距離交友,人與人間的認識更加容易。

3.訊息之間的傳遞例如:URL、地址、狀態等。

4.「走到哪,搜到哪!」

- 2 -

1.4 研究架構圖

本研究共分為五章,各章內容如下所述。

第一章 緒論:說明研究背景、研究動機、研究目的、研究架構。

第二章 文獻探討:介紹android系統和藍牙歷史並和文獻做整理,使研究

人員可以更深入了解。

第三章 研究方法:包含版面設計、主程式設計、 logo設計等。

第四章 程式說明:介紹Soyo程式之功能流程與畫面。

第五章 結論:總結Soyo程式之優點與未來趨勢。(如圖1.1)

圖1.1 研究架構圖

緒論

文獻探討

研究方法

程式說明

結論

- 3 -

1.5 需求塑模-事件條列式

表1.1 需求塑模表

描述性綱目 事件條列式

1.讓使用者A填寫個人名稱以及填寫個

人狀態,等待被其他裝置搜尋。

使用者A+填寫+個人名稱

使用者A+填寫+狀態

2. 使用者B搜尋到的藍牙裝置可以選

擇做連結或是刪除。

使用者B+搜尋+藍牙裝置

使用者B+連結+藍牙裝置

使用者B+刪除+藍牙裝置

1.6 需求塑模-環境圖

圖 1.2 系統環境圖

使用者A 使用者B

Soyo

使用者A+填寫+個人名稱

使用者A+填寫+狀態

使用者A+開啟+被偵測

使用者B+搜尋+藍牙裝置

使用者B+連結+藍牙裝置

使用者B+刪除+藍牙裝置

- 4 -

第貳章 文獻回顧與探討

2.1 藍芽介紹

藍芽是全球性無線連線的實際基准,它使各種數位設備擺脫了電纜的

束縛。 藍芽科技基于低功耗的短程無線電連線,這種連線運行于在全球范

圍公開的 2.4G赫茲ISM波段上。因此藍芽科技在全球通用。

當兩個裝備藍芽的設備相距10米之內時,它們就可以建立起相互之間

的連線。並且, 由於藍芽使用了基於無線電的連線,它不必為了相互通訊

而設定可見的有線連線。 運用獨特的安全機碼和強健的加密,可靠性和保

密性也得到了保証。參考文獻(4)

2.1.1 藍芽的由來

關於藍芽(Bluetooth)這個名字,倒是有個有趣的起源:西元十世紀

時,挪威有個維京國王Harald (哈拉德藍芽;Blatand為丹麥文字,相當英

文的bluetooth) II (940-981),統一了丹麥(Denmark and Norway),

成為維京人的英雄‧Ericsson將其新的無線電介面的Project命名為「藍

牙」(Bluetooth),大概是希望藉由 Bluetooth 統一介面規格,成為一個

世界標準,而「藍牙」譯名變「藍芽」或許是為了看起來比較文雅吧!藍

芽組織也希望能在一個標準之下整合所有的無線電子短程通訊產品。

2.1.2 藍芽的發展

藍芽是一種可應用在電腦、行動電話、及其他家電用品上的無線傳輸

技術。藍芽(一種晶片)的運作原理是在2‧45 GHz的頻帶上傳輸,除了

數位資料外,也可以傳送聲音。每個藍芽技術連接裝置都具有根據 IEEE

802標準所制定的48-bit地址;可以一對一或一對多來連接,傳輸範圍最遠

在10公尺。藍芽技術不但傳輸量大,每秒鐘可達1MB,同時可以設定加密

保護,每分鐘變換頻率一千六百次,因而很難截收,也不受電磁波干擾。

1994年間瑞典Ericsson有個專案Project,主要是發展一種低功率的無線電

- 5 -

介面,以取代原有行動電話(Mobile Phone)與其週邊附件(handset、PC

cards、 desktop devices)間繁雜的連線。 1998 年 2月由Ericsson(易利

信)、Nokia(諾基亞)、 IBM、 Intel(英特爾)及Toshiba(東芝)等含

蓋了通信、 電子、電腦三大領域的五大廠商,共同成立一個專門的研究小

組 -藍芽特益 /共同推廣團體(Bluetooth Special Interest Group;SIG),

共同發展此種低功率、短距離的無線電通信技術,而將這種新的無線電通

信技術命名為「藍芽」(Bluetooth)技術。至1999年6月止 SIG 共有751

個會員‧其中包括了Compaq、Dell、Motorola、3Com、HP、Lucent、TI

及Sumung等世界性廠商,成員們並同意制定一套免權利金的標準以降低

Bluetooth技術成本並使之快速普及‧台灣也於88/4/13成立無線通訊聯盟積

極參與Bluetooth相關產品開發計劃已有多家廠商加入包括宏碁、神通、英

業達、廣達、仁寶、華碩、明碁、羅技、致伸、華邦、工研院電通所及資

策會等。參考文獻(1)

2.1.3藍芽的應用

(1)行動電話和免提裝置之間的無線通訊,這也是最初流行的應用。

(2)特定距離內電腦間的無線網路。

(3)電腦與外設的無線連線,如:滑鼠、耳麥、印表機等。

(4)藍牙裝置之間的檔案傳輸。

(5)傳統有線裝置的無線化,如:醫用器材、GPS、條形碼掃描器、交

管裝置。

(6)數個乙太網之間的無線橋架。

(7)7代家用遊戲機的手柄,PS3、PSP Go、Nitendo Wii

(8)依靠藍牙支援,使PC或PDA能透過手機的數據機實作撥號上網。

- 6 -

(9)即時定位系統 (RTLS),應用"節點"或"標籤"嵌入被跟蹤物品中讀卡

器從標籤接收並處理無線訊號以確定物品位置。參考文獻(1)

2.2 智慧型手機之定義

「智慧型手機」這個說法主要是針對「功能手機」(Feature phone)

而來的。

智慧型手機能夠顯示與個人電腦所顯示出來一致的正常網頁,它具有

獨立的操作系統以及良好的用戶介面,它擁有很強的應用擴展性、能方便

隨意地安裝和刪除應用程式;智慧型手機擁有超大高畫質觸摸屏,能隨時

調用鍵盤來進行觸摸手寫,能進行多任務操作,並且擁有強大的多媒體、

郵件、上網功能,能完全替代像MP3、MP4和PDA這樣的傳統便攜式設

備;智慧型手機能替代個人電腦處理辦公事務和其他事務,它能與網路保

持時時地無縫連接,能隨時切入網路,並且能與電腦、筆記本電腦等其他

設備同步資料。

智慧型手機的新定義使得智慧型手機與傳統功能手機能完全區分開

來,不再是之前的模糊關係。同樣,早期的蘋果 iOS系統與微軟的Windows

Phone 7不支援智慧型手機應有的多任務處理,是否為智慧型手機系統有許

多爭議。但隨後蘋果公司發布的 iOS4支援多任務操作;而微軟也發布了支

援多任務的Windows Phone 7.5至此兩者都能認定為智慧型手機系統。

智慧型手機有別普通帶有觸控式螢幕的手機。一般普通帶有觸控式螢

幕的手機都使用的是生產廠商自行開發的封閉式作業系統,加上JAVA帄台

來獲得擴展,所能實作的功能非常有限。參考文獻(2)

2.3 何謂Android系統

Android(中文俗稱為「安卓」)是一個以Linux為基礎的半開放原始

碼作業系統,主要用於行動設備,由Google成立的Open Handset Alliance

(OHA,開放手機聯盟)持續領導與開發中。

- 7 -

Android系統最初由安迪·魯賓(Andy Rubin)開發製作,最初主要支

援手機,於2005年8月被美國科技企業Google收購。2007年11月,Google

與84家硬體製造商、軟體開發商及電信營運商成立開放手持設備聯盟來共

同研發改良Android系統,隨後,Google以Apache免費開源許可證的授權

方式,發布了Android的源代碼。讓生產商推出搭載Android的智慧型手

機,Android作業系統後來更逐漸拓展到帄板電腦及其他領域上。

Google透過官方網上商店帄台Google Play,提供應用程式和遊戲供用

戶下載,截止至2012年6月,Google Play商店擁有超過60萬個官方認證應

用程式。同時用戶亦可以通過第三方網站來下載。

2010年末數據顯示,僅正式推出兩年的Android作業系統在市場佔有率

上已經超越稱霸逾十年的諾基亞Symbian系統,成為全球第一大智慧型手機

作業系統。參考文獻(3)

2.3.1 Android系統設計

Android作業系統的內核屬於Linux內核的一個分支,具有典型的Linux

週期和功能,除此之外,Google為了能讓Linux在移動設備上良好的執行,

對 其 進 行 了 修 改 和 擴 充 。 Android 去 除 了 Linux 中 的 本 地 X Window

System,也不支援標準的GNU庫,這使得Linux帄台上的應用程式移植到

Android 帄台上變得困難。 2008 年, Patrick Brady 於 Google I/O 演講

「Anatomy & Physiology of an Android」,並提出的Android HAL架構

圖。HAL以*.so檔的形式存在,可以把Android framework與Linux kernel

隔開,這種中介層的方式使得Android能在移動設備上獲得更高的執行效

率。這種獨特的系統結構被Linux核心開發者Greg Kroah-Hartman和其他內

核維護者稱讚。Google還在Android的內核中加入了自己開發製作的一個名

為「wakelocks」的移動設備電源管理功能,該功能用於管理移動設備的電

池效能,但是該功能並沒有被加入到Linux內核的主線開放和維護中,因為

Linux內核維護者認為Google沒有向他們展示這個功能的意圖和代碼。

- 8 -

2010年2月3日,由於Google在Android內核開發方面和Linux社區方面

開發的不同步,Linux核心開發者Greg Kroah-Hartman將Android的驅動程

式從 Linux 核心「狀態樹」(「 staging tree」)上除去。 2010年 4月,

Google宣布將派遣 2名開發人員加入Linux內核社區,以便重返Linux內

核。2010年9月,Linux內核開發者Rafael J . Wysocki添加了一個修復程

式,使得Android的「wakelocks」可以輕鬆地與主線Linux內核合併。參考

文獻(3)

2.3.2 Android特點

當前的Android作業系統具有以下幾個功能:

(1)顯示佈局

Android作業系統支援更大的解析度,VGA,2D顯示,3D顯示都給予

OpenGL ES 2.0標準規格,並且支援傳統的智慧型手機。

(2)數據存儲

Android作業系統內置SQLite小型關聯式資料庫管理系統來負責存儲數

據。

(3)網路

Android作業系統支援所有的網路制式,包括GSM/EDGE、 IDEN、

CDMA、EV-DO、UMTS、Bluetooth、Wi-Fi、LTE、NFC和WiMAX。

(4)訊息

作為原設計給智慧型手機使用的作業系統,Android作業系統原生支援

簡訊和郵件,並且支援所有的雲端訊息和服務器訊息。

(5)語言

Android作業系統支援多語言。

- 9 -

(6)瀏覽器

Android作業系統中內置的網頁瀏覽器基於WebKit內核,並且採用了

Chrome V8引擎。在Android 4.0內置的瀏覽器測試中,HTML5和Acid3故

障處理中均獲得了滿分,並且於2.2版及之後能原生支援Flash。

(7)支援Java

雖然Android作業系統中的應用程式大部分都是由 Java編寫的,但是

Android卻是以轉換為Dalvik executables 的檔案在Dalvik虛擬機上執行

的。由於Android中並不自帶Java虛擬機,因此無法直接執行Java程式。不

過Android帄台上提供了多個Java虛擬機供用戶下載使用,安裝了Java虛擬

機的Android系統可以執行J2ME的程式。

(8)媒體支援

Android作業系統本身支援以下格式的音訊 /視頻 /圖片媒體:WebM、

H.263, H.264 (in 3GP or MP4 container)、MPEG-4 SP、AMR, AMR-WB

(in 3GP container)、AAC, HE-AAC (in MP4 or 3GP container)、MP3、

MIDI、Ogg Vorbis、FLAC、WAV、 JPEG、PNG、GIF、BMP。如果用

戶需要播放更多格式的媒體,可以安裝其他第三方應用程式。

(9)流媒體支援

Android作業系統支援RTP/RTSP(3GPP PSS, ISMA)的流媒體以及

( HTML5 <video> )的流媒體,同時還支援Adobe的 Flash ,在安裝了

RealPlayer之後,還支援蘋果公司的流媒體。

(10)硬體支援

Android作業系統支援識別並且使用視頻 /照片攝像頭,多點電容 /電阻

觸摸屏,GPS,加速計,陀螺儀,氣壓計,磁強計,鍵盤,鼠標,USB

Disk,專用的遊戲控制器,體感控制器,遊戲手柄,藍牙設備,無線設

- 10 -

備,感應和壓力感測器,溫度計,加速2D位位塊傳輸(硬體方向,縮放,

像素格式轉換)和3D圖形加速。

(11)多點觸控

Android支援原生的多點觸摸,在最初的HTC Hero智慧型手機上即有

這個功能。該功能是核心級別(為了避免對蘋果公司的觸摸屏技術造成侵

權)。

(12)藍牙

Android 支 援 A2DP , AVRCP ,發送檔案( OPP ),存取電話簿

(PBAP),語音撥號和發送智慧型手機之間的聯繫。同時支援鍵盤,滑鼠

和操縱桿(HID)。

(13)多工處理

Android作業系統支援原生的多工處理。

(14)語音功能

除了支援普通的電話通話之外,Android作業系統從最初的版本開始就

支援使用語音操作來使用Google進行網頁搜尋等功能。而從Android OS

v2.2開始,語音功能還可以用來輸入文字、語音導航等功能。

(15)無線共享功能

Android作業系統支援用戶使用本機充當「無線路由器」,並且將本機

的網路共享給其他智慧型手機,其他機器只需要通過WiFi尋找到共享的無

線熱點,就可以上網。而在Android OS v2.2版本之前的作業系統則需要通

過第三方應用或者其他定製版系統來實現這個功能。

(16)截圖功能

從Android OS v4.0版本開始,Android作業系統便支援截圖功能,該

功能允許用戶直接抓取智慧型手機螢幕上的任何畫面,用戶還可以通過編

- 11 -

輯功能對截圖進行處理,還可以通過藍牙 /E-mail/微博 /共享等方式發送給

其他用戶或者上傳到網路上,也可以拷貝到電腦中。參考文獻(3)

2.4 硬體支援

由於Android作業系統的開放性和可移植性,它可以被用在大部分電子

產品上。包括:智慧型手機,上網本,帄板電腦,個人電腦,筆記本電

腦,電視,機頂盒,MP3播放器,MP4播放器,掌上遊戲機,家用主機,

電子手錶,電子收音機,耳機,汽車設備,導航儀,CD機,VCD機,

DVD機,機頂盒以及其他設備。

Android作業系統大多搭載在使用了ARM架構的硬體設備上。但是同

樣也有支援X86架構的Android作業系統,比如Google的Google TV就是使

用一個特別定製的X86架構版本的Android操作系統。

同樣,蘋果公司的 iOS設備,比如iPhone、iPod Touch以及iPad產品都

可以安裝Android作業系統,並且可以通過雙系統啟動工具OpeniBoot或者

iDroid 來執行 Android 作業系統。微軟的 Windows Mobile 、 Windows

Phone產品也一樣可以。另外Android亦已成功移植到搭載WebOS系統HP

TouchPad以及搭載Meego系統的Nokia N9等裝置。

世界上第一部真正意義上使用Android作業系統的設備是2008年10月

22日發布的HTC Dream。

Android可以像用電腦上網一樣,使用任何服務。Android對手有蘋果

公司的iOS作業系統及諾基亞的Symbian及Microsoft的Windows Phone 7及

RIM使用的BlackBerry OS系統。參考文獻(3)

2.5 應用程式

Google Play,前身為Android Market,目前沒有規範的中文名,中國

大陸地區大多使用「電子市場」以及「Google市場」來稱呼,因Android

- 12 -

Market的LOGO像菜市場用的袋子,所以部分中國使用者又稱之為「菜市

場」。

2009年2月,Google推出Android Market線上應用程式商店,使用者

可在該帄台網頁尋找、購買、下載及評級使用智慧型手機應用程式及其他

內容。第三方軟體開發商和自由開發者則可以通過Android Market發布其

開發的應用程式。截止至2011年10月,Android Market上已有超過30萬個

應用程式,並且在2011年12月,Android Market上的應用程式下載量超過

100億次。同時,全球已有1億3千萬部Android設備在Android Market即現

在的Google Play上下載過軟體。

只有通過Google許可並且認證的廠家才能在其產品設備上安裝Google

服務框架和Google Play。同時受到部分地區和國家的政策影響,Google根

據部分地區和國家的政策對Google Play上的內容進行了過濾,因此各地區

和國家看到的內容不一樣。此外,受到部分地區和國家的電信運營商的影

響,Google Play在部分地區和國家可能不可使用。

Google Play內的付費程式在許多國家與地區內提供,如美國、英國、

瑞典、德國、斯里蘭卡、泰國、越南、香港、台灣等。由於受到Google結

束中國事件影響,目前Google Play的服務還沒有擴展到中國大陸地區,但

大陸用戶仍可通過國際信用卡和相關的免費軟體來完成購買。需要注意的

是,通過這種方法購買的軟體可能不會得到當地承認的發票(Invoice)。

除了Google的Google Play之外,還有其他公司的應用程式市場,如亞

馬遜公司的Amazon Appstore,它們都提供在線的APK程式的安裝和下

載。參考文獻(3)

2.5.1程式開發

在 早 期 的 Android 應 用 程 式 開 發 中 , 通 常 通 過 在 Android SDK

(Android軟體開發包)中使用Java作為編程語言來開發應用程式。開發者

亦可以通過在Android NDK(Android Native開發包)中使用C語言或者

C++語言來作為編程語言開發應用程式。同時Google還推出了適合初學者

編程使用的Simple語言,該語言類似微軟公司的Visual Basic語言。此外,

- 13 -

Google還推出了Google App Inventor開發工具,該開發工具可以快速地構

建應用程式,方便新手開發者。

2.5.2 應用程式安全機制

Android作業系統使用了沙箱(sandbox)機制,所有的應用程式都會

先被簡單地解壓縮到沙箱中進行檢查,並且將應用程式所需的權限送出給

系統,並且將其所需權限以列表的形式展現出來,供用戶檢視。例如一個

第三方瀏覽器需要「連接網路」的權限,或者一些軟體需要撥打電話,發

送簡訊等權限。用戶可以根據權限來考慮自己是否需要安裝,用戶只有在

同意了應用程式權限之後,才能進行安裝。

2.6 市場使用情況

2.6.1 市場佔有率

2009年第二季度,根據市場研究公司Canalys的數據顯示,Android佔

據全球智慧型手機作業系統市場2.8%的份額,這個數字在2010年第四季度

的全球份額中增長到了 33%,Android作業系統也因此擊敗了諾基亞的

Symbian系統成為了全球第一大智慧型手機作業系統。2012年5月,根據市

場調查公司的數據顯示,Android作業系統在全球智慧型手機作業系統中的

份額已經過半,達到了60%,全球有一半的智慧型手機使用Android作業系

統。(如圖2.1)

2010年5月的數據顯示,Android作業系統在2010年第一季度的銷量超

過了對手iOS帄台,成為美國最大的智慧型手機作業系統。

根據本土市場研究公司 ComScore 的數據顯示, 2009 年 11 月時,

Android在美國的智慧型手機作業系統市場的佔有率為5.2%,在2010年2月

時,這個數字變成了9.0%,而在2010年第三季度末時,Android已經佔據

了美國市場的21.4%的份額。截止至2011年6月,Google表示,每日通過

Google服務器啟用的Android設備達到了55萬部,並且以每週4.4%的速度

增長。2011年8月1日,Canalys的數據顯示,Android已佔據美國48%的智

慧型手機市場佔有率。2011年10月13日,Google表示,全球市場上有1.9

- 14 -

億部Android設備通過Google認證,而在2011年11月16日,全球市場上已

有2億部Android設備通過Google認證。但是,搭載Android作業系統的帄

板電腦卻只有1.9%的份額,只有380萬Android蜂巢帄板被賣出,遠遠低於

蘋果公司的 iPad的銷量。2012年6月,Google在2012 Google I/O大會上表

示全球市場上有4億部Android設備被啟動,每天啟動一百萬台。(如表2.1)

參考文獻(3)

- 15 -

2.6.2 使用者使用系統版本比例

Android作業系統版本的用戶比例(2012年11月1日)

圖2.1 用戶比例圖

表2.1 用戶比例表

版本名稱 API level 用戶分佈

4.2 Jelly Bean 雷根糖 17

4.1.x Jelly Bean 雷根糖 16 2.7%

4.0.xIce Cream Sandwich 冰淇淋三明治 14-15 25.8%

3.x.x Honey Comb 蜂巢 11-13 1.8%

2.3.x Ginger Bread 薑餅人 9-10 54.2%

2.2 Froyo 凍酸奶 8 12%

2.1 Eclair 閃電泡芙 7 3.1%

1.6 Donut 甜甜圈 4 0.3%

1.5 Cup Cake 紙杯蛋糕 3 0.1%

截止至2012年11月1日,不同的Android作業系統版本的用戶比例。

- 16 -

2.7 Eclipse整合式開發環境

Eclipse 是著名的跨帄台開源整合式開發環境(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 和資料庫開發。外掛程式架構能夠支持將任意

的擴展加入到現有環境中,例如配置管理,而決不僅僅限於支持各種程式

語言。

Eclipse的設計思想是:一切皆外掛程式。Eclipse核心很小,其它所有功能

都以外掛程式的形式附加於Eclipse核心之上。Eclipse基本核心包括:圖形

API(SWT/Jface),Java開發環境外掛程式(JDT),外掛程式開發環境

(PDE)等。參考文獻(5)

2.8 Java開發工具包(JDK)

作為 java 語言的 SDK,普通使用者並不需要安裝 JDK 來執行 java 程

式,而只需要安裝JRE(Java Runtime Environment)。而程式開發者必頇安

裝 JDK 來編譯、偵錯程式。

2.9 Android SDK

Android軟體開發工具包提供完整的Android API、Android應用程式除錯工

具及Android模擬器。參考文獻(13)

- 17 -

第參章 研究方法

3.1 研究架構

首先在進入首頁之後會詢問是否要開啟藍牙,如果否的話就離開

程式;如果是的話則進入主畫面並且可以選擇”個人名稱”、”偵

測時間”、”背景顏色”、”關於我們”、”可被偵測”、”開啟搜

尋”、”刪除清單”等選項。選擇”開啟搜尋”後系統便會自動開始

搜尋附近藍牙裝置,進而連結達到交流的目的。(如圖3.1)

3.1 Soyo程式流程圖

- 18 -

3.2 系統需求分析

3.2.1 開發環境

(1)Eclipse (用以開發程式環境)

(2)Sib Icon Studio (logo製作軟體)

3.2.2開發硬體

(1)AMD Athlon(tm) II X2 245 1.68 GHz

(2)RAM 3.25 GB

(3)顯卡NVIDIA GeForce 9500GT 1G

3.2.3功能性需求

(1)系統可藉由詢問是否要開啟藍牙,而決定是否進入主程式畫面。

(2)設計”個人名稱”選項供使用者修改個人名稱,讓其他始用者搜

尋到該名稱。

(3)設計”偵測時間” 供使用者更改可被偵測的時間。

(4)設計”背景顏色” 供使用者依個人喜好更改背景顏色。

(5)設計”關於我們” 供使用者了解製作軟體之作者及聯絡方式。

(6)設計”可被偵測” 供使用者點擊是否要被偵測。

(7)設計”開啟搜尋” 供使用者點擊後開始搜尋附近藍牙裝置進而可

以進一步做連結。

(8)設計”刪除清單” 供使用者刪除所有已搜尋到的藍牙裝置清單。

3.2.4非功能性需求

(1)簡易上手

(2)畫面親和

(3)執行速度快

- 19 -

第肆章 程式說明

這是我們製作完成的Soyo程式Logo畫面。(如圖4.1)

圖4.1 搜友Logo圖示

- 20 -

進入軟體後會出現”Welcome Soyo”背景。(如圖4.2)

圖4.2 Soyo歡迎畫面

- 21 -

點擊畫面以繼續軟體之後的步驟,點擊後會彈跳出”Soyo”伸

縮式按鈕。(如圖4.3) 之後再點此按鈕即可進入主畫面。

圖4.3 伸縮式按鈕

- 22 -

點擊左下角返回鍵即會彈跳出AlertDialog詢問是否確定離開

的訊息。(如圖4.4)

圖4.4 點擊返回鍵

- 23 -

如果連續點擊畫面則會彈出訊息”不要一直戳我”。(如圖4.5)

圖4.5 連續點擊畫面

- 24 -

承(圖4.3),點擊”Soyo”伸縮式按鈕後,即會詢問你是否允

許開啟藍牙。 (如圖4.6)

圖4.6 點擊Soyo按鈕

- 25 -

承(圖4.6),如果按否則會跳出軟體畫面。(如圖4.7)

圖4.7 點擊”否”程式關閉

- 26 -

承(圖4.6),如果按”是”則會進入主畫面並彈出視窗”請輸入

訊息”。(如圖4.8)

圖4.8 請輸入訊息-未輸入

- 27 -

輸入訊息後”確定”按鈕才能點擊。(如圖4.9)

※此目的也是為了不讓使用者以空白當作被搜尋時的狀態達到真

正使用此交友軟體的意義。

圖4.9 請輸入訊息-已輸入

- 28 -

訊息中含有” |”符號確定按鈕便不能點擊。(如圖4.10)

※此為程式設計上的區分方式。

圖4.10 請輸入訊息-含有” |”符號

- 29 -

(承圖4.10)輸入完訊息並按下”確定”按鈕後彈出問題回報並

正式進入主畫面。(如圖4.11)

圖 4.11 問題回報

- 30 -

點擊Menu鍵執行結果即會出現個人名稱、偵測時間、背景

顏色、關於我們、離開等五個選項。(如圖4.12)

圖 4.12 點擊Menu鍵

- 31 -

承(圖4.12)點擊Menu按鈕後並點擊個人名稱即會彈出”請輸

入名稱”視窗(如圖4.13),未頇輸入名稱”確定”按鈕不能點擊。

圖4.13 個人名稱-未輸入名稱

- 32 -

承(圖4.13),輸入完名稱後確定按鈕才可以點擊。 (如圖4.14)

圖4.14 個人名稱-已輸入名稱

- 33 -

同(圖4.10) 名稱中含有” |”符號確定按鈕便不能點擊。(如圖

4.15)

圖4.15 個人名稱-含有” |”符號

- 34 -

輸入完個人名稱之後,畫面會自動顯示”名稱變更為:”字

樣,方便使用者確認是否為自己所輸入的名稱。(如圖4.16)

圖4.16 個人名稱-點擊”確定”按鈕

- 35 -

承(圖4.12)並點擊偵測時間後即會彈出”被偵測時間”可以讓

使用者選擇可被偵測的時間。(如圖4.17)

圖4.17 偵測時間

- 36 -

承(圖4.17),假如選擇”1分鐘”則畫面會自動顯示”1分鐘”字

樣,方便讓使用者確認是否為所選擇的時間。(如圖4.18)

圖4.18 偵測時間-點擊”1分鐘”按鈕

- 37 -

承(圖4.12)並點擊背景顏色後,總共有5種顏色可供使用者

做選擇。(如圖4.19)

圖5.19 背景顏色

- 38 -

承(圖4.19),點擊”red”按鈕後的畫面。(如圖4.20)

圖4.20 背景顏色-點擊”red”按鈕

- 39 -

承(圖4.12)並點擊關於我們。(如圖4.21)

※讓使用者了解軟體作者以及聯絡方式。

圖4.21 關於我們

- 40 -

點擊”不可被偵測”按鈕會彈跳出”藍牙權限要求”詢問是否允

許開放被偵測。(如圖4.22)

圖4.22 不可被偵測

- 41 -

承(圖4.22) 點擊”確定”按鈕時間將開始倒數。

圖4.23 不可被偵測-點擊”確定”按鈕

- 42 -

點擊”開始搜尋”按鈕後會顯示”搜尋中…”並開始進行藍牙裝

置搜尋。(如圖4.24)

圖4.24 開始搜尋

- 43 -

搜尋到其他藍牙裝置的畫面。(如圖4.25)

圖4.25 搜尋結果

- 44 -

點擊第一筆資料彈出訊息告知。(如圖4.26)

※方便使用者確認為所選擇的項目。

圖4.26 點擊第一筆資料

- 45 -

點擊第一筆資料並長按會彈出訊息,可以選擇”連結”或是”

刪除”該筆資料。(如圖4.27)

圖4.27 長按第一筆資料

- 46 -

點擊”連結”按鈕判定是否為URL,如果不是的話則會出現”

不是網址”。(如圖4.28)

圖4.28 點擊”連結”按鈕-不是網址

- 47 -

點擊第二筆資料並長按會彈出訊息,可以選擇”連結”或是”

刪除” 該筆資料。(如圖4.29)

圖4.29 長按第二筆資料

- 48 -

點擊”連結”按鈕判定是否為URL,如果正確則會自動連結該

URL。(如圖4.30)

圖4.30 點擊”連結”按鈕-是網址

- 49 -

承(圖4.29),點擊”刪除”按鈕則刪除第二筆清單。 (如圖4.31)

圖4.31 點擊”刪除”按鈕

- 50 -

點擊”刪除清單”按鈕則會彈出訊息視窗詢問是否刪除。(如

圖4.32)

圖4.32 刪除清單

- 51 -

承(圖4.32),如果點擊”確定”按鈕則刪除全部已搜尋到的藍

牙裝置。(如圖4.33)

圖4.33 刪除清單-點擊”確定”按鈕

- 52 -

第伍章 結論

Soyo程式正如其名以搜尋好友為主,與目前市面上交友程

式最大不同在於是透過藍牙搜尋而非網際網路。將藍牙搜尋範圍

僅數十公尺之缺點轉為優點藉以縮小交友圈,以免即使認識了也

不會有所來往之通病,並且適用於任何機型甚至是沒有搜友程式

也可透過手機內建之藍牙裝置使用更不需開啟網路。除此之外

Soyo也可以傳遞URL、地址、心情、公告等等,傳遞URL也是

其最大賣點,試著回想看看現今網路如此普及,但卻沒有一套軟

體做到讓URL在日常生活中自由地傳遞,只能透過電腦上的搜尋

列或是廣告連結,著實不便也不容易達到宣傳效果,但透過

Soyo程式的話情況就大不同了,每一台手機都是一個活體廣

告,比花大筆資金租看板來得有效率多了!因此Soyo將成為未

來趨勢。

- 53 -

參考文獻

(1)藍芽科技

http://neuron.csie.ntust.edu.tw/homework/93/csie_introduction/homework

1/b9315032/BlueTooth.htm

(2)智慧型手機 維基百科

http://zh.wikipedia.org/zh-

tw/%E6%99%BA%E8%83%BD%E6%89%8B%E6%9C%BA

(3)Android 維基百科

http://zh.wikipedia.org/zh-tw/Android#.E5.91.BD.E5.90.8D.E7.94.B1.E4.BE.86

(4)NOKIA 主頁>科技>藍芽

http://www.asia.forum.nokia.com/chinese/tch/main/1,,1_43,00.html

(5) Eclipse 3.5 及中文化

http://www.plays.com.tw/wordpress/?p=657

(6) Android 开发之蓝牙(Bluetooth)操作(二)--修改本机蓝牙设备的可见性

http://blog.csdn.net/t12x3456/article/details/7865690

(7) Android 中文 API (69) —— BluetoothAdapter[蓝牙] - 农民伯伯 - 博客园

http://www.cnblogs.com/over140/archive/2010/12/21/1912460.html

(8) Ken Yang 筆記 Android Bluetooth API

http://blog.kenyang.net/2012/07/android-bluetooth-api.html

(9) Android 中的事件傾聽者 (EventListener) - 陳鍾誠的網站

http://ccckmit.wikidot.com/ga:eventlistener

(10) AndroidMenu - androidbmi - 加入選單(Menu)

http://code.google.com/p/androidbmi/wiki/AndroidMenu

(10) Android 學習筆記 - 建立選單(Menu)

http://cooking-java.blogspot.tw/2010/02/android-menu.html

(11) Android learning- Bluetooth (四)

http://kidheart-android.blogspot.tw/2011/10/finding-devices.html

(12) Android 学习笔记之 AlertDialog - OPEN 开发经验库

http://www.open-open.com/lib//view/open1328713675874.html

- 54 -

附錄A

A.1 主程式

A.1.1 FullscreenActivity.java

/ /顯示按鍵

mSystemUiHider .show();

/ /隱藏按鍵

mSystemUiHider .hide() ;

/ /判斷是否開啟藍芽

mBluetoothAdapter . isEnabled()

/ / 發出一個 intent去開啟藍芽

ACTION_REQUEST_ENABLE

/ /下一頁

Intent myIntent = new Intent( this, SecondActivity.class) ;

star tActivi ty(myIntent) ;

/ /連按十次

i f( i%10 == 0){

Toast .makeText(FullscreenActivi ty. this, "不要一直戳我><",

Toast .LENGTH_SHORT).show();

}

A.1.2 SecondActivityActivity.java

/ /詢問是否可被偵測

ACTION_REQUEST_DISCOVERABLE

/ /獲取使用者點擊選項

REQUEST_DISCOVERABLE_BLUETO

//確定 -讓時間倒數12秒

CountDownTimer(120000,1000)

- 55 -

/ /獲取搜尋到的藍芽裝置

BluetoothDevice device =

intent .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

/ /將藍芽裝置顯示在清單上

Str ing str= device.getName () ;

ls tDevices.add(str) ;

/ /修改MENU鍵功能

onCreateOptionsMenu(Menu menu)

/ /問於回報之訊息

setMessage("www.facebook.com/YS.Soyo")

/ /修改返回鍵功能

keyCode==KeyEvent.KEYCODE_BACK

/ /確定 -回到首頁

Intent .ACTION_MAIN;

Intent .CATEGORY_HOME;

Intent .FLAG_ACTIVITY_NEW_TASK;

/ /關閉藍芽

protected void onDestroy()

mBluetoothAdapter .disable() ;

/ /URL判斷

i f(str . toStr ing() . indexOf("http: / /" ) == -1 & str . toStr ing() . indexOf("https: / /" ) == -1&

str . toStr ing() . indexOf("www.") == -1 & str . toStr ing() . indexOf(" : / /" ) == -1)

/ /URL連結

Uri ur i = Uri .parse(s tr [1]) ;

Intent intent = new Intent(Intent .ACTION_VIEW,uri) ;

s tar tActivi ty( intent) ;