freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android的氣象信息采集系統(tǒng)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)-文庫(kù)吧資料

2024-12-15 09:34本頁(yè)面
  

【正文】 } } }。 15 Handler handler = new Handler() { Override public void handleMessage(Message msg) { if (() == ) { (, getString(), ).show()。 } } } }。 while (true) { if (() != 0) { (0)。 (bundle)。 (city, ())。 ( :) 心代碼如下: 設(shè)置一個(gè)定時(shí)器,每隔固定時(shí)間執(zhí)行一次服務(wù): TimerTask task = new TimerTask() { Override public void run() { intent = new Intent(, )。 主界面實(shí)現(xiàn) 一開(kāi)始,用戶點(diǎn)擊應(yīng)用程序按鈕運(yùn)行 LoadUI這個(gè) Activity,就會(huì)出現(xiàn)一個(gè)載入程序的畫面,如圖 51: 14 圖 51 運(yùn)行界面 首先, LoadUI 調(diào)用 GIFView 來(lái)生成圖 51 的畫面,其中中間的那個(gè)進(jìn)度條是一張動(dòng)態(tài)的 gif 圖片,然后 LoadUI通過(guò)一個(gè)定時(shí)器,每隔 800毫秒就調(diào)用一次服務(wù)( ) ,如果網(wǎng)絡(luò)連接正常則會(huì)獲得相應(yīng)城市的天氣信息(第一次運(yùn)行的時(shí)候是程序里面設(shè)置的一個(gè)默認(rèn)的城市),轉(zhuǎn)到 WeatherUI界面去。 就是可以將界面和應(yīng)用程序邏輯分離的模式。這個(gè)結(jié)構(gòu)可以很容易的構(gòu)建界面,它比你在源代碼中使用的結(jié)構(gòu)和語(yǔ)法更簡(jiǎn)單。 你可以使用任何繼承自 View類的名字作為標(biāo)簽的名字。 /res/drawable 目錄中保存的是圖像的文件,程序根據(jù)顯示的不同調(diào)用不同目錄(高分辨率drawablehdpi,中等分辨率 drawablemdpi,低分辨率 drawableldpi)下的圖片。 。 5 代碼實(shí)現(xiàn) 系統(tǒng)的命名空間 本系統(tǒng)項(xiàng)目名稱為 PalmarWeather,該項(xiàng)目設(shè)置了多個(gè)命名空間,將所有的代碼文件進(jìn) 行了分類,總共分成了六大類,具體的各個(gè)包名(命名空間)以及說(shuō)明參考表 51: 13 表 51 PalmarWeather 項(xiàng)目的命名空間 命名空間 說(shuō)明 項(xiàng)目中所需要的一些常量(包括 xml解析的標(biāo)簽) 用來(lái)生成主界面的 listView,以及對(duì)應(yīng)的相應(yīng)事件 用來(lái)生成信息員信息的界面的 listView,以及對(duì)應(yīng)的響應(yīng)事件 用來(lái)生成反饋信息的界面的 listView,以及對(duì)應(yīng)的響應(yīng)事件 用來(lái)生成培訓(xùn)信息的界面的 listView,以及對(duì)應(yīng)的響應(yīng)事件 用來(lái)生成手機(jī)定位信息的界面的 listView,以及對(duì)應(yīng)的響應(yīng)事件 用來(lái)生成設(shè)置信息的界面 的 listView,以及對(duì)應(yīng)的響應(yīng)事件 項(xiàng)目所用到的實(shí)體 項(xiàng)目中用于后臺(tái)獲取天氣信息的服務(wù) 項(xiàng)目中所以的 Activity所在的包 項(xiàng)目中所要用到的一些輔助的方法 Android 的資源文件保存在 /res 的子目錄中。 信息反饋模塊負(fù)責(zé)將用戶的災(zāi)害天氣信息、災(zāi)情反饋統(tǒng)計(jì)、及一些其它信息反饋給服務(wù)器 。后臺(tái)服務(wù)由界面通過(guò) Intent 啟動(dòng)。用戶可以很方便的找到自己當(dāng)前使用的軟件版本的系統(tǒng)說(shuō)明。系統(tǒng)設(shè)置包括:個(gè)人信息設(shè)置、主題設(shè)置、手機(jī)定位設(shè)置、更新與下載、手機(jī)桌面設(shè)置、預(yù)警提醒設(shè)置幾大功能。 12 ( 3)其它功能。其他信息反饋系統(tǒng)還包括農(nóng)業(yè)信息反饋、民政信息反饋、社會(huì)調(diào)查反饋等功能。主要功能包括:災(zāi)害天氣反饋、其他反饋。天氣信息查詢內(nèi)容主要由后臺(tái)中心數(shù)據(jù)庫(kù)和素材庫(kù)生成。主要包括:全國(guó)天氣查詢、全國(guó)各 城市選擇、其他信息查詢。 4 系統(tǒng)設(shè)計(jì) 系統(tǒng)概述 本系統(tǒng)主要是基于最近流行的 Android 手機(jī)操作系統(tǒng)的一個(gè)氣象信息終端,通過(guò) Android 插件和MyEclipse開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)全國(guó)氣象信息的查詢以及信息員的登錄與反饋。如圖 36所示: 11 圖 36 ADT 更新 ( 4) 設(shè)置 android for eclipse 在 Window(窗口 ) Preferences(首選項(xiàng)) Android SDK Location 輸入剛才的 android sdk 的安裝目錄,如 C:\Program Files\Android\androidsdk 點(diǎn)擊點(diǎn)擊 “Apply” 和 “OK” 。如 圖 34所示: 圖 34 Android 系統(tǒng)環(huán)境變量配置 ADT Plugin for Eclipse ( 1) 啟 動(dòng) Eclipse,點(diǎn)擊 “Help” 菜單,選擇 “Install New Software” ( 2) 在 “Available Software” 對(duì)話框中 ,點(diǎn)擊 “Add....” 如圖 35所示: 圖 35 ADT 配置 ( 3) 全選安裝即可 。 圖 33 測(cè)試 JAVA 是否配置成功 10 Android SDK 的配置 直接將下載下來(lái)的 .zip文件解壓, 同時(shí)也配置下 Android SDK的系統(tǒng)變量 [5],將 Android SDK安裝文件夾下的 tools文件夾路徑加入到 “ Path” 變量中,注意用 “ 。 圖 32 JAVA CLASSPATH 設(shè)置 ( 3) 安裝配置完成后,要測(cè)試是否安裝成功。然后點(diǎn)擊 “ 確定 ” 按鈕完成。同時(shí),為了便于跨 進(jìn)程共享數(shù)據(jù), Android 提供了通用的共享數(shù)據(jù)接口 ContentProvider,可以無(wú)需了解數(shù)據(jù)源、路徑的情況下,對(duì)共享數(shù)據(jù)進(jìn)行查詢、添加、刪除和更新等操作。 Android 提供輕量級(jí)的進(jìn)程間通信機(jī)制 Intent,使跨進(jìn)程組件通信和發(fā)送系統(tǒng)級(jí)廣播成為可能 ,提供了 Service 作為無(wú)界面、長(zhǎng)時(shí)間后臺(tái)運(yùn)行的組件。 在界面設(shè)計(jì)上, Android提供了豐富的界面控件供使用者之間調(diào)用,從而加快了用戶界面的開(kāi)發(fā)速度,也 保證了 Android平臺(tái)上的程序界面的一致 性。 Android 為了保證高優(yōu)先級(jí)進(jìn)程運(yùn)行和正在與用戶交互的進(jìn)程的響應(yīng)速度,允許停止或終止正在 運(yùn)行的低優(yōu)先級(jí)進(jìn)程,以釋放被占用的系統(tǒng)資源。 在內(nèi)存和進(jìn)程管理方面, Android具有自己的運(yùn)行時(shí)和虛擬機(jī)。 MyEclipse 不但界面作了很大的增強(qiáng),增加了代碼折 疊等眾多優(yōu)秀功能,而且還集成了眾多的插件,通過(guò)手動(dòng)添加 Android SDK使開(kāi)發(fā) Android手機(jī)平臺(tái)的應(yīng)用程序更加方便快捷。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開(kāi)發(fā)環(huán)境而言,所有工具開(kāi)發(fā)人員都具有同等的發(fā)揮場(chǎng)所。雖然大多數(shù)用戶很樂(lè)于將 Eclipse 當(dāng)作 Java IDE 來(lái)使用, 8 但 Eclipse 的目標(biāo)不僅限于此。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。 XmlParserException:拋出單一的 XML pull解析器相關(guān)的錯(cuò)誤。 XmlSerializer:它是一個(gè)接口,定義了 XML信息集的序列。當(dāng)解釋到一個(gè)文檔結(jié)束時(shí),自動(dòng)生成 EndDocument事件。 XML pull 解析技術(shù) ( 1) XML pull的工作原理 XML pull 提供了開(kāi)始元素和結(jié)束元素。 XML文件較大時(shí),選擇 SAX技術(shù)是比較合理的,雖然代碼量比較大,但是它不需要將所有的 XML文件加載到內(nèi)存中。 ( 3) SAX解析流程 SAX的處理流程如圖 24所示 : StartDocumentStartElementEndElementEndDocumentCharacter 圖 24 SAX 解析流程 7 本系統(tǒng)就用的是 SAX解析技術(shù)對(duì) XML文件進(jìn)行解析的。 DefaultHandler:它提供了這些接口的缺省實(shí)現(xiàn)。它是 SAX的擴(kuò)展。它沒(méi)有定義足夠的事件來(lái)完整的報(bào)告 DTD。大多數(shù)應(yīng)用程序都注冊(cè)這些事件。 ( 2) SAX接口和類 Attrbutes:用于得到屬性的個(gè)數(shù)、名字和值。當(dāng)然,如果 XML文件的內(nèi)容比較小,采用 DOM是可行的。 使用 DOM操作 XML的代碼看起來(lái)比較直觀、簡(jiǎn)單。這樣就可以迭代的訪問(wèn)各個(gè)節(jié)點(diǎn)。 Node:該接口提供處理并獲取節(jié)點(diǎn)和子節(jié)點(diǎn)的值的方法。 ( 2) DOM接口和類 Document:該接口定義分析并創(chuàng)建 DOM文檔的一系列方法,它是文檔樹(shù)的根,是操作 DOM的基礎(chǔ)。 DOM( Document Object Model)是文檔對(duì)象模型,使用 DOM對(duì) XML文件進(jìn)行操作時(shí),首先要解析文件,將文件分為獨(dú)立的元素、屬性和注釋等,然后以節(jié)點(diǎn)樹(shù)的形式在內(nèi)存中對(duì)XML文件進(jìn)行表示,就可以通過(guò)節(jié)點(diǎn)樹(shù)訪問(wèn)文檔的內(nèi)容,并根據(jù)需要修改文檔。消息傳遞的過(guò)程如圖 22所示: 圖 22 消息傳遞過(guò)程 Android XML 解析技術(shù)分析 DOM 解析技術(shù) ( 1) DOM 的工作原理 [7]。 5 至此,我們看到,一個(gè) Message經(jīng)由 Handler的發(fā)送, MessageQueue的入隊(duì), Looper的抽取,又再一次地回到 Handler的懷抱中 [6]。則表示執(zhí)行 ServiceHandler對(duì)象中的 dispatchMessage()方法,該方法首先判斷 callback是否為空,我們跟蹤的過(guò)程中未見(jiàn)給其賦值,因此 callback字段為空,所以最終將會(huì)執(zhí)行 handleMessage()方法,也就是我們 ServiceHandler類中復(fù)寫的方法。 ( 3) handleMessage(msg)方法。 首先我們從消息池中獲取一個(gè) Message實(shí)例,然后給 Message對(duì)象的 arg what、 obj三個(gè)字段賦值。線程執(zhí)行完start()方法后,我們可以獲取線程的 Looper對(duì)象,然后 new一個(gè) ServiceHandler對(duì)象,我們把 Looper對(duì)象傳到 ServiceHandler構(gòu)造函數(shù)中將使 handler、 looper和 messageQueue三者建立聯(lián)系。 在該方法中我們 new了一個(gè) HandlerThread對(duì)象,提供了線程的名字和優(yōu)先級(jí)。由于是在 handleMessage()方法中處理消息,因此我們應(yīng)該編寫一個(gè)類繼承自 Handler,然后在 handleMessage()處理我們需要的操作。 ( 4) Handler消息的處理者。在 Android系統(tǒng)中,除了主線程有默認(rèn)的 Looper對(duì)象,其它線程默認(rèn)是沒(méi)有 Looper對(duì)象。 ( 3) Looper MessageQueue的管理者。 MessageQueue對(duì)象不需要我們自己創(chuàng)建,而是有 Looper對(duì)象對(duì)其進(jìn)行管理,一個(gè)線程最多只可以擁有一個(gè) MessageQueue。 用來(lái)存放 Message對(duì)象的數(shù)據(jù)結(jié)構(gòu),按照“先進(jìn)先出”的原則存放消息。通過(guò)分析源碼可得知,Android系統(tǒng)默認(rèn)情況下在消息池中實(shí)例化 10個(gè) Message對(duì)象。這并不一定是直接創(chuàng)建一個(gè)新的實(shí)例,而是先從消息池中看有沒(méi)有可用的 Message實(shí)例,存在則直接取出并返回這個(gè)實(shí)例。 what:這個(gè)字段可以說(shuō)是消息的標(biāo)志,在消息處理中,我們可以根據(jù)這個(gè)字段的不同的值進(jìn)行不同的處理,類 似于我們?cè)谔幚?Button事件時(shí),通過(guò) switch(())判斷是點(diǎn)擊了哪個(gè)按鈕。 這個(gè)類有幾個(gè)比較重要的字段: arg1和 arg2:我們可以使用兩個(gè)字段用來(lái)存放我們需要傳遞的整型值,在 Service中,我們可以用來(lái)存放 Service的 ID。 Linux 內(nèi)核也同時(shí)作為硬件和軟件之間的抽象 層,如圖 “Linux 內(nèi)核 ” 一欄所示。它們通過(guò) Android 應(yīng)用程序框架為開(kāi)發(fā)者提供服務(wù)。事實(shí)上,不僅 Dalvik 虛擬機(jī)如此, Java 虛擬機(jī)也同樣具有操作系統(tǒng)依賴性,不同的操作系統(tǒng)需要不同的 Java 虛擬機(jī),而虛擬機(jī)會(huì)針對(duì)操作系統(tǒng)再進(jìn)行各項(xiàng)調(diào)整,以便能最佳化執(zhí)行。 Dalvik 虛擬機(jī)是一種寄存器形態(tài)的虛擬機(jī), Google 在DVM 開(kāi)發(fā)時(shí)就已經(jīng)設(shè)想用最少的內(nèi)存來(lái)執(zhí)行,并以同時(shí)可執(zhí)行多個(gè) VM 為前提。同樣,該應(yīng)用程序重用機(jī)制也可以使用用戶方便的替換程序組件。 ( 2) Android 應(yīng)用框架 開(kāi)發(fā)人員可以完全訪問(wèn) Android 核心應(yīng)用程序所使用的 API 框架,如圖 應(yīng)用程序框架一欄所示 [2]。由此來(lái)開(kāi)發(fā)各種不同的手機(jī)應(yīng)用程序,如圖 21所示 [1]: 圖 21 Android 平臺(tái)框架 ( 1) Android 應(yīng)用程序?qū)? Android 會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括 Email 客戶端、 SMS 短消息程序、日歷、地圖、瀏覽器及聯(lián)系人管理程序等。建立農(nóng)村氣象信息員與氣象部門的信息化氣象網(wǎng)絡(luò)能夠加強(qiáng)農(nóng)村氣象防災(zāi)減災(zāi)工作,拓寬農(nóng)村氣象信息發(fā)布渠道,促進(jìn)農(nóng)業(yè)增
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1