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

正文內(nèi)容

基于android的氣象信息采集系統(tǒng)畢業(yè)論文-文庫吧資料

2025-05-16 01:49本頁面
  

【正文】 的 xml文件,對該 xml文件進(jìn)行解析 [14]。 (listItemAdapter)。 MenuContorl中的 showUtilListView方法代碼如下: public void showUtilListView() { listView = (ListView) ()。} } } 天氣查詢 選擇菜單按鈕,會(huì)運(yùn)行 new MenuContorl().showUtilListView()。 } catch (InterruptedException e) {()。 } }。 return img。 new ShowTime().start()。 (new () { public void onItemSelected(AdapterView? parent, View v, int index, long id) { initView(index)。 (adapter)。 (new () { public void onClick(View arg0) { new MenuContorl().showUtilListView()。底部中間是一個(gè) TextView來顯示當(dāng)前的時(shí)間,通 過開啟一個(gè)線程,讓它每過一秒鐘就發(fā)送一個(gè) message,然后通過 Handler中的 handleMessage()方法來獲得這個(gè) message,并更新時(shí)間。如果從服務(wù)器獲得了數(shù)據(jù)就會(huì)跳轉(zhuǎn)到 WeatherUI這個(gè) Activity,顯示界面如圖 52所示 : 圖 52 運(yùn)行后的界面 WeatherUI界面中主要用到了 ImageSwitcher這個(gè) View,它可以實(shí)現(xiàn)上一天跟下一天的天氣信息的切換 [12]。 ...//如果成功獲得數(shù)據(jù)則轉(zhuǎn)向 WeatherUI這個(gè) Activity } } }。 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) 一開始,用 戶點(diǎn)擊應(yīng)用程序按鈕運(yùn)行 LoadUI這個(gè) Activity,就會(huì)出現(xiàn)一個(gè)載入程序的畫面,如圖 51: 圖 51 運(yùn)行界面 首先, LoadUI 調(diào)用 GIFView 來生成圖 51 的畫面,其中中間的那個(gè)進(jìn)度條是一張動(dòng)態(tài)的 gif 圖片,然后 LoadUI通過一個(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)和語法更簡單。 你可以使用任何繼承自 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è)包名(命名空間)以及說明參考表 51: 表 51 PalmarWeather 項(xiàng)目的命名空間 命名空間 說明 項(xiàng)目中所需要的一些常量(包括 xml解析的標(biāo)簽) 用來生成主界面的 listView,以及對應(yīng)的相應(yīng)事件 用來生成信息員信息的界面的 listView,以及對應(yīng)的響應(yīng)事件 用來生成反饋信息的界面的 listView,以及對應(yīng)的響應(yīng)事件 用來生成培訓(xùn)信息的界面的 listView,以及對應(yīng)的響應(yīng)事件 用來生成手機(jī)定位信息的界面的 listView,以及對應(yīng)的響應(yīng)事件 用來生成設(shè)置信息的界面的 listView,以及對應(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ù)由界面通過 Intent 啟動(dòng)。用戶可以很方便的找到自己當(dāng)前使用的軟件版本的系統(tǒng)說明。系統(tǒng)設(shè)置包括:個(gè)人信息設(shè)置、主題設(shè)置、手機(jī)定位設(shè)置、更新與下載、手機(jī)桌面設(shè)置、預(yù)警提醒設(shè)置幾大功能。 ( 3)其它功能。其他信息反饋系統(tǒng)還包括農(nóng)業(yè)信息反饋、民政信息反饋、社會(huì)調(diào)查反饋等功能。主要功能包括:災(zāi)害天氣反饋、其他反饋。天氣信息查詢內(nèi)容主要由后臺(tái)中心數(shù)據(jù)庫和素材庫生成。主要包括:全國天氣查詢、全國各城市選擇、其他信息查詢。 4 系統(tǒng)設(shè)計(jì) 系統(tǒng)概述 本系統(tǒng)主要是基于最近流行的 Android 手機(jī)操作系統(tǒng)的一個(gè)氣象信息終端,通過 Android 插件和MyEclipse開發(fā)平臺(tái)實(shí)現(xiàn)全國氣象信息的查詢以及信息員的登錄與反饋。如圖 36所示: 圖 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” 對話框中 ,點(diǎn)擊 “Add....” 如圖 35所示: 圖 35 ADT 配置 ( 3) 全選安裝即可 。 圖 33 測試 JAVA 是否配置成功 Android SDK 的配置 直接將下載下來的 .zip文件解壓, 同時(shí)也配置下 Android SDK的系統(tǒng)變量 [5],將 Android SDK安裝文件夾下的 tools文件夾路徑加入到 “ Path” 變量中,注意用 “ 。 圖 32 JAVA CLASSPATH 設(shè)置 ( 3) 安裝配置完成后,要測試是否安裝成功。然后點(diǎn)擊 “ 確定 ” 按鈕完成。同時(shí),為了便于跨進(jìn)程共享數(shù)據(jù), Android 提供了通用的共享數(shù)據(jù)接口 ContentProvider,可以無需了解數(shù)據(jù)源、路徑的情況下,對共享數(shù)據(jù)進(jìn)行查詢、添加、刪除和更新等操作。 Android 提供輕量級的進(jìn)程間通信機(jī)制 Intent,使跨進(jìn)程組件通信和發(fā)送系統(tǒng)級廣播成為可能 ,提供了 Service 作為無界面、長時(shí)間后臺(tái)運(yùn)行的組件。 在界面設(shè)計(jì)上, Android提供了豐富的界面控件供使用者之間調(diào)用,從而加快了用戶界面的開發(fā)速度,也保證了 Android平臺(tái)上的程序界面的一致 性。 Android 為了保證高優(yōu)先級進(jìn)程運(yùn)行和正在與用戶交互的進(jìn)程的響應(yīng)速度,允許停止或終止正在 運(yùn)行的低優(yōu)先級進(jìn)程,以釋放被占用的系統(tǒng)資源。 在內(nèi)存和進(jìn)程管理方面, Android具有自己的運(yùn)行時(shí)和虛擬機(jī)。 MyEclipse 不但界面作了很大的增強(qiáng),增加了代碼折疊等眾多優(yōu)秀功能,而且還集成了眾多的插件,通過手動(dòng)添加 Android SDK使開發(fā) Android手機(jī)平臺(tái)的應(yīng)用程序更加方便快捷。由于 Eclipse 中的每樣?xùn)|西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的 發(fā)揮場所。雖然大多數(shù)用戶很樂于將 Eclipse 當(dāng)作 Java IDE 來使用, 但 Eclipse 的目標(biāo)不僅限于此。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(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 提供了開始元素和結(jié)束元素。 XML文件較大時(shí),選擇 SAX技術(shù)是比較合理的,雖然代碼量比較大,但是它不需要將所有的 XML文件加載到內(nèi)存中。 ( 3) SAX解析流程 SAX的處理流程如圖 24所示 : StartDocumentStartElementEndElementEndDocumentCharacter 圖 24 SAX 解析流程 本系統(tǒng)就用的是 SAX解析技術(shù)對 XML文件進(jìn)行解析的。 DefaultHandler:它提供了這些接口的缺省實(shí)現(xiàn)。它是 SAX的擴(kuò)展。它沒有定義足夠的事件來完整的報(bào)告 DTD。大多數(shù)應(yīng)用程序都注冊這些事件。 ( 2) SAX接口和類 Attrbutes:用于得到屬性的個(gè)數(shù)、名字和值。當(dāng)然,如果 XML文件的內(nèi)容比較小,采用 DOM是可行的。 使用 DOM操作 XML的代碼看起來比較直觀、簡單。這樣就可以迭代的訪問各個(gè)節(jié)點(diǎn)。 Node:該接口提供處理并獲取節(jié)點(diǎn)和子節(jié)點(diǎn)的值的方法。 ( 2) DOM接口和類 Document:該接口定義分析并創(chuàng)建 DOM文檔的一系列方法,它是文檔樹的根,是操作 DOM的基礎(chǔ)。 DOM( Document Object Model)是文檔對象模型,使用 DOM對 XML文件進(jìn)行操作時(shí),首先要解析文件,將文件分為獨(dú)立的元素、屬性和注釋等,然后以節(jié)點(diǎn)樹的形式在內(nèi)存中對XML文件進(jìn)行表示,就可以通過節(jié)點(diǎn)樹訪問文檔的內(nèi)容,并根據(jù)需要修改文檔。消息傳遞的過程如圖 22所示: 圖 22 消息傳遞過程 Android XML 解析技術(shù)分析 DOM 解析技術(shù) ( 1) DOM 的工作原理 [7]。 至此,我們看到,一個(gè) Message經(jīng)由 Handler的發(fā)送, MessageQueue的入隊(duì), Looper的抽取,又再一次地回到 Handler的懷抱中 [6]。則表示執(zhí)行 ServiceHandler對象中的 dispatchMessage()方法,該方法首先判斷 callback是否 為空,我們跟蹤的過程中未見給其賦值,因此 callback字段為空,所以最終將會(huì)執(zhí)行 handleMessage()方法,也就是我們 ServiceHandler類中復(fù)寫的方法。 ( 3) handleMessage(msg)方法。 首先我們從消息池中獲取一個(gè) Message實(shí)例,然后給 Message對象的 arg what、 obj三個(gè)字段賦值。線程執(zhí)行完start()方法后,我們可以獲取線程的 Looper對象,然后 new一個(gè) ServiceHandler對象,我們把 Looper對象傳到 ServiceHandler構(gòu)造函數(shù)中將使 handler、 looper和 messageQueue三者建立聯(lián)系。 在該方法中我們 new了一個(gè) HandlerThread對象,提供了線程的名字和優(yōu)先級。由于是在 handleMessage()方法中處理消息,因 此我們應(yīng)該編寫一個(gè)類繼承自 Handler,然后在 handleMessage()處理我們需要的操作。 ( 4) Handler消息的處理者。在 Android系統(tǒng)中,除了主線程有默認(rèn)的 Looper對象,其它線程默認(rèn)是沒有 Looper對象。 ( 3) Looper MessageQueue的管理者。 MessageQueue對象不需要我們自己創(chuàng)建,而是有 Looper對象對其進(jìn)行管理,一個(gè)線程最多只可以擁有一個(gè) MessageQueue。 用來存放 Message對象的數(shù)據(jù)結(jié)構(gòu),按照“先進(jìn)先出”的原則存放消息。通過分析源碼可得知,Android系統(tǒng)默認(rèn)情況下在消息池中實(shí)例化 10個(gè) Message對象。這并不一定是直接創(chuàng)建一個(gè)新的實(shí)例,而是先從消息池中看有沒有可用的 Message實(shí)例,存在則直接取出并返回這個(gè)實(shí)例。 what:這個(gè)字段可以說是消息的標(biāo)志,在消息處理中,我們可以根據(jù)這個(gè)字段的不同的值進(jìn)行不同的處理,類似于我們在處理 Button事件時(shí),通過 switch(())判斷是點(diǎn)擊了哪個(gè)按鈕。 這個(gè)類有幾個(gè)比較重要的字段: arg1和 arg2:我們可以使用兩個(gè)字段用來存放我們需要傳遞的整型值,在 Service中,我們可以用來存放 Service的 ID。 Linux 內(nèi)核也同時(shí)作為硬件和軟件之間的抽象層,如圖 “Linux 內(nèi)核 ” 一欄所示。它們通過 And
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1