Android 系統土石流防災管理應用程式之開發與實作
116
0
0
全文
(2) 誌謝 一年半時光匆匆飛逝,回想過去一年半撰寫論文當中,遇到了很多 貴人相助,內心充滿感激。首先要感謝指導教授吳明淏副教授,當我碰 到瓶頸時總能指引我一盞明燈,使我在這一年半中受益匪淺。接著感謝 我的父母親,對於我的決定總能給予支持及建議,遇到不如意也提供生 活及學習上的幫助。 論文口試階段,承蒙行政院農業委員會水土保持局陳振宇博士及國 家災害防救科技中心傅金城博士提供許多建議及指導批評,讓本論文更 加完善及豐富,在此致上最高的謝意。 研究所修業期間,感謝各位老師在課業知識上的指導與解惑。感謝 PO 哥、阿涵及餅乾在我尋求協助時總不吝嗇地給予幫助及鼓勵;中心助 理威綸、宜和及翔緯的大力協助與勉勵;感謝中心助理 Kimmy、鈞凱、 Sasa 及章傑這一年半的照顧,以及在研究所這條路上曾幫助過我的所有 貴人,願以此與所有曾經幫助與關心我的人共同來分享。. 映如 謹誌 2016.02.04.
(3) 目錄 第一章 緒論 ............................................................................................... 1 1.1 研究背景與動機............................................................................... 1 1.2 研究目的 ........................................................................................... 3 1.3 研究流程 ........................................................................................... 4 1.4 論文架構 ........................................................................................... 6 第二章 文獻回顧暨相關研究技術探討 ................................................... 7 2.1 國內外應用程式開發技術探討....................................................... 9 2.2 防災相關應用程式研究................................................................. 16 2.2.1 Project NOAH ........................................................................... 16 2.2.2 Stay Safe in Jeju ........................................................................ 21 2.2.3 DisasterPreventionNavi ............................................................ 25 2.2.4 高雄水情 e 點靈 ....................................................................... 29 2.2.5 生活氣象................................................................................... 34 2.2.6 土石流防災資訊整合版........................................................... 37 2.3 ANDROID 平台開發基礎簡介......................................................... 44 2.4 ACTIVITY 與 FRAGMENT ................................................................. 46 2.5 JAVA 程式語言簡介 ........................................................................ 49 2.6 GOOGLE EARTH 與 KML 簡介 ....................................................... 52 2.6.1 Google Earth .............................................................................. 52 2.6.2 KML ........................................................................................... 53 2.7 GOOGLE MAPS ANDROID API V2 ..................................................... 55 2.7.1 Google Maps 物件定位設定 ..................................................... 56 I.
(4) 2.7.2 Google Maps KML 導入實用程序 .......................................... 58 2.8 XML ................................................................................................ 59 2.9 JSON ............................................................................................... 60 2.10 CSV ................................................................................................. 61 第三章 系統規劃與功能設計 ................................................................. 63 3.1 程式畫面 ......................................................................................... 66 3.1.1 主程式....................................................................................... 67 3.1.2 離線主程式............................................................................... 69 3.1.3 圖層詳細資訊........................................................................... 71 3.1.4 地圖 ........................................................................................... 72 3.1.5 導航 ........................................................................................... 72 3.2 系統設計思維 ................................................................................. 73 3.2.1 資料庫連線系統....................................................................... 73 3.2.2 資源庫系統............................................................................... 77 3.2.3 人際介面設計........................................................................... 78 第四章 系統實作與應用 ......................................................................... 80 4.1 主程式 ............................................................................................. 81 4.1.1 即時氣象警戒資訊 .................................................................... 81 4.1.2 鄰近避難收容場所資訊............................................................ 87 4.2 離線主程式 ..................................................................................... 88 4.2.1 主題圖層資訊 ............................................................................ 88 4.2.2 防災地圖 .................................................................................... 89 4.2.3 土石流避難收容場所資訊........................................................ 91 II.
(5) 4.2.4 保全清冊資訊 ............................................................................ 92 4.3 小結 ................................................................................................. 95 第五章 結論、建議與未來展望 ............................................................. 96 5.1 結論 ................................................................................................. 96 5.2 建議 ................................................................................................. 98 5.3 未來展望 ....................................................................................... 100 參考文獻 ................................................................................................... 101. III.
(6) 表目錄 表 2- 1 Android 與 iOS 作業系統比較 .................................................... 14 表 2- 2 國外防災相關應用程式之優缺點 ................................................ 42 表 2- 3 國內防災相關應用程式之優缺點 ................................................ 43 表 2- 4 程式語言特性及目的統整表 ........................................................ 62 表 4- 1 智慧型手持行動裝置之運行環境 ................................................ 80. IV.
(7) 圖目錄 圖 1- 1 研究流程圖....................................................................................... 5 圖 2- 1 Android 作業系統架構 ................................................................. 10 圖 2- 2 iOS 作業系統架構 ......................................................................... 12 圖 2- 3 Project NOAH 功能列表................................................................ 17 圖 2- 4 Project NOAH 地圖模式之四類圖層 ........................................... 18 圖 2- 5 各圖層相互疊加顯示 .................................................................... 18 圖 2- 6 Project NOAH 清單模式................................................................ 19 圖 2- 7 清單模式下氣象測站之即時資訊 ................................................ 19 圖 2- 8 即時新聞推撥功能 ........................................................................ 20 圖 2- 9 Stay Safe in Jeju 發布災害快訊..................................................... 22 圖 2- 10 建議之鄰近避難收容處所及災害潛勢範圍圖資 ...................... 22 圖 2- 11 Stay Safe in Jeju 圖資篩選顯示 ................................................... 23 圖 2- 12 各類災害防災避難要領 .............................................................. 23 圖 2- 13 Stay Safe in Jeju 氣象資訊顯示................................................... 24 圖 2- 14 Stay Safe in Jeju 災情查通報系統............................................... 24 圖 2- 15 DisasterPreventionNavi 地圖檢視防災圖資 ............................... 26 圖 2- 16 點選圖資顯示資訊 ...................................................................... 26 圖 2- 17 DisasterPreventionNavi 清單檢視防災資訊 ............................... 27 圖 2- 18 DisasterPreventionNavi 防災指南 ............................................... 27 圖 2- 19 DisasterPreventionNavi 警報鈴功能 ........................................... 28 圖 2- 20 高雄水情 e 點靈開啟畫面........................................................... 30. V.
(8) 圖 2- 21 高雄水情 e 點靈水情資訊功能頁面........................................... 30 圖 2- 22 高雄水情 e 點靈雨量站資訊....................................................... 31 圖 2- 23 高雄水情 e 點靈警戒資訊功能頁面........................................... 31 圖 2- 24 高雄水情 e 點靈土石流警戒資訊............................................... 32 圖 2- 25 高雄水情 e 點靈里民防災卡資訊............................................... 32 圖 2- 26 高雄水情 e 點靈氣象資訊功能頁面........................................... 33 圖 2- 27 高雄水情 e 點靈衛星雲圖單張及輪播顯示 .............................. 33 圖 2- 28 生活氣象目前所在地之氣象資訊 .............................................. 34 圖 2- 29 生活氣象警特報文字內容推播 .................................................. 35 圖 2- 30 生活氣象警特報互動式圖片推播 .............................................. 35 圖 2- 31 生活氣象資訊分類頁面 .............................................................. 36 圖 2- 32 生活氣象雨量觀測之累積雨量圖輪播 ...................................... 36 圖 2- 33 土石流防災資訊整合版功能一覽 .............................................. 38 圖 2- 34 土石流防災資訊整合版地圖圖層 .............................................. 38 圖 2- 35 土石流防災資訊整合版點選雨量站圖例之詳細資訊 .............. 39 圖 2- 36 土石流防災資訊整合版土石流警戒資訊 .................................. 39 圖 2- 37 土石流防災資訊整合版雨量站資訊 .......................................... 40 圖 2- 38 土石流防災資訊整合版氣象圖 .................................................. 40 圖 2- 39 土石流防災資訊整合版觀測站影像 .......................................... 41 圖 2- 40 土石流防災資訊整合版雨量查通報系統 .................................. 41 圖 2- 41 Android Studio 開啟畫面 ............................................................. 44 圖 2- 42 storyboard 設計畫面 .................................................................... 45 圖 2- 43 Activity 與 Fragment 關係圖 ....................................................... 46 VI.
(9) 圖 2- 44 Activity 與 Fragment 生命週期比較 ........................................... 47 圖 2- 45 Java 語言基本架構 ...................................................................... 50 圖 2- 46 KML 基本架構............................................................................. 53 圖 2- 47 添加圖層至地圖........................................................................... 58 圖 2- 48 XML 結構程式碼範例................................................................. 59 圖 2- 49 JSON 物件結構 ............................................................................ 60 圖 2- 50 JSON 陣列結構 ............................................................................ 61 圖 3- 1 應用程式架構圖............................................................................. 64 圖 3- 2 程式畫面轉換關係圖 .................................................................... 66 圖 3- 3 主程式流程圖................................................................................. 68 圖 3- 4 離線主程式流程圖 ........................................................................ 70 圖 3- 5 雨量資料解析流程圖 .................................................................... 74 圖 3- 6 土石流警戒解析流程圖 ................................................................ 75 圖 3- 7 避難收容處所分析流程圖 ............................................................ 76 圖 4- 1 開啟應用程式之初始動畫畫面 .................................................... 81 圖 4- 2 應用程式已連線之主程式畫面 .................................................... 82 圖 4- 3 應用程式未連線之主程式畫面 .................................................... 82 圖 4- 4 設定鈕點選後展開之畫面 ............................................................ 83 圖 4- 5 地圖導航畫面................................................................................. 84 圖 4- 6 地圖導航之下拉式選單功能一覽 ................................................ 84 圖 4- 7 雨量站資訊顯示畫面 .................................................................... 85 圖 4- 8 土石流紅黃色警戒頁面 ................................................................ 86 圖 4- 9 土石流紅黃色警戒測試情形 ........................................................ 86 VII.
(10) 圖 4- 10 鄰近避難收容處所 1&2 畫面 ..................................................... 87 圖 4- 11 鄰近避難收容處所 3 畫面........................................................... 87 圖 4- 12 資訊地圖頁面............................................................................... 88 圖 4- 13 圖層設定對話框........................................................................... 88 圖 4- 14 圖層顯示詳細資訊畫面 .............................................................. 89 圖 4- 15 防災地圖頁面............................................................................... 90 圖 4- 16 防災地圖縮放情形 ...................................................................... 90 圖 4- 17 收容處所頁面............................................................................... 91 圖 4- 18 保全清冊使用者登入頁面 .......................................................... 93 圖 4- 19 市級防災專責人員登入後之畫面 .............................................. 93 圖 4- 20 區級防災專責人員登入後之畫面 .............................................. 94 圖 4- 21 里級防災專責人員登入後之畫面 .............................................. 94. VIII.
(11) Android 系統土石流防災管理應用程式之開發與實作 指導教授:吳明淏 國立高雄大學土木與環境工程學系 學生:陳映如 國立高雄大學土木與環境工程學系 摘要 2009 年 8 月 8 日,莫拉克颱風於高雄山區累計降下約 1,400 毫米雨量,造成六龜區、 杉林區、甲仙區及那瑪夏區多處民宅、橋樑及道路遭土石流研沖毀,讓民眾對於土石流 災害更加重視。除災前整備及平時防災教育訓練,應用防災軟體可於臨災時有效提升應 變能力。隨各式智慧型行動裝置日益普及,無線網路支援及定位已是必備功能。由財團 法人資訊工業策進會調查統計結果顯示,國內智慧型手持行動裝置普及率已達 73.4%, 若與土石流防災管理應用程式結合運用,面對土石流災害更可展現資料即時性及便利性 之防災功能。然現今國內的防災相關應用程式卻無法克服離線地圖資訊查找之功能,對 於偏遠山區等網路易發異常地區之民眾而言,災害來臨時卻因網路無法連線導致無從得 知疏散避難相關訊息,可能造成民眾因此延遲避難逃生時機。 故本研究為克服此一困境,開發以一般民眾及防災業務相關專責人員為主要對象之 連線及可離線應用程式,針對土石流防災應變資料需求為設計方向,並考量個資法限制, 設計部分功能需權限方能使用。以 Android 系統開發土石流防災管理應用程式為例,其 使用中央氣象局提供之雨量更新資訊、行政院農委會水土保持局之土石流警戒資訊、高 雄市政府社會局之避難收容處所清冊以及 104 年度強化土石流防災整備及應變研判執 行計畫之土石流防災資料庫,結合 Google Maps Android API、KML、JSON、XML 及 CSV 撰寫應用程式碼。一般民眾使用本應用程式可即時掌握附近雨量站之雨量資訊及 土石流紅黃警戒狀況,臨災時可導航前往系統規劃之鄰近避難收容處所進行疏散避難, 並透過檢視土石流潛勢溪流、收容處所及直升機起降點等地理位置資訊,在逃生時可避 開災害潛勢範圍,安全前往避難收容處所。另防災業務相關專責人員操作本應用程式可 進行土石流保全清冊查詢,對於發布土石流警戒時更能準確掌握各里之保全戶數及所在 位置。 關鍵詞:高雄市、土石流、防災管理應用程式、Android. IX.
(12) The Development and Implementation of Debris Flow Disaster Prevention Management App on Android Environment Advisor : Dr. Min-Hao Wu Institute of Civil and Environmental Engineering National University of Kaohsiung Student : Ying-Ju Chen Institute of Civil and Environmental Engineering National University of Kaohsiung ABSTRACT In addition to applying predisaster preparedness as well as disaster education and training during peacetime, applying disaster prevention software effectively improves people’s resilience to disasters. Since the increasing prevalence of various smart mobile devices, wireless network support and positioning have become mandatory functions demanded from these devices. When handheld smart mobile devices are used in conjunction with landslide prevention and management applications, landslide-related information and management can be practiced in an immediate and convenient manner. However, map search functions of existing disaster management applications used in Taiwan are inadequate when no Internet access is available. People living in remote mountains where network anomalies are frequent are thus unable to acquire evacuation information at times of network malfunctioning. Consequently, the opportunities for these people to escape from disasters may be delayed. Therefore, this study represents an attempt to develop an offline application for the sake of overcoming this dilemma, and it’s based on requirements for landslide prevention and management data. People use this application can immediately receive the information of rainfall, potential debris flow alert, debris flow location, shelter, etc. Furthermore, staff of disaster prevention can use this application to inquire people who live in dangerous zone. Keywords: Kaohsiung city, debris flow, disaster prevention management, Android X.
(13) 第一章. 緒論. 1.1 研究背景與動機 由於溫室氣體逐年增加導致全球暖化加劇,氣候變遷跡象日益顯 著,造成世界各地極端氣候事件頻傳。根據中央氣象局統計,1958 年 至 2015 年 11 月間共有 1,524 個颱風生成,以西北太平洋及南海地區發 生頻率最高且最劇烈,而台灣正位於西太平洋地區,對於颱風所衍生 的災害不容小覷。因颱風生成環境需較高的氣溫及大量水氣利於發生 對流作用,以 7、8、9 月份時的颱風侵襲次數最多,佔總颱風數一半 以上,而颱風的侵襲常挾帶強風及豪雨,嚴重甚至能引發崩坍、落石、 泥流及土石流等重大災害,本研究之動機為減少或更進一步避免民眾 受到上述災害之波及。 過去從莫拉克風災發生後,高雄市境內地質敏感區之地形地貌大 幅改變。由於本校災害防救科技研究中心為高雄市政府水利局 101-104 年度強化土石流防災整備及應變研判執行計畫之協力團隊,每當發布 豪大雨警報時,因計畫執行上需進駐高雄市水情中心進行應變,期間 常接收到來自桃源區、六龜區、茂林區、那瑪夏區及甲仙區等山部地 區落石、坍崩及土石流等災害之訊息,突顯坡地災害管理的重要與急 迫性。 近年來土石流防災相關資訊備受重視,將土石流防災資訊更即時 且有效的應用一直被視為重要的課題。隨著科技演進,防災資訊已由 過去人工及平面資訊漸變為網路自動化作業、跨平台操作、即時資訊 展示及地理資訊圖層套疊等技術進行災害分析。透過智慧型手持行動 裝置及行動網路,結合上述功能並加以實現應用,讓即時防災資訊由 1.
(14) 個人電腦延伸至每個人的身旁。 因颱風、豪雨應變期間需與高雄市應變專責人員共同進駐水情中 心,在與應變專責人員合作時可明顯觀察出各應變人員在向上級通報 時普遍之需求,如保全清冊、收容處所、土石流警戒等資訊。故本研 究主要從防災應變相關專責人員的角度,考量其在土石流防災應變時 之資料需求進行功能設計,並輔以民眾於土石流避難逃生使用之需求, 但因個人資料保護法限制,故有一小部分之功能需具備權限的人方能 使用。系統規劃為利用 Android Studio 開發平台建置土石流防災管理 應用程式,以中央氣象局提供之雨量更新資訊、行政院農委會水土保 持局之土石流警戒資訊、高雄市政府社會局之避難收容處所資訊及高 雄市政府水利局 104 年度強化土石流防災整備及應變研判執行計畫之 土石流防災資料庫,結合 Google Maps Android API、KML、JSON、XML 及 CSV 語法撰寫程式碼。一般民眾使用本應用程式可檢視土石流潛勢 溪流、土石流避難收容處所、直升機起降點位置及各里土石流防災地 圖,即時掌握附近雨量站之雨量及土石流紅黃警戒狀況,並可依系統 規劃之避難收容處所導航前往,進行避難撤離。另防災業務相關專責 人員操作本應用程式可進行土石流保全清冊查詢,對於發布土石流警 戒時更能準確掌握各里之保全戶數及所在位置。. 2.
(15) 1.2 研究目的 藉以本研究執行 Android 系統土石流防災管理應用程式之開發與 實作過程中,達到下列三項目的。 a.. 離線地圖與圖資建置 因山區民眾在颱風或豪雨期間網路時常受阻,此時防災相關資訊. 取得較不易,影響民眾疏散避難之訊息掌握,嚴重可能導致民眾受困 於災害潛勢範圍。故本研究運用地理資訊系統將土石流相關災害防救 圖資轉為 Keyhole Markup Language 形式,透過 Google Earth 轉化為 Java 語言可分析之資料結構,最後由 Android Studio 及 Google Maps Android API 將土石流潛勢溪流、土石流潛勢溪流影響範圍、土石流避難收容處 所及直升機起降點圖資以「可離線化」方式呈現於地圖畫面上,讓使 用者不因網路斷線而影響應用程式功能之操作。 b. 防災應變功能開發設計 多數在災害潛勢區域內之民眾曾參與過防災宣導活動,然在實際 面臨災害時可能因緊張而忘記防災避難相關資訊,另外未參與宣導的 民眾對於防災相關資訊也較不熟悉。對此本研究所開發之應用程式功 能設計部份為解決上述問題,提供圖層資訊檢視、土石流避難收容處 所查找、土石流防災地圖檢視功能,讓民眾平時、災時皆能準確掌握 土石流防災應變相關訊息。另外,應變專責人員於災時所需之撤離人 數及收容處所收容情形等訊息,本研究開發之應用程式也具備保全清 冊查找功能,讓防災人員可依資訊進行疏散撤離並提供應變專責人員 確實掌握撤離人數。. 3.
(16) c.. 災害資訊管理實作 考量應變時防災專責人員所需接收之即時、累積雨量資訊與土石. 流紅黃色警戒,提供以資料庫及資源庫為基底建置一土石流防災管理 應用程式。以結合中央氣象局提供之雨量更新資訊、高雄市政府社會 局開放之避難收容處所資訊、行政院農委會水土保持局之土石流警戒 資訊以及高雄市水利局 104 年度強化土石流防災整備及應變研判執行 計畫之土石流防災資料庫等資訊,讓使用者在發布豪雨警特報時可迅 速掌握土石流警戒及避難收容處所位置資訊,於平常無警戒時也能查 詢鄰近之避難收容處所位置,讓使用者於災前便能掌握防災相關資 訊。. 1.3 研究流程 本論文研究過程,大致可下列幾個步驟:研究主題構思、文獻蒐 集回顧、Java 語言學習撰寫、系統設計與開發、系統架構建置、實機 測試及程式偵錯、研究結論與建議。下圖 1- 1 為本論文的研究流程圖。. 4.
(17) 圖 1- 1 研究流程圖. 5.
(18) 1.4 論文架構 依據上述研究動機、研究目的與研究方法,本研究於「Android 系 統土石流防災管理應用程式之開發與實作」 ,共規劃五個章節進行論述, 各章節內容與概要介紹分述如下: 第一章. 緒論. 針對本研究之研究背景、研究目的與研究流程個別敘述,並對研 究架構與流程規劃作一整體性之說明。 第二章. 研究領域相關技術之探討. 第二章為本研究相關之文獻回顧,包含土石流防救災相關資訊技 術回顧與本研究使用到之 Java、KML、XML、JSON 及 CSV 程式語言 概述,以及 Google Earth、Google Maps Android API v2 與 Android 應 用程式開發平台介紹。 第三章. 系統規劃與功能設計. 第三章為系統架構說明,介紹本研究所有應用程式開發技術之概 念與設計思維,包含主程式、離線主程式、圖層資訊、地圖導航及資 料庫連線系統、資源庫系統程式撰寫思維。 第四章. 系統實作與應用. 第四章為系統操作實測與分析,展示應用程式於實機之運行情形 與操作畫面及說明。 第五章. 結論與未來展望. 綜合本研究於土石流防災管理應用程式開發流程與實作應用說明, 並提出未來相關研究所需考量之方向與展望。. 6.
(19) 第二章. 文獻回顧暨相關研究技術探討. 災害管理之定義為受到災害威脅時所進行減災、整備、應變、與 復原措施,並由國家部門結合地方政府、店家及民眾相互配合執行。 氣候所導致之潛勢災害對於防救災應變僅僅是個開始,需藉由政府單 位各層級的整合編制,並提高民眾防災意識,方能克服災害所帶來的 嚴重影響。其中最關鍵的環節─防災應變工作,應由先進之資訊技術 取代舊式警報系統,並根據該資訊技術進行災前預報及分析未來可能 帶來的災害影響,研擬相關防災流程及應變作為(Mareks et al., 2015)。 舉例而言,在許多先進的歐洲國家中,由於移動通信訊號範圍遠 大於人口分佈範圍,智慧型手持行動裝置用於災害預警已相當普遍 (Guha et al., 2014) 。 資策會(Foreseeing Innovative New Digiservices)日前公佈 2015 年 3 至 4 月期間,智慧型行動裝置普及率之統計結果,調查方式以隨 機抽樣電話訪問 1,200 位 12 歲以上之民眾。結果顯示國內 12 歲以上使 用智慧型手持行動裝置或平板電腦者已達到 1,604 萬人,約每 4 人便有 3 人為行動裝置使用者,相較 2014 年調查結果,國內行動裝置用戶已 增加 170 萬人。其中智慧型手持行動裝置普及率約 73.4%,推估約 1,525 萬用戶。智慧型手持行動裝置使用率如此普及,透過土石流防災管理 應用程式之設計將防災管理行動化已不再是紙上談兵。 市售的電子設備中,行動裝置用於災害管理是相較有利的,像是 智慧型手持行動裝置(如 Apple iPhone, Samsung, Blackberry)與蜂窩型 數據或 Wi-Fi 連結並搭配攝影器具便是一個功能完備之選擇,且價格低. 7.
(20) 廉、取得容易,讓防救災專責人員不論身在何處都能將防災相關資訊 隨身攜帶(David et al., 2016)。 本研究對象主要以防災業務相關專責人員針對土石流防災應變資 料需求為設計方向,輔以民眾於土石流避難逃生使用之需求,但因個 人資料保護法限制,故有部分功能需權限方能使用。利用 Android 系統 開發土石流防災管理應用程式,以中央氣象局提供之雨量更新資訊、 高雄市政府社會局之避難收容處所清冊、行政院農委會水土保持局之 土石流警戒資訊以及高雄市政府水利局 104 年度強化土石流防災整備 及應變研判執行計畫之土石流防災資料庫,結合 Google Maps Android API、KML、JSON、XML 及 CSV 撰寫程式碼。一般民眾使用本應用 程式可檢視土石流潛勢溪流、土石流避難收容處所、直升機起降點資 訊及各里土石流防災地圖檢視,即時掌握附近雨量站之雨量及土石流 警戒狀況,並可依系統規劃之避難收容處所導航前往,進行疏散撤離。 另防災業務相關專責人員操作本應用程式可進行土石流保全清冊查詢, 對於發布土石流警戒時更能準確掌握各里之保全戶數及所在位置。以 下為本研究之相關文獻參考:. 8.
(21) 2.1 國內外應用程式開發技術探討 目前國內外最普遍的智慧型裝置作業系統為 Android 及 iOS 兩大 系統,Android 作業系統是一種支援多位使用者的 Linux 系統,以 Java 程式語言編寫而成,在這種系統中,每款應用程式即代表不同的使用 者。Android SDK 工具可將程式碼連同其它相關資料和資源檔案編入 APK (Application package file,附檔名使用.apk 的封存檔),包含 Android 應用程式的所有內容,搭載 Android 作業系統的裝置會使用這 種檔案來安裝應用程式。在預設情況下,每款應用程式會在專屬的 Linux 處理程序中執行,在需要執行應用程式元件時啟動處理程序,並 在不執行應用程式元件或系統復原記憶體供其他應用程式使用時關閉 處理程序(Android Developers, 2015)。 Android 作業系統架構由上到下分為應用程式層(Application Layer)、應用程式框架層(Application Framework Layer)、函式庫層 (Library Layer)及 Linux 核心層四個層次,如圖 2- 1 所示,以下分別 論述之。. 9.
(22) 圖 2- 1 Android 作業系統架構 a.. 應用程式層(Application Layer). 考慮高度跨平台可攜性,故以 Java 語言撰寫,其本身提供虛擬機 器做為執行環境,可跳脫實體架構框限,編譯好之程式碼可直接於不 同平執行,同時也可以使用應用程式框架的 API 實現想要的功能。過 去在嵌入式系統上因考量效能問題,因此採用 Java 為系統主要程式語 言的情況並不多。但 Android 系統以中高階之手持式裝置為定位目標, 就當前系統晶片的發展來看,使用此類型之嵌入式微處理器效能與記 憶體資源都足以支持 Java 的程式運行(梁, 2010)。. b. 應用程式框架層(Application Framework Layer) 應用程式框架層提供程式開發者能以堆積元件的方式快速建置應 10.
(23) 用程式,讓開發者可以很容易的重複使用各種控制元件,例如:List、 Text Box、Button 等功能。另外,其主要目的還包括將資源有限的手持 裝置建構合適之運行架構。有別於傳統 Linux 程式下標準 C/C++程式 運行方式,在 Android 程式的生命週期是由系統依資源分配情形與程式 執行狀態為基準所決定,應用程式必需遵循應用程式框架所定義的執 行流程來運行。在運行過程中,程式可在適當的時期由應用程式框架 得知程式本身的狀態,而能做出適當處置,讓程式不因突發的資源不 足而導致崩潰,以及避免重要資料突然遺失等嚴重問題發生。. c.. 函式庫層(Library Layer). 函式庫層讓具效能考量的應用程式(如較複雜之數學運算)能透 過函式庫的原生碼來執行,克服 Java 語言使用虛擬機器以解譯方式執 行之先天限制。此外,結合函式庫與 Linux 核心這兩個層次,讓應用 程式可間接操作硬體資源,同時區隔應用程式與硬體相關的程式,使 應用程式可更容易地移植到不同平台上。函式庫內容多由 C/C++語言 實現,開發者可透過應用程式框架使用函式庫內部之功能(梁, 2010)。. d. Linux 核心層 Android 作業系統之核心為 Linux 核心的一部分,具有典型 Linux 排程和功能。當 Linux 核心與函式庫層移植完成後, 應用程式層與應 用程式框架層通常能完整保留,並於新平台上直接運行。. 11.
(24) iOS 作業系統使用了和 MAC OS X 作業系統相同的 UNIX 核心, 以 Objective-C 或 Swift 程式語言編寫而成,且主要用於 iPhone 及 iPad 裝置。iOS SDK 提供了多項 API 與服務,提供實現應用程式類別的功 能。多任務處理及擴展後的搜索功能提供了對 CloudKit、HomeKit、 HealthKit 及 MapKit 的支持,將 iOS 的應用範圍延伸到更多的領域中 (Apple Developers, 2015)。 iOS 作業系統架構由螢幕反應順序分別為 Cocoa Touch、Media、 Core Services 及 Core OS 四層,如圖 2- 2 所示,以下分別論述之。. 圖 2- 2 iOS 作業系統架構. 12.
(25) a.. Cocoa Touch Layer. Cocoa Touch Layer 包含建置 iOS 應用程序的關鍵框架,這些框架定 義應用程序的外觀,並提供基本的應用程序基礎性設定和關鍵技術, 如多任務處理、基於觸摸的輸入、推送通知及許多支持高階的系統服 務。. b. Media Layer 多媒體應用層是用 C 和 Objective- C 程式語言混合寫成,包含基本 類別庫所支持 2D 和 3D 的界面繪製、音頻及視頻播放的技術。. c.. Core Services Layer. 核心服務層定義了所有的應用程序使用的基本類型,包括了 Foundation 核心類別庫、CFNetwork 類別庫、SQLite 類別庫、訪問 POSIX 線程類別庫及 UNIX sockets 的通訊類別庫等。這一層還包含單 獨的技術支持功能,如位置、雲端、社群媒體和網絡等。. d. Core OS Layer 核心操作系統層包含了部份建立在低層級的功能與技術,即使在 應用程序中不直接執行這些技術,仍可被其他框架使用。核心操作系 統層使用基礎性編碼,如底層的數據的類型(low-level data types)、 Bonjour 服務(用來提供設備和電腦通訊的服務)及網絡連接類庫等。. 13.
(26) 綜整上述,將 Android 與 iOS 作業系統做比較,如表 2-1 所示。 表 2- 1 Android 與 iOS 作業系統比較 作業系統. Android. iOS. 核心系統. Linux. OS. 系統模式. 開放. 封閉. 系統限制. 少. 多. 開發費用. 免費. 免費. 支援廠商. LG、HTC、Samsung、 Apple SONY…等. 開發環境. 不受限. 上傳 Google Play. 25 美金/帳戶(不限時. 開發人員註冊費. 間、不限上傳數). 優勢. 缺點. 僅 Mac OS 電腦 99 美金/年. 1. 應用程式高度跨平 台可攜性 2. 易於開發應用程式 的元件化設計 1. 硬體規格一致 3. 使用者經驗一致性 2. 系統較穩定、資源 4. 適用於使用 Google 品質高 服務及資源有限的 3. 建置環境較簡易 手持式裝置 5. 可兼顧效能 6. 容易移植至不同硬 體 1. 入門學習開發較困 1. 合作廠商過多,導 難 致硬體規格不一 2. 需特定設備方能建 2. Android 版本升 置開發所需環境 級,較舊型裝置不 3. 系統限制多 一定能支援 4. 設備昂貴、開發成 本高 14.
(27) 而本研究使用 Android 作業系統作為應用程式開發,主要原因歸 納為以下幾點: a.. 使用 Android 系統裝置之使用者遠多於 iOS,比例約為 4:1 (VPON, 2015),以此作為開發平台更能將應用程式發揚光 大。. b. Android 開發環境較不受電腦作業系統限制,可同時於 Windows 及 Mac OS 系統進行軟體開發,不需額外購置可建置 軟體環境之作業電腦。. c.. Android 系統為 Google 旗下之應用程式開發平台,而 Google 在導航及地圖等應用已相當成熟,以 Android 作為開發應用程 式之平台不僅較其它開發平台更容易取得上述應用功能, Google 也提供相關程式碼範例讓開發者撰寫程式碼更得心應 手。. 15.
(28) 2.2 防災相關應用程式研究 2.2.1Project NOAH 菲律賓位處於環太平洋地震帶,由於板塊運動因素,造就了菲國 境內多山脈、多島嶼、多火山及多地震之特性,也因此受到火山爆發、 菲律賓板塊移動之地震、太平洋之颱風災害、水災等災害也多於一般 國家。 菲律賓易受災害侵襲,另一主因為該國沿著西部太平洋邊排列, 而此一位置正是最易出現颱風的帶狀地區。在颱風期間,海岸及擴展 出的沼澤地所受到水災和暴風雨衝擊都是最直接及易受災之地區。 由上述之菲律賓的多災特性,Rolly Rulete 與 Smart Communications, Inc. 透過 Smart Developer Network 共同開發全國當前 災害評估(Nationwide Operational Assessment of Hazards)應用程式- Project NOAH(Rolly Rulete, 2015),並由 Republic of the Philippines Department of Science And Technology 提供相關資訊及內容,讓使用者 能即時掌握菲律賓地區之氣象及警戒資訊。在資料顯示方面,Project NOAH 分為地圖檢視及清單檢視模式(如圖 2- 3) ,地圖檢視模式可顯 示靜態及動態圖層,並將圖層分為四類: 「氣候概要(Overview)」 、 「多 普勒(Doppler)」 、 「傳感器(Sensors)」及「氣候預測(Weather Outlook) 」 (如圖 2- 4) 。 「氣候概要」包含等雨量線、等溫線、平均海平面氣壓等 圖層, 「多普勒」顯示各測站所偵測之光波資訊,「傳感器」包括各氣 象站、流速計、雨量計及潮位圖層, 「氣候概要」為雨量預測、天氣逐 時預報及颱風預警資訊。Project NOAH 提供各圖層間可相互疊加顯示 之功能(如圖 2- 5) ,讓氣象分析專家可透過此應用程式進行氣象研判。 16.
(29) 清單檢視模式則將資訊簡約條列化(如圖 2- 6 與圖 2- 7) ,將上述圖層 的四種分類以圖片或圖表方式顯示,讓使用者更容易查看資訊。 Project NOAH 也提供即時新聞推撥功能,包含三種新聞資訊來源: DOST-PAGASA、ClimateX 及 PAGASA-FFWS (Flood Forecasting and Warning Section)供使用者有更多即時資訊作為參考,如圖 2- 8 所示。 另外此應用程式在菲國十分受到重視,提供民眾 Facebook 粉絲專業及 網頁版程式之介面,並在第三十屆 PRAGMA(Pacific Rim Application and Grid Middleware Assembly)推廣及介紹此系統之應用。. 圖 2- 3 Project NOAH 功能列表. 17.
(30) 圖 2- 4 Project NOAH 地圖模式之四類圖層. 圖 2- 5 各圖層相互疊加顯示. 18.
(31) 圖 2- 6 Project NOAH 清單模式. 圖 2- 7 清單模式下氣象測站之即時資訊. 19.
(32) 圖 2- 8 即時新聞推撥功能. 20.
(33) 2.2.2Stay Safe in Jeju 韓國濟州島位於朝顯半島西南海上,東臨日本對馬島,其形狀由 地圖觀看為橢圓形,島中心有一漢努山,等高線以此山為圓心向外海 遞減。因濟州島位處一穩定之板塊上,發生地震災害之機率較小,其 主要災害為由季風影響所造成之洪災,以及鄰近國家地震引發之海嘯 災害,故在此一應用程式之影響範圍圖資為多為洪水及海嘯災害。 제주특별자치도 재난대응과, 2015)為濟州特別. Stay Safe in Jeju(. 自治道防災及對策總部所開發的防災應用程式,其核心思想為將信息 準確快速傳達至使用者手中,於發布災害時提供鄰近之醫療院所、警 察局、消防局、避難收容處所及災害潛勢範圍等相關圖層資訊(如圖 2- 9 與圖 2- 10) ,使用者可依喜好篩選防災資訊圖層及其他想關注之行 政區(如圖 2- 11) 。在離線資訊應用方面,Stay Safe in Jeju 依災害種類 分別說明臨災需知及防災要領(如圖 2- 12) ,讓使用者透過資訊進行自 主防災訓練,而各類圖層資訊也可於離線狀態時使用。 另外,Stay Safe in Jeju 提供了即時氣象資訊(如圖 2- 13)及災情 查通報之功能(如圖 2- 14) ,於臨災時民眾可透過此系統在第一時間通 報相關權責單位進行搶修或搶救,提升救援效率,另一方面彌補偏鄉 地區氣象資訊較不易接收之問題,同時也能在新聞播報前,各業務機 關就能迅速掌握各地目前災情,並抑制災情擴大。. 21.
(34) 圖 2- 9 Stay Safe in Jeju 發布災害快訊. 圖 2- 10 建議之鄰近避難收容處所及災害潛勢範圍圖資. 22.
(35) 圖 2- 11 Stay Safe in Jeju 圖資篩選顯示. 圖 2- 12 各類災害防災避難要領. 23.
(36) 圖 2- 13 Stay Safe in Jeju 氣象資訊顯示. 圖 2- 14 Stay Safe in Jeju 災情查通報系統. 24.
(37) 2.2.3DisasterPreventionNavi 東京都屬於亞熱帶型季風氣候,梅雨季來臨時容易受滯留風影響, 帶來豐沛雨量,夏季常因太平洋高氣壓籠罩,導致氣溫極度攀升,此 時常有颱風侵襲。初秋仍因太平洋高壓籠罩而持續高溫炎熱,秋末時 由於鋒面影響,使降雨機率增加,此時若結構穩定之低氣壓通過,則 易發生強風及強大雨。冬天時,南岸之低氣壓導致各地大雪,交通受 到影響。 ComNet System, INC. 以上述災害種類及民眾安全為核心所開發 的 DisasterPreventionNavi(ComNet System, INC., 2015)防災應用程式, 提供居住於東京都足立區之居民或遊客能對周遭避難收容處所、醫療 院所、警消單位、水災潛勢範圍等防災主題圖資進行篩選及檢視(如 圖 2- 15 與圖 2- 17) 。災害來臨時可透過點選上述圖資進行通話及導航 (如圖 2- 16)。於離線功能方面,提供了多種語言之防災指南(如圖 2- 18) ,針對洪水災害也以圖說方式描述洪災成因、類型及應變機制等, 讓使用者了解足立區可能發生之災害類型並學習災前整備之作業程 序。 此外,DisasterPreventionNavi 應用程式內建手電筒及警報鈴,面臨 危險或災害時可透過此防災小工具進行呼救及救援,如圖 2- 19 所示。. 25.
(38) 圖 2- 15 DisasterPreventionNavi 地圖檢視防災圖資. 圖 2- 16 點選圖資顯示資訊. 26.
(39) 圖 2- 17 DisasterPreventionNavi 清單檢視防災資訊. 圖 2- 18 DisasterPreventionNavi 防災指南. 27.
(40) 圖 2- 19 DisasterPreventionNavi 警報鈴功能. 28.
(41) 2.2.4高雄水情 e 點靈 由於台灣地處西太平洋亞熱帶地區,受北太平洋西部及中國南海 地區生成的颱風影響最多也最大。如民國 90 年的輕度颱風潭美,引進 的西南氣流帶來嚴重的豪雨重創高雄市,12 小時的總降雨量高達 500 公釐,打破高雄地區 200 年來暴雨頻率的紀錄,奪走了 5 條人命及超 過 13 萬住戶電力中斷等災害; 98 年莫拉克颱風造成高雄市那瑪夏、 甲仙、桃源、六龜、旗山、茂林、美濃等地區嚴重災害,其中以甲仙 區小林里遭土砂掩埋數十戶、數百人死亡;而 99 年凡那比颱風,亦造 成岡山、大社、楠梓、橋頭、永安、彌陀、梓官等區嚴重淹水災情。 綜合上述原因,高雄市政府為讓民眾可即時掌握氣象警報及災情 所開發之防災應用程式-高雄水情 e 點靈(Kaohsiung City Government, 2015) ,整合了中央氣象局、經濟部水利署及農委會水土保持局提供之 氣象、雨量、水情、潮位及土石流等即時資訊,讓使用者可隨時掌過 高雄市排水路水位、河川水位、水庫洩洪、雨量、氣象、土石流潛勢 溪流警戒、路口監視器影像等訊息。 高雄水情 e 點靈依功能規劃出四個畫面,分別為「水情」 、 「警戒」、 「氣象」及「訊息」 ,如圖 2- 21 所示。 「水情」包含水位、雨量、水庫 及道路影像之即時資訊(如圖 2- 22) , 「警戒」為水位、雨量、土石流、 水庫之警戒情報及高雄市各行政區之里民防災卡(如圖 2- 23~圖 2- 25), 「氣象」部分提供單張圖片或選擇動態輪播方式顯示衛星雲圖、雷達 回波圖、累積雨量圖、定量降雨預報圖、颱風路徑潛勢預測圖、颱風 七級風暴風圈侵襲機率圖及颱風暴潮監測,讓使用者便於觀察雲層變 化及趨勢(如圖 2- 26 與圖 2- 27),「訊息」則為中央氣象局發布警報 29.
(42) 時同步更新資訊。. 圖 2- 20 高雄水情 e 點靈開啟畫面. 圖 2- 21 高雄水情 e 點靈水情資訊功能頁面. 30.
(43) 圖 2- 22 高雄水情 e 點靈雨量站資訊. 圖 2- 23 高雄水情 e 點靈警戒資訊功能頁面. 31.
(44) 圖 2- 24 高雄水情 e 點靈土石流警戒資訊. 圖 2- 25 高雄水情 e 點靈里民防災卡資訊. 32.
(45) 圖 2- 26 高雄水情 e 點靈氣象資訊功能頁面. 圖 2- 27 高雄水情 e 點靈衛星雲圖單張及輪播顯示. 33.
(46) 2.2.5生活氣象 台灣位處於西太平洋颱風帶及環太平洋地震帶,經常遭遇天然災 害的嚴厲挑戰,再加上人為對自然環境的不當使用、任意破壞,使得 重大災情的災害屢屢發生,如颱風、梅雨、乾旱、地震等,造成許多 寶貴人命與資產的相繼損失。 為使民眾能於災前掌握即時天氣動態訊息及預警通知,由中央氣 象局所開發之生活氣象應用程式(中央氣象局, 2015),提供多元化的 資訊服務管道,讓使用者掌握目前所在地區之天氣狀況或台灣其他地 區之即時氣象,如圖 2- 28 所示。另也提供今、明、未來一週之天氣預 報、近海漁業、衛星、雷達及雨量圖等資訊,圖 2- 31 與圖 2- 32。 警特報方面包含地震、颱風災害等及天氣特報相關警戒資訊,於 災害發佈時進行即時推播,使用者不必擔心資訊漏接問題,如圖 2- 29 與圖 2- 30 所示。. 圖 2- 28 生活氣象目前所在地之氣象資訊 34.
(47) 圖 2- 29 生活氣象警特報文字內容推播. 圖 2- 30 生活氣象警特報互動式圖片推播. 35.
(48) 圖 2- 31 生活氣象資訊分類頁面. 圖 2- 32 生活氣象雨量觀測之累積雨量圖輪播. 36.
(49) 2.2.6土石流防災資訊整合版 土石流防災資訊整合版(行政院農委會水土保持局, 2015)為行政 院農委會水土保持局以全民防災概念所開發之應用程式,目的為將土 石流防災資訊網行動化,讓使用者可不必透過網頁瀏覽,直接掌握最 新之土石流相關訊息。 土石流防災資訊整合版以主題圖資、雨量站資訊、土石流警戒、 氣象圖、觀測站影像及雨量查通報六種功能為主,如圖 2- 33 所示。主 題圖資包含全國土石流潛勢溪流、雨量站及避難處所資訊,點選畫面 上的圖標可連結至圖層之詳細訊息,如圖 2- 34 與圖 2- 35 所示。雨量 站資訊及土石流警戒皆以條列方式顯示目前資訊,如圖 2- 36 與圖 2- 37 所示;氣象圖為中央氣象局提供之累積雨量圖、可見光雲圖、有地形 雷達回波圖等資訊,如圖 2- 38 所示;觀測站影像顯示當前各土石流潛 勢溪流上、中、下游之情形,如圖 2- 39 所示;雨量查通報功能為利用 智慧型手持行動裝置內建定位及拍照功能,將颱風豪雨期間當地雨量 及影像等資訊上傳至水土保持局系統,作為防救災機關研判現地情勢 之決策參考,如圖 2- 40 所示。. 37.
(50) 圖 2- 33 土石流防災資訊整合版功能一覽. 圖 2- 34 土石流防災資訊整合版地圖圖層. 38.
(51) 圖 2- 35 土石流防災資訊整合版點選雨量站圖例之詳細資訊. 圖 2- 36 土石流防災資訊整合版土石流警戒資訊. 39.
(52) 圖 2- 37 土石流防災資訊整合版雨量站資訊. 圖 2- 38 土石流防災資訊整合版氣象圖. 40.
(53) 圖 2- 39 土石流防災資訊整合版觀測站影像. 圖 2- 40 土石流防災資訊整合版雨量查通報系統. 41.
(54) 綜觀上述國內外文獻回顧結果,開發執行效能高且具實用性之應 用程式不僅需考量使用對象之需求,對於功能及介面上之規劃也應多. 國 外 防 災 相 關 應 用 程 式. 加思索。以下為上述國內外相關防災應用程式之優缺點: 表 2- 2 國外防災相關應用程式之優缺點 名稱 優點 缺點 分為地圖及清單檢視模式,地圖圖 層分類清楚且可進行疊加,適合應 在網路未連線時圖 用於動態分析研判;清單模式便於 資、清單資訊及新聞皆 Project NOAH 資訊查找且以圖片方式顯示,讓使 無法顯示,對於訊號不 用者對於目前氣候資訊一目了然, 穩地區之使用者較不 新聞推播功能方面提供了三種來源 便利。 讓使用者擁有多方面資訊參考。 使用者在發布災害時可立即掌握鄰 近之醫療院所、警消單位、避難收 容處所及災害潛勢範圍資訊,並撥 打防災場所電話或導航前往之,且 當網路斷線重新連線 圖層資訊皆能於離線狀態時顯示及 時,應用程式即出錯閃 Stay Safe in Jeju 使用。依各類災害分別說明防災要 退。 領,讓使用者透過資訊進行自主防 災訓練。災情查通報功能便於使用 者臨災時能即時傳達災情資訊給防 救災相關單位。 擁有多達 22 種防災應變相關離線圖 資可篩選及檢視,災害來臨時透過 點選圖層進行通話及導航。離線功 能方面,提供多國語言之防災指南 並以圖說方式描述災害成因、類型 缺少氣象及災害即時 DisasterPrevention 及應變機制等,讓使用者了解足立 訊息,圖層底圖資訊過 Navi 區可能發生之災害類型並學習災前 多不易觀看。 整備之作業程序。此應用程式內建 手電筒及警報鈴,面臨危險或災害 時可透過此防災小工具進行逃生及 救援。. 42.
(55) 國 內 防 災 相 關 應 用 程 式. 表 2- 3 國內防災相關應用程式之優缺點 名稱 優點 缺點 在網路斷線情形下,此 應用程式所有資訊將 整合中央氣象局、經濟部水利署及 無法觀看,對於居住於 農委會水土保持局提供之氣象、雨 高雄水情 e 點靈 訊號接收不易地區之 量、水情、潮位及土石流等即時資 使用者,當災情嚴重時 訊,讓使用者可隨時掌握。 此系統之穩定性存在 疑慮。 僅提供氣象相關資 顯示所在地區之天氣狀況或其它地 訊,並無疏散避難相關 區之即時氣象,另也提供使用者未 訊息,使用者接收警特 來一週之天氣預報、近海漁業、衛 報資訊後仍需透過網 生活氣象 星、雷達及雨量圖等資訊。在警特 路或平面資訊方能得 報方面包含地震、颱風災害等警戒 知避難收容處所、潛勢 資訊,並於災害發佈時即時推播。 溪流位置、潛勢溪流影 響範圍等資訊。 將土石流防災資訊網建置於智慧型 裝置,其資訊包含全國土石流潛勢 針對圖層資訊未提供 溪流、雨量站、氣象圖、觀測站影 土石流潛勢溪流影響 像及避難處所等詳細資訊,並提供 範圍,使用者在規劃前 土石流防災資訊 雨量查通報系統,結合智慧型手持 往避難收容處所時,可 整合版 行動裝置內建定位及拍照功能,將 能還是會經過影響範 颱風豪雨期間當地雨量及影像等資 圍,有危險之疑慮,另 訊上傳至水土保持局系統,作為防 未支援離線功能稍嫌 可惜。 救災機關研判現地情勢之決策參 考,貫徹全民防災之概念。. 43.
(56) 2.3 Android 平台開發基礎簡介 Android 起源於 2007 年由 Google 聯合 Samsung、HTC、Motorola 等手機製造商、晶片商、軟體供應商及電信業者等,共同發布之開放 式手機軟硬體平台,目前最新的系統版本為 2015 年 6 月發布 Android 6.0 Marshmallow,為本研究應用程式編寫系統版本。Android 開發環 境可於 Windows2003 版本以上、Mac OS X10.8.5 以上或 Linux 等作業 系統中安裝,以 Java 語言撰寫,應用程式多以 Eclipse 或 Android Studio 開發環境為主。但因 Android 官網已不再支援 Eclipse,且建立 Eclipse 開發環境需依序安裝 Java 開發工具包(JDK) 、Eclipse 整合開發環境、 Eclipse 專用之 Android 開發工具外掛(ADT)及 Android 軟體開發工 具包(SDK)等(鄧, 2015),建置流程過於複雜,故本研究主要使用 環境建置較簡易之 Android Studio 進行程式編譯及除錯。. 圖 2- 41 Android Studio 開啟畫面 44.
(57) 圖 2- 41 圖 2- 41 為 Android Studio 開啟畫面,可建立新專案、開啟 已存在之專案、匯入 Android 官方提供之範例程式、匯入非 Android Studio 之專案及軟體相關等設定。圖 2- 42 為專案建立後之程式基本架 構,主要分為 app 資料夾及 Gradle Scripts 資料夾目錄,app 資料夾包 含紀錄應用程式各種細節定義之 mainfests 檔,存放所有主程式 java 檔 程式源碼之 java 子目錄,以及存放圖片、影音、版面配置設定及參數 設定等檔案之 res 子目錄資料夾。Gradle Scripts 資料夾主要設定或修改 應用程式版本、SDK 路徑、偵錯模式及資源檔等。 另外,Android Studio 提供 Android 模擬器(AVD),可於電腦中 模擬不同 Android SDK 版本、不同螢幕大小及解析度之智慧型行動裝 置,包含 SD 外接記憶卡、觸控式螢幕、數位相機等功能。. 圖 2- 42 storyboard 設計畫面. 45.
(58) 2.4 Activity 與 Fragment 於智慧型行動裝置上,應用程式頁面稱為 Activity,由 Activity 進 入後可分為不同區域就是 Fragment,如圖 2- 43。. 圖 2- 43 Activity 與 Fragment 關係圖 Activity 為一與使用者互動之元件,通常為全頻幕顯示,而一個 Android 應用程式通常是由多個 Activity 組成,其中會有一個 Activity 為主頁面,即使用者啟動應用程式時所展現之畫面,隨後根據使用者 操作來執行其他 Activity。當連接至新的 Activity,先前的 Activity 就會 變為暫停狀態,系統將其儲存於 Activity 堆疊中(吳, 2014)。 Fragment 為 Android 3.0 之後推出的模組功能,增加互動介面上之 彈性,其主要依附於 Activity 上,可透過自身相關 API 將資源保留, 重複使用以降低開發成本。Fragment 有自己的生命週期並可交互使用, 進而分享目前所有依附在 Activity 上的 Fragments UI 元件,自由地在 Activity 中部屬與共享(段, 2015)。. 46.
(59) 綜合上述,Activity 與 Fragment 之關係密不可分,本研究主程式即 使用 Activity 進行佈署,離線主程式則使用 Fragment 設計開發,以下 為兩者生命週期之比較:. 圖 2- 44 Activity 與 Fragment 生命週期比較. 47.
(60) a.. 活躍狀態. 此狀態處於使用者介面前端,同時使用者可透過目前介面進行輸 入,若輸入指令為啟動其他 Activity 或 Fragment 時,原 Activity 或 Fragment 將轉變為暫停狀態。. b. 暫停狀態 此狀態發生於應用程式畫面最上層有一透明或非全頻幕顯示之 Activity 或 Fragment,如交談視窗。一般而言,Android 不會結束此狀 態下之 Activity 或 Fragment,但當記憶體資源匱乏時系統會自動啟動回 收機制。. c.. 結束狀態. 當 Activity 或 Fragment 在使用者介面上已經無法看見時即為結束 狀態,Android 系統會儲存此狀態下的 Activity 或 Fragment 於記憶體 中,以便於狀態需轉為可見時,能迅速顯示在介面上。. d. 銷毀狀態 Activity 或 Fragment 徹底關閉後,其狀態轉為非活躍,此時 Activity 或 Fragment 將從堆疊中移除。. 48.
(61) 2.5 Java 程式語言簡介 Java 最早是 Sun 公司綠色專案(Green Project)中撰寫 Star7 應用 程式的程式語言,在發展過程中,由於 Java 的應用領域越來越廣,並 逐漸擴及至各級應用軟體的開發。於 1999 年公佈新的 Java 體系架構, 根據不同級別之應用開發分為三大平台:Java SE、Java EE 與 Java ME, 其中 Java SE 為本研究開發應用程式之基礎平台。Java SE 可分作四個 主要部分:Java 虛擬機器(JVM) 、Java 執行環境(JRE) 、Java 開發套 件(JDK)及 Java 語言(林, 2014) Java 語言特性為支援物件導向、網路及跨平台執行,記憶體管理 方面改用自動釋放物件記憶體方式進行,當物件不再接收其它物件時 系統將自動釋放其所占用之記憶體。依據系統版本越新,記憶體自動 回收機制越有效率。Java 編譯之檔案附加檔名為 .java,包含類別的名 稱、實體變數及方法之實作。下圖以本研究成果部分程式碼作為 Java 基本架構介紹,如圖 2- 45:. 49.
(62) MapActivity.java package com.felix.test; import android.content.Intent; import android.location.Location; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.View; import android.widget.Toast; import com.google.android.gms.maps.GoogleMap; import static com.felix. test.MainActivity.Location; public class MapsActivity extends FragmentActivity implements LocationListener { private GoogleMap mMap; public final static String DATABASE_NAME = "date.db"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); } //加入 LocationListener 介面需要實作之方法 @Override public void onLocationChanged(Location location) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { @Override public void onProviderEnabled(String provider) { } @Override public void onProviderDisabled(String provider) { } }. 圖 2- 45 Java 語言基本架構. 50. }.
(63) “package”後需加入應用程式套件名稱,避免與其它專案造成衝突; “import”為使用元件、參數或方法時,需引入對應之命名空間的語法, 而部分元件需透過 gradle 建置後才能“import”至專案。“import”後面加 上“static”則為靜態變數,目的是讓不同類別或 .java 檔能使用該變數。 「public class MapsActivity extends FragmentActivity implements LocationListener」表示此類別名稱為 MapsActivity 並繼承(extends) FragmentActivity 類別,且需實作(implements) LocationListener 介面, 開頭“public”表示此類別可由外部取用; 「private GoogleMap mMap;」宣 告 mMap 為接收 GoogleMap 元件內容之變數,且僅限於 MapsActivity 類別中使用; 「public final static String DATABASE_NAME = "date.db";」 表示此靜態不可變之字串型態物件可於其他類別進行取用,在宣告任 何參數物件或方法時,都必需在 MapsActivity “{”與“}”間進行程式碼編 寫;“@Override”表示需要覆寫放置其下方之方法如“onCreate”、 “onResume”、“onLocationChanged”等,於方法前的“void”則代表此方法 不需回傳任何值,於方法後小括號內依序為傳送之參數型別及參數。 參數型態為“Bundle”表示其功能為接收應用程式執行時傳遞參數,如程 式啟動、切換背景及傳送資料等;在“onCreate”方法中,“super”之含義 為上層的類別,在此範例中上層類別為 FragmentActivity,所以 「super.onCreate」表示執行 FragmentActivity 類別的 onCreate 方法; “setContentView”方法將版面配置檔之內容呈現於畫面上; 「R.layout.activity_maps」的“R”表示資源檔(res)資料夾,“layout”表 示版面配置資料夾,“activity_maps”為版面配置檔之名稱。“//”為單列 註解符號,此符號後之程式碼將不會執行。 51.
(64) 2.6 Google Earth 與 KML 簡介 2.6.1 Google Earth Google Earth 為一套以 3D 方式呈現地表全貌之地圖軟體,於 2004 年 Keyhole 加盟 Google 後隔年所推出。若為非商業用途,使用者 皆能免費使用此軟體及衛星圖片資訊,其資料來源為美國航空航天局 提供之衛星圖像。為協調訊息與資料量之關係,Google Earth 透過區域 地理位置重要性不同匹配相對應之衛星影像解析,根據視野範圍自動 調整成適當的解析度圖像。向量資料來源為內部已建置之向量資料庫, 並支援用戶採集與應用本地向量資料並進行分析(江, 2011)。 隨著地理資訊系統應用的演進,各式各樣的 GIS 相關工具不斷推 陳出新,從以往專業用途的 GIS 資訊系統,到近年來 GIS 系統紛紛開 放原始碼(如 Quantum GIS)或是免費版本的應用服務軟體(MapGuide Open Source),以及目前廣為公眾使用的 Web-based 共用性圖台(如 Google Maps 及 Google Earth) (潘, 2010)。目前在多樣性的 GIS 方 案中,本研究朝向開發簡單、應用面廣及運作效能較高之 Google Map 以及 Google Earth。. 52.
(65) 2.6.2 KML KML 為 Keyhole Markup Language 之縮寫,其編譯方式類似 XML 語言,與 XML 有著相近之語法與格式,相異處為 KML 主要用於描述 地理要素相關資訊如點、線、面、文字描述、圖像等,且可透過 Google Earth 或其他編輯器建立(馬, 2011) 。Google Earth 處理 KML 檔案方式 如同網頁瀏覽器處理 HTML,KML 以名稱及屬性之標記結構作為特定 顯示用途,下圖以本研究成果部分程式碼作為 KML 基本架構介紹, 如圖 2- 46:. 圖 2- 46 KML 基本架構 53.
(66) 由圖 2- 46 可發現所有抽象標籤都是被有尖括弧“< >”之實體標籤 包覆,第一列為此檔案版本及使用之編碼方式,第二列<kml>及第三列 <Document>為容器類標籤,可包括 Feature、Style 及 Schemas 元素。 Feature 元素所包含之屬性皆與物件資料本身顯示相關,如第四列至第 三十四列。<name>表示該物件之名稱,<visibility>為能見值,1 為可見, 0 為不可見;<Style>為樣式設定,包含圖標大小、樣式、標籤顏色等。 <Placemark></Placemark>為地標設定,其中<description> 功能為單擊 地標圖示或地名欄裡的要素名稱時,彈出包含文字的氣泡框。氣泡框 內的文字即<description>標籤裡之內容,可使用 HTML 格式進行描述, 如第二十一列至第二十八列;<Point>中定義了此地標之座標,在本例 中為東經 120.6453820127283°,北緯 22.99413349945153°,高度 0 公尺。. 54.
(67) 2.7 Google Maps Android API v2 隨著科技不斷進步以及通訊技術飛速發展,報章雜誌、電視新聞、 網站等各種媒介不斷傳播全球各地之資訊,任何一處的人類活動都可 能影響整個世界。在國內外各大網站相應服務的誕生,基於此的協力 廠商應用也越來越多,而 Google 作為此項革新之發掘者,為網際網路 平台帶來了操作簡易之 Google Maps API,便於 Google 地圖技術與其 它系統整合應用(江, 2011)。本研究在開發 Android 應用程式時即使 用 Google Maps Android API v2 進行導航功能及地圖資訊編譯。 Google Maps Android API v2 為 Google Maps 提供給 Android 開發 者使用的 API(Application Programming Interface,又稱為應用程式介 面) ,能以街道及衛星模式顯示地圖,且地圖可讓使用者進行縮放、拖 曳及偵測目前位置等功能,另外也能依據使用者需求客製化地圖圖標 及資訊(鄧, 2015) 。 在開發 Google Maps 相關應用程式前需在 Android SDK Manager 下載及設定 Google Play services SDK,並於 Google Developers Console 網站申請 API 金鑰(API Key)。完成 API Key 申請後會顯示一串授權 碼,此授權碼會依據使用者輸入的 API Key 判定應用程式為偵錯模式 (Debug)或發佈模式(Release)。偵錯模式只能在實體智慧型行動裝 置連結 Android 開發平台時,進行程式除錯使用。發佈模式則可於應用 程式發佈至 Google Play 商店或打包成 APK 檔時使用地圖。. 55.
(68) 在此 API 中包含位置感知功能,提供使用者所在位置訊息、地點 搜尋及擷取本地商家資訊。另外提供開發者豐富的 Android 資料庫以及 可添加地理資訊圖層功能等,便於擴充實用程序庫之開發應用。以下 介紹本研究中始用之功能:. 2.7.1 Google Maps 物件定位設定 Android 提供之定位方式分為 GPS 及網路連線兩種,其中 GPS 定 位較準確,但需於衛星可接收之範圍方能使用,網路連線定位雖不及 GPS 精準,但不論室內或室外,只要在有網路涵蓋之範圍皆能取得位 置資訊。 Google Maps Android API v2 提供的 LocationManager 類別,可設定 耗電量、精準度、回傳相對位置等參數,並判斷目前設備取得定位資 訊之最佳方式。使用步驟如下: a.. 實作 LocationListener 類別. 因 Java 中類別僅能單一繼承,如需多重繼承則需利用介面實施進 行操作,實作程式碼如下: public class MapsActivity extends FragmentActivity implements LocationListener { @Override public void onLocationChanged(Location location) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { } 56.
(69) @Override public void onProviderDisabled(String provider) { } } 上述程式碼中,分別有四個@ Override 以實作 LocationListener 類 別,依序為 onLocationChanged()、onStatusChanged()、 onProviderEnabled()及 onProviderDisabled()。 onLocationChanged()方法為裝置位置改變時啟動;onStatusChanged ()負責處理位置改變後重新抓取新點位;onProviderEnabled()方法 以 LocationManager 宣告物件後,在偵測到 GPS 或網路定位為開啟狀態 時,使用 requestLocationUpdates()啟動定位功能;onProviderDisabled ()處理當 GPS 或網路定位為關閉狀態時,用 LocationManager 宣告之 物件執行 removeUpdates()來停止定位功能。. b. 利用 Criteria 物件取得最佳定位方式 Criteria 類別為選擇適當定位方式之判斷標準,如採用系統自動判 別則可省略設定物件參數。. c.. 定位服務啟動及關閉時機. LocationListener 類別的實作方法雖可透過 onProviderEnabled() 及 onProviderDisabled()設定定位服務開啟或關閉,但當裝置進入待 機狀態時,開啟的定位服務並不會停止,容易造成更多的資源消耗。 為了避免此一情形發生,本研究開發之應用程式將定位開啟及關閉之 動作寫入主程式類別 onResume()及 onPause()方法中。. 57.
(70) 2.7.2 Google Maps KML 導入實用程序 透過 Google Maps Android API v2,使用者可將 KML 物件轉為地 理資訊型態後以圖層方式部屬至地圖上,無需連接至網路即可透過 addLayerToMap()與 removeLayerFromMap()方法添加或刪除 KML 圖資。以下簡述 KML 導入實用程序之程式碼: private KmlLayer heliocopter; heliocopter = new KmlLayer(mMap, R.raw.heliocopter, getContext ()); heliocopter.addLayerToMap(); 第一列為宣告 KmlLayer 類別之參數 heliocopter,第二列則設定參 數資訊 KmlLayer(顯示地圖之名稱, 資料來源位置, 顯示之內文) ,第 三列為將 heliocopter 圖層添加至地圖。執行成果如下圖所示:. 圖 2- 47 添加圖層至地圖 58.
(71) 2.8 XML 可延伸標記語言(eXtensible Markup Language)是用於呈現包含 結構性資訊之電子文件的標籤語言,於 1998 年由全球資訊網發展協會 (World Wide Web Consortium)所訂定之標準。XML 之優點包含結構 簡單易懂,使用者及電腦容易理解,可擴展性高讓 XML 便於增加或修 改,可驗證性佳讓開發者與其設計原意無違和,且閱讀 XML 文件的使 用者不易誤會其結構意涵,平台獨立性可輕鬆擔任跨平台的內容載具 (Growbal, 2001)。 在 Android Studio 應用程式開發中,可發現介面設定、頁面選單及 參數設定等皆為 XML 格式之檔案,而 Android 已內建定義了許多標籤, 在撰寫 XML 文件上並不困難。圖 2- 48 為 XML 資料結構程式碼範例, 第一列表示 xml 的版本、編碼方式;第二列為版面配置屬性,在此為 線性版面配置。從標籤可以知道此 XML 之根元素為<LinearLayout>, 而</LinearLayout >為根元素的結尾標記,在任一 XML 檔案中,僅會存 在一根元素,而根元素裡可包含多個子元素,子元素中也可以有子子 元素等。第三、四列為設定介面方向、寬度及長度等參數;第五列至 第十列則是子元素,<TextView …/>表示於裝置畫面顯示“避難收容處 所”字樣,且 TextView 框架均依文字內容自動調整。. 圖 2- 48 XML 結構程式碼範例 59.
(72) 2.9 JSON JSON (JavaScript Object Notation)是一種輕量級、文字基底及語 言獨立的資料交換格式,它來自於 ECMA Script 的編譯語言,定義了 一套針對可攜式結構化數據之結構規則(Ecma International, 2013)。 JSON 採用完全獨立於語言的文本格式,但也使用了類似 C 語言家 族(包括 C、C++、C#、Java、JavaScript、Perl、Python 等)的一些習 性。這些特性使 JSON 成為理想的資料交換語言,若在網路上發送大 量資料,效能應該可以較為提升 (Speeding Up AJAX with JSON)。 JSON 主要的優點有:相容性高、格式易於瞭解、支援許多資料格式及 許多程式都有支援函式庫讀取或修改 JSON 資料(林憲民, 2012) 。JSON 主要由下述兩種結構建構而成:物件(object)及陣列(array),以下 針對此兩種型式進行概述: a.. 物件(object). JSON 物件是數對名稱與值的無序集合,以“{”為開始符號,“}”為 結束符號,名稱與值之間用冒號分隔,如圖 2- 49 所示。. 圖 2- 49 JSON 物件結構 (資料來源:Ecma International). b. 陣列(array) JSON 陣列結構是排序值之集合,以“[”為開始符號,“]”為結束符 號,陣列中的值由逗號分隔,如圖 2- 50 所示。. 60.
(73) 圖 2- 50 JSON 陣列結構 (資料來源:Ecma International) 本研究所開發之應用程式中,雨量資訊及土石流紅黃色警戒即依 據行政院農業委員會水土保持局所提供之 JSON 語言資料進行讀寫, 其格式範例如下所示: [{"county":"高雄市","town":"茂林區", "rainStationName":"萬山","min10":"-","hour24":"-", "belong":"局屬無人測站","time":"2015-12-25T09:40:00", "lat_WGS84":22.9059371,"lon_WGS84":120.6881039},{…},{…}] 由程式碼可得知此範例為一物件形式且內含三個陣列,第一個陣 列為九對物件名稱與值之集合,每一名稱與值皆以雙引號標記。. 2.10. CSV. CSV(Comma Separated Values) 是一種純文字檔格式,可作為應 用程式間相互交換的試算表資料。CSV 檔案裡的每一行都代表 Excel 檔中的一列,每一儲存格皆以逗號區隔。如果欄位或儲存格的內容含 有逗點,則以單引號或雙引號標記儲存格的內容。本研究以 CSV 格式 將高雄市水利局 104 年度強化土石流防災整備及應變研判執行計畫中 提供的土石流保全清冊資訊匯入應用程式專案內,並以設定權限方式 提供防災應變相關專責人員進行保全護疏散撤離之運用。. 61.
(74) 綜整上述各程式語言之語法介紹,將其特性及使用目的進行整理, 如下表所示。 表 2- 4 程式語言特性及目的統整表 程式語言. 語法特性. 使用目的. 支援物件導向、網路及跨平 台執行,記憶體管理方面改 應用程式各功能撰 Java. 用自動釋放物件記憶體方. 寫。. 式進行。 與 XML 語法類似,主要用 可離線圖層(土石流 於描述地理要素相關資訊 KML. 收容處所、直升機起. 如點、線、面、文字描述、 降點、土石流潛勢溪 圖像等,且可透過 Google. 流、土石流潛勢溪流. Earth 或其他編輯器建立。 影響範圍)。 用於呈現包含結構性資訊 之電子文件的標籤語言,其 介面設定、頁面選單 XML. 結構淺顯易懂、可擴展性 及參數設定。 高、便於增加或修改、可驗 證性佳及具平台獨立性。 相容性高、格式易於瞭解、 抓取中央氣象局雨量. JSON. 支援許多資料格式及函式. 站資訊、行政院水保. 庫讀取或修改 JSON 資料。 局土石流警戒資訊。 純文字檔格式,可作為應用 土石流收容處所詳細 CSV. 程式間相互交換的試算表 資訊、保全清冊。 資料. 62.
Outline
相關文件
營建工程系 不限系科 工業工程與管理系 不限系科 應用化學系 不限系科 環境工程與管理系 不限系科 工業設計系 不限系科. 景觀及都市設計系
在混凝土科技發展方面,則邀請日本東京大學野口貴文教授與中國北京建築大 學宋少民教授等國際知名混凝土工程學者,對於「Challenge to Regeneration and Conservation of
1.本招生以參與「工業工程與設備管理產學攜手專班」之國立霧峰農工 104 學年度日間部機 械科、國立秀水高工 104
更新日期 :2011/05/26 19:28 (中央社記者許秩維 宜蘭縣 26 日電).
李焯芬,地質及水利工程專家,曾任 香港大學副校長、香港大學專業進修
張庭瑄 華夏技術學院 數位媒體設計系 廖怡安 華夏技術學院 化妝品應用系 胡智發 華夏技術學院 資訊工程系 李志明 華夏技術學院 電子工程系 李柏叡 德霖技術學院
[r]
承辦單位: 大仁科技大學教學發展中心 協辦單位: