修 平 科 技 大 學ir.hust.edu.tw/bitstream/310993100/4325/1/android...修 平 科 技 大 學...
Transcript of 修 平 科 技 大 學ir.hust.edu.tw/bitstream/310993100/4325/1/android...修 平 科 技 大 學...
-
修 平 科 技 大 學 資訊網路技術系
行動健身記錄器
指導老師:張瑞淇 老師
製作成員:
陳昌佑 BN99118
羅宇廷 BN99051
許信毅 BN99063
翁宏銘 BN99083
李原豪 BN99113
中華民國 103 年 1 月
-
行動健身記錄器
指導老師:張瑞淇 老師
製作成員:
陳昌佑 BN99118
羅宇廷 BN99051
許信毅 BN99063
翁宏銘 BN99083
李原豪 BN99113
指導老師:
口試老師:
中華民國 103 年 1 月
II
-
目錄
摘要 .......................................................................................................... V
專題進度表 ........................................................................................... VII
第一章 動機與目的 ................................................................................. 1
第二章 ANDROID 模塊與相關技術 ..................................................... 3
2-1ANDROID 軟體堆疊 ............................................................................................. 3 2-2 作業系統層(LINUX KERNEL) .............................................................................. 4 2-3 系統函式庫(LIBRARIES) ...................................................................................... 4 2-4 ANDROID 運行環境(RUNTIME) .......................................................................... 5 2-5 應用程式層框架(APPLICATION FRAMEWORK) ................................................... 6 2-6 應用程式層(APPLICATIONS) ............................................................................... 7
第三章 ANDROID 四大組件 ................................................................. 8
3-1 活動(ACTIVITY) ................................................................................................... 8 3-2 服務(SERVICE) ..................................................................................................... 9 3-3 廣播接收器(BROADCAST RECEIVER) .................................................................. 9 3-4 內容提供器(CONTENT PROVIDER) ...................................................................... 9 3-5 應用程式的基本處理步驟 .............................................................................. 10
第四章 系統分析與細部設計 ............................................................... 11
4-1 應用程式架構 .................................................................................................. 12 4-2 ANDROID MANIFEST 定義檔 ............................................................................. 13 4-3 ANDROIDMANIFEST.XML .................................................................................... 14 4-4 在 JAVA 原始檔中使用字串變數 ................................................................. 15 4-5 XML 資源文件使用字串資源 ......................................................................... 16 4-6 支援多國語言 .................................................................................................. 17 4-7 圖檔資源目錄 DRAWABLE ............................................................................... 18 4-8 JAVA原始檔中使用圖檔名稱 ........................................................................ 19 4-9 XML文件中使用圖檔名稱 .............................................................................. 20 4-10 視窗佈局資源檔 - LAYOUT\MAIN.XML .............................................................. 21
III
-
4-11 JAVA中使用佈局檔案 .................................................................................. 22
第五章 實作成果 ................................................................................... 23
5-1健康管理程式(主畫面)................................................................................... 24 5-2 BMI執行畫面 .................................................................................................. 25 5-3飲食計算 .......................................................................................................... 26 5-4貼心小提醒 ...................................................................................................... 27 5-5資料庫查詢 ...................................................................................................... 28 5-5 GOOGLE MAP V2 ................................................................................................. 28 5-6取得憑證指紋 .................................................................................................. 30 5-7 GOOGLE APIS CONSOLE 管理介面 ....................................................................... 31 5-8 需要「憑證指紋」與「應用程式套件名稱」 .............................................. 32 5-9 產生 API 金鑰 ................................................................................................ 33 5-10 安裝 GOOGLE PLAY SERVICE .......................................................................... 34 5-11 將 GOOGLE-PLAY-SERVICES_LIB匯至專案 .......................................................... 35 5-12 建立 GOOGLE-PLAY-SERVICES_LIB 專案 ........................................................ 36 5-13 完成 GOOGLE-PLAY-SERVICES_LIB 專案 ........................................................ 37 5-14 專案要加入 GOOGLE-PLAY-SERVICES_LIB ............................................................ 38 5-15 將 API KEY加入 ANDROIDMANIFEST.XML ............................................................. 39 5-16計算距離公式 ................................................................................................ 40 5-17 消耗熱量公式 ............................................................................................... 45 5-18 距離計算程式碼 ........................................................................................... 46 5-19 熱量消耗程式碼 ........................................................................................... 47 5-20 運動路徑畫面 ............................................................................................... 48
第 6 章 心得與結論 ............................................................................... 53
參考文獻 ................................................................................................. 54
IV
-
摘要
Android 是一個以 Linux為基礎的開放原始碼作業系統,主要用
於行動設備,由 Google成立的 Open Handset Alliance(OHA,開放
手持設備聯盟)持續領導與開發中。安卓已發佈的最新版本為 Android
4.4.2。 Android系統最初由安迪 ·魯賓(Andy Rubin)開發製作,
最初開發這個系統的目的是利用其創建一個能夠與 PC上網的「智慧
型手機」生態圈。
但是後來,智慧型手機市場開始快速成長,Android被改造為一
款面向手機的作業系統。 說到 Android,一定得提一下 Google。這
個創立於 1998年的美國公司,在科技公司來說雖然是新手,但在短
短的幾年內卻成為微軟、Apple等公司的強敵。從搜尋技術的創新,
到關鍵字廣告,以及現在的雲端運算;Google一直用新的思維與想
法在運作。
2005 年 Google併購了成立僅 22個月的 Android,並拉攏其他手
機製造商、系統營運商等組成開放手機聯盟(Open Handset
Alliance)。一開始 Android是基於 Linux的通用平台,不過在 2010
V
http://zh.wikipedia.org/wiki/%E5%AE%89%E8%BF%AA%C2%B7%E9%B2%81%E5%AE%BE
-
年 2月,被 Linux除名,原因是 Android基於商業考量修改了一些東
西,導致 Android的硬體驅動在 Linux上無法使用;從此,Android
與 Linux的核心開發分道揚鑣。
VI
-
專題進度表
專 題 題 目 行 動 健 身 記 錄 器
年 2013
月 3 4 5 6 7 8 9 10 11 12 1
與老師討論
相 關 資 料
開始分配工
作
尋找資料製
作簡單初稿
製作第一次
報告 P P T
報告後需修
改 地 方
期末製作第
二 次 報 告
P P T
上網尋找更
多相關資料
重複測試檔
案 與 製 作
第三次製作
P P T 報 告
與老師討論
修 改 地 方
VII
-
第一章 動機與目的
在科技越來越發達之下,許多人們普遍都使用智慧型手機,加上
現代人生活步調快速、生活繁瑣事物忙碌,對於最新資訊的需求相當
大,需要快速又方便的獲得方式,因此幾乎不離身的智慧型手機就能
來解決這項問題。現在手機功能當中雖然相當發達,由於人對於功能
的需求和使用方式,呈現出相當的依賴,其功能還有許多可以改進或
增加的空間。像是如果想要減肥的人,卻不知道自己是否太胖還是太
瘦該不該減肥,當還在煩惱這個問題的時候,我們的行動健身記錄器
就派上用場了,對於這件事情只要有一台簡單的輕便型智慧型手機把
我們程式灌入手機內,就可以隨時隨地知道自己的 BMI。我們把
Android系統開發程式來與生活周遭某些事物結合在一起來提升生活
上的便利性,這才是我們想要的動機與目的,把一個簡單的軟體加上
現代人們常在使用的手機來做一個結合。
所以我們利用學校老師所交的 android 開發程式來實做出一套
屬於自己的行動智慧健身紀錄器,希望完成此專題後,可以完整的拿
出來使用, 在本篇論文中,我們利用 google Map開發出一個可以隨時
隨地紀錄移動軌跡的『行動健身記錄器』,此服務包括有:BMI計算、
飲食紀錄、 健康小提醒、資料庫系統、Gps記錄器。其主要特點有:(1)
1
-
提供個人 BMI計算與建議;(2)紀錄一天所吃的食物與消耗多少卡路
里;(3)提供貼心的小提醒; (4)提供資料庫的存取查詢;(5)利用
android google Map服務提供定位系統以及軌跡紀錄:支援多種設備
(如:智慧型手機,桌上型電腦,筆記型電腦,平板電腦) 。如果平常時
不用桌上型電腦的人,只要有智慧型手機也是可以利用建的系統匯入
我們的行動健身紀錄器,幫助你不用電腦上網也可以計算計自己的
BMI值,讓自己知道目前的體重是否過胖或過瘦,也可以儲存起來到
資料庫系統裡面,保存後以後可以方便查詢。也可以讓喜歡運動的
人,隨身攜帶此 App程式方便記錄自己移動路徑和計算走了多少距離
清楚的知道消耗多少熱量。
2
-
第二章 Android 模塊與相關技術
Android 是一個移動設備的平台,其軟件層次結構包括了一個操
作系统(OS),中間件(MiddleWare)和應用程序(Application)。根
據Android的軟件框圖,其軟件層次結構自下而上分為以下幾個層次:
第一、作業系統層(Linux Kernel)
第二、函式庫(Libraries)和 Android 運行環境(RunTime)
第三、應用程序框架(Application Framework)
第四、應用程序(Application)
以下分别介绍 Andoid各個層次的軟件的重點及相關技術介紹說明:
2-1Android軟體堆疊
3
-
2-2 作業系統層(Linux Kernel)
(1)Base on Linux 2.6:
–已修改 kernel,以避免 GPL授權問題
(2)Power Management修改
– 針對手機環境,當沒有使用就關機
2-3 系統函式庫(Libraries)
Android 所有元件皆是由 C/C++函式庫所組成,但 Android所有
的應用程式皆必需經由 API 來使用這些功能。
例如:SQLite SQLite 是一套開放原碼的關連式資料庫,其特點在於
輕量性(僅 500KB左右的容量),適合掌上型裝置運用。
LibWebCore:一個先進的網頁瀏覽器引擎。
SGL:2D 繪圖引擎。
4
-
2-4 Android 運行環境(RunTime)
Android 雖然用 Java 程式語言來開發、撰寫應用程式,但卻不
使用一般大家目前在用的 Java Runtime(J2ME)版本來執行 Java 程
式,而是用 Android 自有的 AndroidRuntime 來執行。
Android Runtime 包含下面兩個核心。
(1)Core Libraries
• 核心函式庫裡頭已經包含了絕大多數 Java程式語言所需要呼用
的功效函式。
• 每個 Android應用程式都用一個自屬的 Dalvik虛擬機器來執行。
(2)Dalvik Virtual Machine
• 一種暫存器型態的虛擬機器
• Dalvik 在撰寫開發時就已經設想用最少的記憶體資源來執
行,以及前述的「同時可執行多個 VM個體」。
5
-
2-5 應用程式層框架(Application Framework)
(1)應用層框架則實作 JNI 技術。
(2)程式設計師在寫應用程式時可以完整的存取使用統一的應用程式
標準介面。
(3)很容易的去重覆使用各個原件,所有的應用程式都可以提供出它
自己本身的特殊功能,所有的應用程式也可以較容易的去使用其它程
式的特殊功能。
介紹應用程式層框架中幾個常用的元件:
(1)Activity Manager(活動管理員):管理所有的應用程式生命週期。
(2)Package Manager:Android 系統內所有的程式管理。
(3)Window Manager(視窗管理員):管理所有的視窗程式。
(4)Telephony Manager:用來管理所有的移動設備(電話)的功能。
6
-
2-6 應用程式層(Applications)
(1)應用程式層(Applications)提供常用的應用程式如 Email 收發、
簡訊程式、行事歷、Google地圖、瀏覽器、通訊錄等。
(2)應用程式以 Java 語言寫成,透過第二層的應用層框(Application
Framework)往下溝通。
(3)從 Market下載的程式自行開發的程式
7
-
第三章 Android 四大組件
元件,是在談及所謂架構重用的時候,是一個重要的事情。像是
把程式做的跟樂高似的,完整的元件該放在哪邊,當如果有需要的時
候在去拿幾個來搭配起來, 整個程序就構建完成了。
Android框架內提供了 4個重要的基本種類包括:
• Activity:處理 UI互動事情
• Service:處理幕後的服務
• BroadcastReceiver:接收訊息及事件處理
• ContentProvider:儲存共用資料
3-1 活動(Activity)
• 一般所指的活動是使用者介面。
• 一支應用程式有一個或以上的活動存在,每個活動也都會有自
己的視景(View)。
8
-
3-2 服務(Service)
• 在背景長時間運行的應用元件,不和使用者直接進行動。
• 例如:音樂播放啟動一個服務(Service),此服務運行於背景,
Android系統將會負責音樂的持續播放。(背景播放)
3-3 廣播接收器(Broadcast Receiver)
• 系統發送廣播通知,來通知其它應用程式。
– 電池電量不足
– 資料已下載完畢,可供使用
– 提醒使用者,如背光、振動或播放音樂 (系統通知多個應
用程式)
3-4 內容提供器(Content Provider)
• 將應用程式資料組合成特定的集合供其它應用程式使用。
• 資料可以是儲存在檔、SQLite資料庫,或是其它任何使用者可
以存取資料的地方。
• 應用程式不是直接呼叫這些實作方法。
• 透過內容解析器 Intent呼叫方法。
• 內容解析器能夠通知任何的內容管理器,並可以參與這些內容
提供器行程間的管理。
9
-
3-5 應用程式的基本處理步驟
Activity的 Lifecycle(生命週期)
10
-
第四章 系統分析與細部設計
介紹了 Android的模塊與 Android四大基礎元件系統概念後,先
對 Android 的架構有正確認知,如此開發出來的元件才能夠發揮
Android系統框架最大的功用。可以幫助你在往後開發 Android更加
得心應手。
我們所建立的 Android 應用程式可以支援許多東西例如:多國語
系,顏色設定,尺寸大小,樣式資源,視窗佈局,動畫設計,圖檔資源等
等……。
11
-
4-1 應用程式架構
12
-
4-2 Android Manifest定義檔
• Android Manifest定義檔是一個用來描述應用程式「整體資訊」
的設定檔。
• 每個應用程式都需要 AndroidManifest.xml,它提供了應用程
式必要資訊給 Android系統使用,像是應用程式元件(活動、服
務…等等)有什麼樣的資訊可以操作,以及在什麼地方運行。
13
-
4-3 AndroidManifest.xml
14
-
4-4 在 JAVA 原始檔中使用字串變數
– 用法:R.string.字串名稱
– 範例:CharSequence hello =
getString(R.string.hello);
15
-
4-5 XML資源文件使用字串資源
– 用法:@string/字串名稱
– 範例:android:app_name=”@string/hello”
16
-
4-6 支援多國語言
• 建立不同的語言錄。
– 範例:
values-cht繁體中文、
values-en英文、values-jp
日文……等等。
17
-
4-7 圖檔資源目錄 drawable
– 只要是程式的圖示、背景圖片等等,皆需放在
drawable目錄底下
– Android會為每個放置在 res/drawable目錄下的圖片檔
案產生一變數,變數名稱就是這個圖片的檔名(不包含副
檔名),可在 R.java文件中的 drawable中查詢。
18
-
4-8 JAVA原始檔中使用圖檔名稱
– 用法:R.drawable.圖檔名稱
– 範例:Drawable bitmap =
getResources().getDrawable(R.drawable.icon);
19
-
4-9 XML文件中使用圖檔名稱
– 用法:@drawable/圖檔名稱
– 範例:android:background="@drawable/icon"
20
-
4-10 視窗佈局資源檔 - layout\main.xml
在 Android 平台裡,使用者介面都是透過 ViewGroup或 View類
別來顯示,ViewGroup和 View是 Android平台上最基本的使用者
介面元件。
我們可以透過程式直接呼叫的方法,或是使用 XML文件,來描述
使用者介面。
21
-
4-11 JAVA 中使用佈局檔案
– 用法:R.layout.佈局檔案名稱
– 範例:setContentView(R.layout.main);
22
-
第五章 實作成果
1. 從開始專題分組到找老師後,我們從老師身上聽取許多的建議與
方向 ,使得專題能夠順利完成。
2. 利用 Android 開發環境下,我們花了不少時間終於完成了一個簡
單的行動健身記錄器、這對我們算是學到了許多寶貴的經驗
3. 我們系統架構『主畫面』分成了五個部份:『BMI 計算』,『飲食
計算』,『貼心小提醒』,『GPS 路線計算』,『資料庫系統』。
4. 希望可以把這次專題完整的拿出來使用,可以方便讓使用者操
作,並且把介面上功能更加加強讓使用者使用。
23
-
5-1 健康管理程式(主畫面)
圖 5-1程式進入後主畫面
圖 5-1是程式開啟後出現主要畫面,主要設計有 5大按鈕選項,分別
是『 BMI計算』、『飲食管理』、『GPS路線計算』、『健康小提
醒』、『資料表』。
24
-
5-2 BMI執行畫面
圖 5-2 BMI啟動畫面
圖 5-2是點擊 BMI按鈕後開啟的畫面,輸入高、體重後可以計算 BMI ,
可以把計算後結果儲存到資料庫,成功儲存時系統會跑出新增成功,
按下清除資料的話,是把欄位資料重置。
25
-
5-3 飲食計算
圖 5-3 飲食紀錄啟動畫面
圖 5-3當進入畫面後,會出現一天大略所吃的食物,可以自
己選擇吃了幾份後,來做一個計算總和。
26
-
5-4 貼心小提醒
圖 5-4健康小提醒啟動畫面
圖 5-4是系統為了當使用者如果不知道要如何瘦身或是吃什麼比較
健康的話,貼心小提醒就派上用場了,只要點擊後即刻出現對話視窗,
會立即建議你該如何處理你的煩惱。
27
-
5-5 資料庫查詢
圖 5-5 資料庫畫面
圖 5-5會把 BMI計算後的結果利用資料語法來儲存於我們定義好的資
料庫裡面也會順便把時間點給記錄下來方便以後查詢。
28
-
Google Maps v2
• 想要建立具備基本 Google 地圖的 Android 應用程式,必須使
用 Google Maps Android API(以下簡稱為 Maps API),我們
使用的是第 2版(Google Maps Android APIv2 )。
• 透過 Maps API 可以存取 Google 地圖伺服器上的資料用以呈現
在 Android 裝置上。
• 必須先建立 Android專案後,到 GoogleAPIs Console 管
理介面申請一組 屬於自己的金鑰,並在 manifest檔案
內作相關設定,匯入 google-playservices_lib 專案
後,最後建立 layout檔案與 Activity就完成了一個
基本 Google 地圖。
• 以下我們做一個簡略的建立 Google 地圖的程序。
29
-
5-6 取得憑證指紋
圖 5-6取得憑證指紋
透過 Eclipse主選單「Windows」→「Preferences」→「Android」
→「Build」→可以取得 SHA1的憑證指紋
30
-
5-7 Google APIs Console 管理介面
圖5-7 啟動Google Maps Android APIv2 服務
點擊左邊導覽列的「Services」,在右邊搜尋到「Google Maps Android
API v2」,如圖5-7;點擊後即可啟動該服務。
圖5-8 建立API金鑰
31
-
點擊導覽列「API Access」選項,並在右邊按下「Create new Android
key」按鈕,如圖5-8。
5-8 需要「憑證指紋」與「應用程式套件名稱」
圖 5-9輸入憑證指紋 OR 應用程式套件名稱
申請API 金鑰需要「憑證指紋」與「應用程式套件名稱」。請依照圖
5-9 所示,在文字輸入方塊中先貼上憑證指紋,加上分號,再貼上套
件名稱,格式為「憑證指紋;套件名稱」,然後按下「Create」按鈕。
32
-
5-9 產生 API 金鑰
圖5-10 產生API金鑰
最後會產生API 金鑰,如圖5-10。之後建立Android 專案時,套件名
稱要填寫申請API 金鑰時所輸入的套件名稱;另外manifest 檔案也
必須設定API 金鑰,在下一節將會詳細說明。
33
-
5-10 安裝 Google Play Service
Maps API 現在已經成為Google Play services SDK 一部分,所
以要使用Google 地圖相關功能,必須先安裝Google Play services
SDK。安裝步驟為:
圖5-11 安裝Google Play services SDK
按下Eclipse 工具列的「Android SDK Manager」按鈕,勾選「Google
Play services」,如圖5-11,按下右下角「Install packages」即
可開始安裝。
34
-
5-11 將 google-play-services_lib 匯至專案
Google 地圖應用程式需要使用到Google Play services 函式
庫,所以先匯入google-play-services_lib 專案, 當作其他地圖應
用程式的函式庫(libraryproject)。匯入步驟為:
圖5-12建立google-play-services_lib專案
按下Eclipse 主選單「File」>「Import」>「Android」>「 Existing
AndroidCode Into Workspace」然後按下「Next」按鈕,如圖5-12。
35
-
5-12 建立 google-play-services_lib專案
按下「Browse」按鈕然後找尋 google-play-services_lib 目錄,如
圖 5-13,路徑在「/extras/google/google_play_services/libproject/google-play
-services_lib」
圖5-13 建立google-play-services_lib專案
36
-
5-13 完成 google-play-services_lib專案
圖5-14 完成google-play-services_lib專案
匯入成功後可以在Package Explorer 看google-play-services_lib
專案,如圖5-14。
37
-
5-14 專案要加入 google-play-services_lib
圖 5-15 在自己專案加入 google-play-services_lib
引用 google-play-services_lib 專案: 請先依照前述匯入
google-playservices_lib 專案,然後對 Android 專案按滑鼠右鍵
選「Properties」> 點擊「Android」選項 > 按下「Add」按鈕 > 選
擇「google-play-services_lib」專案> 按下「OK」按鈕,如圖 5-15。
38
-
5-15 將 API key加入 AndroidManifest.xml
圖 5-16 AndroidManifest.xml
到manifest檔案,把申請的API Key輸入進去如圖5-16。
39
-
5-16計算距離公式
使用 GPS計算移動距離最常用的公式是 Haversine公式:已知地
球表面 A(lat1, lon1), B(lat2, lon2)的座標 , 求 AB
的距離。
2 2 2( / 2) sin ( / 2) cos( 1) cos( 2)sin ( / 2)c AB a lat lat b= = + × 12 tan ( / 1 )AOB c c−∠ = −
d=A與 B間圓幅的距離= R AOB×∠
1.(Lat1, Lon1) 表示 A點經緯度,(Lat2, Lon2) 表示 B點經緯度
2.a=Lat1 – Lat2 為兩點緯度之差 b=Lon1 -Lon2 為兩點經度之差
3.把計算出來的 a 與 b 帶入上面距離計算公式求出 c
4.把計算出來的 c 帶入上面距離計算公式求出 AOB∠
5.在把 c x 地球半徑 3958.75 ,求出兩點間距離
6.地球半徑 6378.137(3958.75英里);
40
-
以下將推導出 Haversine公式:
Haversine Formula的原始定義:
• VERSINE (or versed sine) of angle θ is 1-cos(θ).
• HAVERSINE is half the versine, or (1-cos(θ))/2.
• hav(θ) = (1-cos(θ))/2 = sin^2(θ /2)
• Segment AC = sin(θ /2), so the length of chord AB is 2*sin(θ
/2).
圖 5-17 Haversine Formula的原始定義
41
-
Haversine Formula的推導 1:
已知地球表面 A(lat1, lon1), B(lat2, lon2)的座標 ,
求 AB 的距離。
圖 5-18 地球表面給定 A,B兩點座標,求 AB的地表距離
2cos( 1)sin( / 2)AD lat b=
2cos( 2)sin( / 2)CB lat b=
2 1b lon lon= −
A
H B C
D
42
-
Haversine Formula的推導 2:
圖 5-19 地球表面給定 A,B兩點座標,求 AB的直線距離
2 2 2 2 2( ) / 4AH AC CH AC CB AD= − = − −
( ) / 2HB CB AD= +
2 2 2 2 2 2
2
( ) / 4 ( ) / 4AB AH HB AC CB AD CB AD
AC CB AD
= + = − − + +
= + ×
2 2 24(sin ( / 2) cos( 1) cos( 2)sin ( / 2))AB a lat lat b= + ×
2 1a lat lat= −
A
H B C
D
43
-
Haversine Formula的推導 3:
d=A 與 B 圓幅的距離= R AOB×∠
R: 地球半徑
圖 5-20 給定 A,B 兩點座標,O 為地球球心,求 AB 的地表距離
2 2 2( / 2) sin ( / 2) cos( 1) cos( 2)sin ( / 2)c AB a lat lat b= = + ×
12 tan ( / 1 )AOB c c−∠ = −
44
-
5-17 消耗熱量公式
統計出來的:運動熱量消耗表
運動項目 消耗熱量
走路 3 公里/小時 240 大卡
慢跑 8 公里/小時 655 大卡
騎腳踏車 8.8 公里/小時 184 大卡
因為 8800公尺消耗 184大卡,可以推論 8800公尺
每公尺消耗熱量 = 184大卡/8800公尺
每分鐘消耗熱量 = 184大卡/60分鐘
個人消耗熱量 = 移動距離 x 每公尺消耗熱量
45
-
5-18 距離計算程式碼
我們求出 gp1與 gp2各經緯度後,把這兩個函數帶入 GetDistance這
個副 程式裡面,利用求出兩點間距離公式,乘上地球半徑之後求出
兩點間 的距離。
46
-
5-19 熱量消耗程式碼
預先設定一個值在外面,與下拉式元件做連結選擇需要的運動後,
在把 消耗的卡路里值帶進跟距離做計算,在顯示出來。
47
-
5-20 運動路徑畫面
實驗畫面_1
圖 5-21啟動後出現畫面
圖 5-21當點擊按鈕後將跑出一個定位中訊息現,這是因為 Gps衛
星定位系統正在準確的收尋我自己的位子。
48
-
實驗畫面_2
圖 5-22定位成功後畫面
圖 5-22當 GPS衛星定位系統成功收尋到我自己位子後,將會標記目
前自己所站的位子,左上角有選項鈕,可以選擇你要行徑的方式。
49
-
實驗畫面_3
圖 5-23 軌跡顯示畫面
圖 5-23當你選擇好你要行徑的方後,在移動過程都會以藍色畫出你
移動的軌跡。案下手機內建選單會跳出選擇系統,可以選擇計算距離
與消耗量。
50
-
實驗畫面_4
圖 5-24距離計算畫面
圖 5-20當到達目的後,想知道自己移動了多少公尺時,可以按下手
機內建的選單系統,在按下計算距離後,馬上可以計算出移動多少公
尺。
51
-
實驗畫面_5
圖 5-25按下消耗卡路里畫面
圖 5-25當知道自己移動多少距離後,想知道自已經消耗了多少卡路
里時,只要按下內鍵選單的熱量計算按鍵就會顯示出消耗多少卡路
里。
52
-
第 6 章 心得與結論
完成這個專題後得到滿多經驗也學到了很多,從一開始什麼 都
不懂得去摸索到現在已經有建立一些 Android基礎。我知道不能只靠
老師來幫你解答,很多問題都需要靠自己去尋求答案的,雖然過程中
常常想放棄,但組員的努力和安慰讓我不得不去克服它,程式對許多
人來說應該都很排斥,但我們爲了能在這 4年中學到更多人學不到的
東西,我們試著去接受他,挑戰他,也謝謝老師用心的教導,讓我們
一步一步的成長,程式是需要一步一步累積的,還好有照著老師的腳
步,也謝謝成員們盡心盡力的努力,才有今天的成果出來,但是還是
有很多的進步空間, 往後會加努力在這方面。
在結論方面我們是覺得這個程式裡面系統因該還有許多可以改
進方面例如像 Gps 距離計算可以改為固定一段時間後即時自動更新
並顯示在手機螢幕上面,再提供使用者更多服務的選項例如:可以記
錄每一次走的距離與消耗卡路里,把這方面技術在更加強一點。
在飲食紀錄方面希望可以有更多食物方面可以選擇並且還有希望可
以美化每一個介面,讓使用者使用上方面可以更加方便。
53
-
參考文獻
1. 黃彬華,Android 4.X App 開發教戰手冊線上教材,網
址: https://sites.google.com/site/ronforwork/
2. 谷歌開發者網頁,Android 的 Activity ,網
址:http://developer.android.com/reference/android/app/Act
ivity.html
3. 饒瑞佶, Android GPS 軌跡紀錄器, 建國科技大學資管系
教材,網
址:http://rfid.ctu.edu.tw/rueychi/4_class/102_2Android/11_
Android_GPS_logger.pdf
4. 健康博士部落格,運動熱量消耗表,網
址:http://drhealth.pixnet.net/blog/post/7145178
54
https://sites.google.com/site/ronforwork/http://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://rfid.ctu.edu.tw/rueychi/4_class/102_2Android/11_Android_GPS_logger.pdfhttp://rfid.ctu.edu.tw/rueychi/4_class/102_2Android/11_Android_GPS_logger.pdfhttp://rfid.ctu.edu.tw/rueychi/4_class/102_2Android/11_Android_GPS_logger.pdfhttp://drhealth.pixnet.net/blog/post/7145178
摘要專題進度表第一章 動機與目的第二章 Android模塊與相關技術2-1Android軟體堆疊2-2作業系統層(Linux Kernel)2-3系統函式庫(Libraries)2-4 Android 運行環境(RunTime)2-5應用程式層框架(Application Framework)2-6應用程式層(Applications)
第三章 Android四大組件3-1活動(Activity)3-2服務(Service)3-3廣播接收器(Broadcast Receiver)3-4內容提供器(Content Provider)3-5應用程式的基本處理步驟
第四章 系統分析與細部設計4-1 應用程式架構4-2 Android Manifest定義檔4-3 AndroidManifest.xml4-4 在JAVA原始檔中使用字串變數4-5 XML資源文件使用字串資源4-6 支援多國語言4-7 圖檔資源目錄 drawable4-8 JAVA原始檔中使用圖檔名稱4-9 XML文件中使用圖檔名稱4-10 視窗佈局資源檔 - layout\main.xml4-11 JAVA中使用佈局檔案
第五章 實作成果5-1健康管理程式(主畫面)5-2 BMI執行畫面5-3飲食計算5-4貼心小提醒5-5資料庫查詢5-6取得憑證指紋5-7 Google APIs Console 管理介面5-8 需要「憑證指紋」與「應用程式套件名稱」5-9 產生API 金鑰5-10 安裝Google Play Service5-11 將google-play-services_lib匯至專案5-12 建立google-play-services_lib專案5-13 完成google-play-services_lib專案5-14 專案要加入google-play-services_lib5-15 將API key加入AndroidManifest.xml5-16計算距離公式5-17 消耗熱量公式5-18 距離計算程式碼5-19 熱量消耗程式碼5-20 運動路徑畫面
第6章 心得與結論參考文獻