




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于安卓操作系統(tǒng)的天氣預(yù)報應(yīng)用程序開發(fā)摘要
安卓操作系統(tǒng)的出現(xiàn),使得在智能時代中,其成為了最受歡送的應(yīng)用平臺之一。每天幾十萬部安卓的激活量等跡象說明,安卓的未來的開展方向和產(chǎn)業(yè)結(jié)構(gòu)必定成為一些相關(guān)的公司戰(zhàn)略開展的焦點。作為在安卓上運行的應(yīng)用程序,也是在不斷的快速開展,到達(dá)了日新月異的輝煌局面。為了來不斷的擴充的功能,使用者可以通過自主選擇安裝各種所需要的應(yīng)用軟件,再連接網(wǎng)絡(luò),這樣就可以擴充功能。通過充分的利用本身的軟硬件資源,當(dāng)用戶連接網(wǎng)絡(luò)時,就可以輕松地訪問到網(wǎng)絡(luò)上的各種資源,獲取各種有用的信息。關(guān)鍵字:智能,安卓,操作系統(tǒng),應(yīng)用程序THEDEVELOPMENTOFWEATHERFORECASTAPPLICATIONBASEDONTHEANDROIDOPERATINGSYSTEMABSTRACTWhenandroidoperatingsystemhasbecometrue,Androidisbecomingoneofmostpopularapplicationplatforminallovertheworld.Everydayhundredsofthousandsofandroidareactivatedwhatindicatesthatthefuturedevelopmentpatternwillundoubtedlybecomethefocusoftheobjectandoftherelatedindustriesarefollowing.Applications,whichisrunontheandroidOSaredevelopingrapidlyandhasreachedthechangingsituation.UserscaninstallallkindsofapplicationsoftwarewhichareneededandconnecttheInternet,inordertocontinuouslyexpandthefunctionofmobilephone.Byusingthephoneitselfandnetworkhardwareandsoftwareresourcesasmuchaspossible,andconnecttotheInternet,userscanaccesstoallkindsofresourcesonthenetworkeasilyandgetallsortsofusefulinformation.KEYWORDS:Android,operatingsystem,smartphone,application目錄TOC\o"1-6"\h\u12470摘要 I493ABSTRACT II173481前言 1279621.1安卓操作系統(tǒng)簡介以及開展 1137251.2應(yīng)用程序介紹和開展 264171.3應(yīng)用程序開發(fā)現(xiàn)狀 3225411.4工程開發(fā)意義 4167752工程需求分析 4108772.1功能分析 4300452.2性能分析 5250002.3平安分析 5234132.4研究內(nèi)容和開發(fā)環(huán)境需求 64303工程設(shè)計分析 694943.1程序功能模塊圖 669283.2顯示信息設(shè)計 7111673.3解析數(shù)據(jù) 7259193.4界面設(shè)計 7252543.4.1程序啟動界面 8263773.4.2信息界面之主界面〔MainPage〕 8127463.4.3信息界面之二〔NextPage〕 983793.4.4信息界面之三〔PreviousPage〕 985693.4.5查詢界面 9176613.5算法流程圖 10322314工程實現(xiàn) 13273154.1啟動畫面 1361184.2信息界面顯示實現(xiàn) 15181704.2.1Weather 1585444.2.2NextPage 18307754.2.3PreviousPage 19109534.3天氣查詢 19292484.4GetWeatherService 20125504.5下拉刷新 21238485工程調(diào)試和效果分析 23265175.1工程調(diào)試分析 238365.2效果圖 262306總結(jié) 334181參考文獻(xiàn) 342024謝辭 35 1前言1.1安卓操作系統(tǒng)簡介以及開展一個基于Linux內(nèi)核的,現(xiàn)在流行的主流的系統(tǒng)之一——安卓操作系統(tǒng)。Google公司早在2007年11月5日就公布的這款操作系統(tǒng),安卓系統(tǒng)是一款系統(tǒng)。目前有很多的采用這款安卓系統(tǒng)。除此之外,系統(tǒng)還有,蘋果的IOS系統(tǒng)、微軟的wm系統(tǒng)、諾基亞的塞班系統(tǒng)、HTC的黑莓系統(tǒng)等。類似于電腦的window7和window8系統(tǒng)等,這款系統(tǒng)常用在除了蘋果外的絕大數(shù)智能上,屬于智能操作系統(tǒng)。安卓最新版本為Android4.4.2KitKat。它是第一個為移動終端設(shè)計的開放的系統(tǒng)程序。從android的意思為機器人就可看出,其有一定的智能化。安卓是以Java語言為根本的編程語言,從操作系統(tǒng),到用戶界面和應(yīng)用軟件,從接口到功能,都有著和大的變化。Android主要有四大組件,包括Activity,Service,Broadcast和ContentProvider。其中Activity,個人認(rèn)為是一個容器,里面存放了要在界面上顯示的各個控件,當(dāng)然還有包括實現(xiàn)這些控件的代碼。我們可以通過Activity類負(fù)責(zé)創(chuàng)立用于人機交互的視圖,安卓中分為兩種模式,一種是前景模式,另一種是背景模式分別對應(yīng)的是Activity和Service。它們?nèi)绻菍儆谝粋€進(jìn)程內(nèi)的,那么將會通過binder來進(jìn)行通信,如果是屬于兩進(jìn)程內(nèi)的,那么將會通過AIDL來進(jìn)行遠(yuǎn)程通信。當(dāng)然在這里就會牽涉到界面設(shè)計,安卓開發(fā)程序員可以通過XML文件來配置,也通過直接在這個文件中設(shè)置數(shù)據(jù),將結(jié)果顯示給用戶。安卓現(xiàn)在有很大的開展優(yōu)勢,同樣是的只能操作系統(tǒng),安卓比奄奄一息的塞班更為華美,相比擬wm和黑莓操作系統(tǒng),安卓在第三方軟件方面更加豐富。隨著時間的推移和科技的進(jìn)步,全球范圍內(nèi)唯一能和蘋果IOS分庭抗禮的操作系統(tǒng)也只有安卓操作系統(tǒng)了。由于安卓是采用Java語言來開發(fā)的,這又給了大量Java程序員提供了便利,這也給安卓開發(fā)了帶了很大的生機。谷歌公司從2021年開始發(fā)布了很多個版本,根本上都是以糖果命名的,從Android1.6Donut版本,直到現(xiàn)在的Android4.4Katit。主要的參數(shù)有:CPU和電腦一樣,主要負(fù)責(zé)處理數(shù)據(jù),現(xiàn)在安卓的根本上都上了四核,但是并不意味著核心數(shù)越大越好,CPU的架構(gòu)和主頻對性能影響也很大。GPU就是相當(dāng)于電腦的顯卡,當(dāng)用戶玩游戲時,或者要求的界面很華美時,就要處理繁重的圖形數(shù)據(jù),這樣,就可以得到一個判斷GPU性能的依據(jù)是多邊形生成能力和像素渲染能力。RAM相當(dāng)于電腦的內(nèi)存,是系統(tǒng)和應(yīng)用程序的運行內(nèi)存,其值越大的處理能力表現(xiàn)的就會越強。充足的RAM空間,可以確保同時翻開多個應(yīng)用軟件也能表現(xiàn)出很流暢,根本上不會出現(xiàn)卡機現(xiàn)象。ROM相當(dāng)于電腦的硬盤,是用來存儲的數(shù)據(jù)的,毫無疑問,ROM越大越好,你能存放的數(shù)據(jù)就越多。除此之外,還有一些重要的參數(shù)指標(biāo)如,屏幕、電池容量、SIM卡、攝像頭、像素、以及USB接口。1.2應(yīng)用程序介紹和開展安卓操作系統(tǒng)的出現(xiàn),使得在智能時代中,其成為了最受歡送的應(yīng)用平臺之一。每天幾十萬部安卓的激活量等跡象說明,安卓的未來的開展方向和產(chǎn)業(yè)結(jié)構(gòu)必定成為一些相關(guān)的公司戰(zhàn)略開展的焦點。作為在安卓上運行的應(yīng)用程序,也是在不斷的快速開展,到達(dá)了日新月異的輝煌局面。Android應(yīng)用程序當(dāng)中有很多組件,遵守著應(yīng)用程序清單AndroidManifest,在此配置文件中,還需要來描述每個組件之間如何進(jìn)行交互。還包括要求應(yīng)用程序元數(shù)據(jù)的硬件平臺。安卓有四個主要組件,分別是Activity,是應(yīng)用程序中的表示層。應(yīng)用程序的每個界面都是Activity類的子類,Activity用視圖〔View〕構(gòu)成顯示信息,響應(yīng)操作。第二個是Services,這個組件在后臺運行,更新用戶需要的可見的數(shù)據(jù)和顯示的Activity,是個默默無聞的“幕后工作者〞。除此之外還可以觸發(fā)通知。在應(yīng)用程序的Activity不激活或者不可見的時候,可以進(jìn)行一些用于執(zhí)行需要長期處理的事情,比方下載等。第三個是ContentPrivider,可以提供數(shù)據(jù)的共享。這個組件用于管理和共享應(yīng)用程序數(shù)據(jù)庫。是跨應(yīng)用程序界限共享數(shù)據(jù)的優(yōu)先方式,個人理解是可以進(jìn)行進(jìn)程間的數(shù)據(jù)共享訪問。當(dāng)想把自己程序的數(shù)據(jù)和別的程序進(jìn)行互相通信,就可以通過配置自己的消息提供者,這樣就可以以允許其他程序來訪問它的數(shù)據(jù)。第四個組件是Broadcaset〔播送接收者〕,個人理解是Intent的消費者,如果在應(yīng)用程序中創(chuàng)立并注冊一個BroadcasetReceiver,此時應(yīng)用程序就可以監(jiān)聽匹配了特定標(biāo)準(zhǔn)的播送Intent。播送接收者會啟動一個事件來響應(yīng)這個收到的Intent。圖1顯示的是安卓系統(tǒng)框架。圖1-1安卓系統(tǒng)框架除了這四大組件之外,Intent功能挺強大的,用途也很廣泛。一個應(yīng)用程序間的消息傳遞的傳送者。利用Intents,能夠在系統(tǒng)范圍內(nèi)播送消息,也可以對一個Activity或Serivce發(fā)送消息,可以運行一個乃至多個Activity或者Service。系統(tǒng)將會自動區(qū)分出相應(yīng)的活動目標(biāo)。安卓應(yīng)用采用的是java語言,具有豐富的類庫,而且邏輯代碼與界面設(shè)計別離,這也給開發(fā)人員帶來了強大的便利性,還有最主要的一點是權(quán)限控制開放。也可以提供了很多學(xué)習(xí)的時機。有的安卓應(yīng)用軟件的開發(fā)技術(shù)不是孤立的,不是只是會java語言就可以的,它需要在掌握Android三層框架同時,也必須融合Java層框架內(nèi)的通信機制、通過JNI層來將Java和C/C++聯(lián)合起來、HAL驅(qū)動框架及其API、有的甚至是牽涉到了Linux內(nèi)核局部。1.3應(yīng)用程序開發(fā)現(xiàn)狀具有獨立操作系統(tǒng)〔android和ios等〕的,為了來不斷的擴充的功能,使用者可以通過自主選擇安裝各種所需要的應(yīng)用軟件,再連接網(wǎng)絡(luò),這樣就可以擴充功能。通過充分的利用本身的軟硬件資源,當(dāng)用戶連接網(wǎng)絡(luò)時,就可以輕松地訪問到網(wǎng)絡(luò)上的各種資源,獲取各種有用的信息,以此來提高的智能化。而這自然的也就極大的方便了用戶,應(yīng)用程序可以給用戶帶來很多的娛樂時光。用戶可以通過只能來獲取很多有趣、實用的信息,體驗智能化帶來的有滋有味生活。早在2021年的第三季度,用戶通過配置有安卓操作系統(tǒng)的智能或者平板電腦下載的應(yīng)用程序的價值就到達(dá)了300多億美元。無論人們想下載什么程序,這些應(yīng)用程都已經(jīng)完成了。由于安卓應(yīng)用程序?qū)儆谝粋€較新興的技術(shù)和開展快速的模式,開發(fā)安卓應(yīng)用程序在整個市場經(jīng)濟產(chǎn)業(yè)中,仍是一個缺口比擬大的一個方面。這就是為安卓應(yīng)用程序的開展帶來了一個蓬勃開展的時機。1.4工程開發(fā)意義在我們這個時代中,已經(jīng)步入了一個網(wǎng)絡(luò)化,信息化程度相當(dāng)高的時代,科學(xué)技術(shù)一日千里,飛速興旺。隨之而來的是社會競爭越來越劇烈,如何在這個繁華而又復(fù)雜的社會里能永葆生機,提升自己的競爭力,讓自己立于不敗之地呢。其中一個必要條件是能夠及時的獲取信息,正確的分析和處理信息,對社會的最新動態(tài)有一個適當(dāng)?shù)恼莆蘸瓦\用,然后才能有確切的目的和目標(biāo)來獲取自己想要的信息和成果。從目前的各種消息渠道來看,最快捷的方式莫過于智能,沒有電腦那么笨重,但是卻能極大程度的到達(dá)電腦給我們的使用效果。憑借著其攜帶方便,有強大的功能等,給我們的生活娛樂和工作帶來了很多便利。選擇開發(fā)一個基于安卓操作系統(tǒng)的天氣預(yù)報應(yīng)用程序能夠一定程度的順應(yīng)時代的潮流。目下應(yīng)用程序市場上,也有一些類似于天氣預(yù)報的應(yīng)用程序。當(dāng)然也很大程度上給人們提供了便利,讓人們掌握天氣資訊,快捷出行,平安出行。2工程需求分析2.1功能分析〔1〕要有良好效果的界面在安卓應(yīng)用程序開發(fā)當(dāng)中,有一個重要的參考指標(biāo)是用戶界面〔UI〕,一個良好的,人性化的,合理化的交互界面能夠給用戶“眼前一亮〞的感覺,有一個比擬絢麗的界面,能一定程度上吸引用戶,增加該應(yīng)用產(chǎn)品的下載量和使用量。天氣信息的查詢功能作為一個天氣預(yù)報的應(yīng)用程序,天氣信息的查詢當(dāng)然是要實現(xiàn)的。在程序中是通過WebService效勞,從中國氣象局獲取所需要的,例如該城市的簡單介紹,旅游概況等等。查詢的城市的天氣信息,實況信息以及未來兩天的天氣信息。通過一定的解析處理,通過解析獲取我們所需的信息,然后交由Activity顯示出來。附加信息在設(shè)計時,可以增加定位和網(wǎng)絡(luò)檢查功能。另外,在查詢一個城市時,可以查出該城市的一些附加信息。操作簡單任何一款軟件,如果他的操作要是繁瑣復(fù)雜,也失去了原本的定位價值,就無法占據(jù)一定的市場份額,從而得不到原有的意義。2.2性能分析 〔1〕優(yōu)化Java代碼安卓的應(yīng)用程序都是用Java開發(fā)的,選擇算法要比實現(xiàn)算法更加重要。要利用簡單的技術(shù)比方緩存和減少內(nèi)存分配來極大的優(yōu)化應(yīng)用程序。一個非常重要的性能指標(biāo)是能夠讓應(yīng)用程序隨時的保持響應(yīng)。提高性能在代碼中使用較少的內(nèi)存,提高運行速度和效率,除此之外還要利用CPU的設(shè)計方式,內(nèi)存分配方式和內(nèi)存訪問,這些都會對內(nèi)存訪問有性能的直接影響。利用多線程安卓應(yīng)用程序使用的是java編程語言,采用多線程編程,這樣有一個好處就是可以及時的響應(yīng)用戶,也能提升安卓設(shè)備的性能,減少響應(yīng)的時間。降低功耗我們在編寫應(yīng)用程序時要注意功耗問題,要確保應(yīng)用程序使用電量是合理的?,F(xiàn)在的智能都由有限容量的電池來供電,因此是否能夠節(jié)能成為了一個重大的性能指標(biāo),過于消耗電能的應(yīng)用程序?qū)粡V闊的用戶遺棄,要做到在不影響程序性能的情況下最大的減少功耗。2.3平安分析安卓的平安設(shè)計原那么在安卓平臺上運行的程序是肯定沒有權(quán)限,也是不能夠執(zhí)行一些操作來損壞操作系統(tǒng)和其他的應(yīng)用程序,這是開發(fā)安卓應(yīng)用程序默認(rèn)的情況。不能對用戶的私人信息或數(shù)據(jù)進(jìn)行讀寫更改,不能對其他應(yīng)用程序所屬的文件進(jìn)行讀寫,或者其他更改操作。另一個注意的點是,不能對其他正在運行的應(yīng)用程序進(jìn)行一定的干擾,安卓的應(yīng)用程序都是在一個屬于自己的空間中運行,我們所開發(fā)的應(yīng)用程序不能對其他應(yīng)用程序進(jìn)行一些危害性的操作,除非有特殊的權(quán)限,能夠請求其他程序進(jìn)行相關(guān)的操作處理,這些權(quán)限要在應(yīng)用程序中唄聲明為靜態(tài)?!苍诎惭b時系統(tǒng)會預(yù)先提示〕安卓數(shù)據(jù)平安原那么安卓的平安原那么指出,默認(rèn)情況下,除非系統(tǒng)授權(quán)外,安卓操作系統(tǒng)的數(shù)據(jù)是不會被其他的程序破壞,讀寫,修改或者刪除。安卓在保護數(shù)據(jù)的完整性和平安性方面,采用的是賦予相應(yīng)的權(quán)限,如果有特殊需要的話,系統(tǒng)在安裝的過程中就會審核,看該程序有沒有相應(yīng)的權(quán)限,這樣也就有效的保護了數(shù)據(jù)的平安性。2.4研究內(nèi)容和開發(fā)環(huán)境需求〔1〕搭建Android開發(fā)環(huán)境,下載并安裝Eclipse,下載并安裝androidSDK;并配置好相應(yīng)的插件ADT、分配一定的運行空間和存儲空間來配置Android模擬器?!?〕充分研究android平臺應(yīng)用程序開發(fā)的技術(shù)的理論,掌握Android框架下開發(fā)應(yīng)用程序的相關(guān)技術(shù)與流程?!?〕開發(fā)語言是Java,通過這個應(yīng)用程序來熟悉多線程編程?!?〕如何從遠(yuǎn)端效勞器上獲取信息。3工程設(shè)計分析3.1程序功能模塊圖根據(jù)功能需求分析,在這個工程中總共設(shè)計了以下功能:〔1〕顯示功能,可以顯示當(dāng)天的天氣狀況,明后兩天的天氣信息,以及該城市的簡單介紹?!?〕查詢功能,作為一個天氣預(yù)報的應(yīng)用軟件,查詢天氣是最根本的功能,在這個工程中設(shè)計了利用城市名來作為簡單的查詢方法?!?〕定位功能,這個功能的主要作用是在用戶翻開這個程序時,就會顯示用戶所在地的天氣信息。除此之外,還有一些附加的功能,比方檢查網(wǎng)絡(luò)設(shè)置等?!踩鐖D2所示〕CCHENWEATHER顯示信息查詢定位顯示三種信息按照城市名查詢獲取當(dāng)前位置信息圖3-1功能模塊3.2顯示信息設(shè)計 在這個工程中主要設(shè)計了以下幾類信息:〔1〕日期,分別是今天,明天和后天的日期〔例如5月1日〕。〔2〕天氣情況,這中間包括了天氣、氣溫、風(fēng)力。而且還有明天,和后天的天氣情況?!?〕各項指數(shù),比方穿衣指數(shù)、旅游指數(shù)、運動指數(shù)、紫外線指數(shù)等等?!?〕城市介紹,簡單的介紹該城市的歷史、開展和旅游情況等。3.3解析數(shù)據(jù)由于在這個工程中,所用的信息,如定位功能是從基站獲取的信息,比方天氣信息是從WebXml這個網(wǎng)站,而該網(wǎng)站是從中國氣象局獲得的。在獲取天氣等信息時采用的是Soap協(xié)議,調(diào)用接口,直接從預(yù)先設(shè)置的網(wǎng)站W(wǎng)ebXml獲取。在獲取信息后就要解析數(shù)據(jù),并將數(shù)據(jù)賦給相應(yīng)的變量。然后在Activity中顯示給用戶,根據(jù)需求,解析了天氣信息,明天和后天的天氣狀況,以及該城市的介紹。然后分別在幾個界面中顯示。3.4界面設(shè)計在這個工程中,設(shè)計了幾個界面,主要包括有:程序啟動時所展示的畫面,之后是啟動完成后時顯示的界面,也就是信息的主界面,其次是用于顯示明天和后天天氣信息的界面〔NextPaga界面〕,第三個界面是用于顯示城市介紹信息〔PreviousPage界面〕最后一個是查詢界面,用戶可以在這個界面上輸入要查詢的城市,然后在信息界面獲取天氣信息。在界面設(shè)置時,要注重界面的友好性,靚麗性和實用性。友好性,是指界面布局簡單,操作簡易,不會繁瑣多余。靚麗性,盡最大的能力將界面設(shè)置地更為絢麗,這樣也會隨之提高應(yīng)用程序的價值。除此之外,還要注重一點是增加界面的信息量,在有限的空間內(nèi)將信息合理地,盡可能多的顯示出來,讓用戶閱讀信息,這就是實用性。下面分別介紹工程中幾個界面設(shè)計。3.4.1程序啟動界面在程序啟動界面中,采用“導(dǎo)航設(shè)置〞,模仿了市場上一般的應(yīng)用軟件的設(shè)計。在開機時會顯示一張圖片,在程序休眠一至兩秒后啟動另一個畫面,在這個畫面中會根據(jù)用戶的選擇,向左或者向右滑動時會顯示前一張圖片或者是下一張圖片,總共會顯示四張。在這個過程中,除了顯示第一張圖片時沒有能顯示它的前一張圖片和在第四張圖片時不能顯示它的下一張圖片,其他的都可以根據(jù)選擇顯示前一張或者下一張圖片。在顯示第四張圖片時,如果繼續(xù)向左滑動〔實際是跳轉(zhuǎn)到下一頁的功能〕時,會跳轉(zhuǎn)到信息的主界面中。3.4.2信息界面之主界面〔MainPage〕當(dāng)進(jìn)入到這個界面時,可能會停滯一會,因為程序會在啟動這個界面時,會進(jìn)行一些獲取信息的操作,然后當(dāng)信息獲取成功后會顯示設(shè)計的布局中。在這個界面中,會顯示有以下信息:地區(qū):查詢的城市名,并加一些修飾,如陰影設(shè)置,字體大小和顏色的設(shè)置,用于和其他信息進(jìn)行區(qū)分。日期:當(dāng)天的日期,格式為--月--日。天氣:當(dāng)天的天氣情況。天氣圖片:在天氣的有方,顯示與當(dāng)天天氣相符的天氣圖片,如太陽,云朵。氣溫:格式為當(dāng)天的最低溫度/最高溫度,單位是攝氏度。風(fēng)力:風(fēng)向和強度大小。指數(shù):有各項指數(shù),包括穿衣指數(shù),過敏指數(shù)等等。天氣實況:指查詢時刻的天氣情況,包含有空氣質(zhì)量,以及紫外線強度,濕度,天氣,溫度。導(dǎo)航按鈕:有三個小按鈕,其中中間一個是標(biāo)為藍(lán)色按鈕的代表當(dāng)前頁。菜單按鈕:用點擊這個按鈕時,可以進(jìn)入到查詢界面。背景:通過與查到的當(dāng)天的天氣相匹配,找到一個和預(yù)先放到程序中的圖片。天氣不同,顯示的背景不同?;瑒忧袚Q:左右滑動切換到信息界面二〔NextPage〕或者信息界面三〔PreviousPage〕。在滑動時有一定的動作效果。3.4.3信息界面之二〔NextPage〕在這個界面中,設(shè)計了用來顯示未來兩天大概的天氣情況,即明天和后天的天氣。具體的顯示信息有以下幾局部:標(biāo)題:未來天氣。天氣圖片:和主界面中的天氣圖標(biāo)類似,這里是根據(jù)明天的天氣情況來設(shè)置的。明天的天氣:這里會顯示明天的天氣情況,包括日期,天氣,氣溫和風(fēng)向風(fēng)力等情況。后天的天氣:顯示的內(nèi)容和明天的天氣相同。天氣圖片:用于顯示和后天天氣相符的圖片。導(dǎo)航按鈕:有三個小按鈕,其中最右邊的一個是標(biāo)為藍(lán)色的按鈕代表當(dāng)前頁。滑動切換:當(dāng)用戶向右滑動時,可以切換到信息的主界面中。3.4.4信息界面之三〔PreviousPage〕在這個界面中,設(shè)計了用來顯示城市大概的介紹,包括旅游情況和城市的開展歷史。具體的顯示信息有以下幾局部:標(biāo)題:城市介紹,設(shè)置字體大小和顏色。介紹內(nèi)容:主要是顯示所查詢城市的開展歷史,著名的旅游景點等信息。導(dǎo)航按鈕:有三個小按鈕,其中最右邊的一個是標(biāo)為藍(lán)色的按鈕代表當(dāng)前頁。滑動切換:當(dāng)用戶向左滑動時,可以切換到信息的主界面中。當(dāng)用戶繼續(xù)向右滑動時,會切換這個界面的背景,到達(dá)一定的絢麗性。3.4.5查詢界面當(dāng)用戶在信息的主界面中點擊菜單按鈕后,就會進(jìn)入查詢界面。在查詢界面中,主要設(shè)計用于查詢用戶輸入的城市的天氣信息,主要包括以下幾局部:檢查網(wǎng)絡(luò)按鈕:用戶可以用來檢測當(dāng)前的網(wǎng)絡(luò)狀態(tài)。用一個圖片作為這個按鈕的背景,當(dāng)用戶點擊該按鈕時,會顯示當(dāng)前的網(wǎng)絡(luò)狀態(tài),或者返回獲取失敗。定位按鈕:用于獲取用戶當(dāng)前的位置。同樣會用一個圖片作為這個按鈕的背景,當(dāng)用戶點擊這個按鈕時會顯示一個圓形的進(jìn)度條,在這個進(jìn)度條中會顯示“小陳正在努力為您獲取...〞,如果獲取用戶當(dāng)前位置成功時,會顯示一個對話框,在對話框中會顯示“ChenWeather歡送您〞和一個用于進(jìn)入天氣界面的按鈕,在此同時會在屏幕的下方會顯示用戶所在的位置。作者信息:在這里加了我本人的一點信息,在屏幕的中下方會顯示“ChenWeather〞、“陳士杰〞和“電子儀器10-1班〞。輸入信息框:在屏幕的最下方會有一個輸入框,用于用戶輸入所查詢的城市,在這個框中,默認(rèn)的是顯示“請輸入要查詢的城市〔如:北京〕〞,并對這個輸入框進(jìn)行了背景設(shè)置,同時設(shè)置了用戶輸入城市時文字的顏色和大小。查詢按鈕:顧名思義,這個按鈕是供用戶在輸入城市后,進(jìn)行查詢天氣信息的按鈕,這個按鈕和輸入信息框都放在最底部,并列而置。背景設(shè)置:這個界面的背景在安桌應(yīng)用程序的配置文件中設(shè)置,不做過多的設(shè)計。3.5算法流程圖關(guān)于工程的算法流程圖,將在分別在信息顯示模塊和查詢模塊來進(jìn)行描述。顯示模塊,主要是運行這個程序時,通過定位獲取當(dāng)前位置,然后得到當(dāng)前位置的天氣信息,并將結(jié)果信息顯示出來,流程圖如圖3所示:查詢模塊,主要是得到要查詢的城市名,然后進(jìn)行查詢,將得到的信息交給顯示模塊來顯示,流程圖如圖4所示:跳轉(zhuǎn)到NextPage跳轉(zhuǎn)到NextPage退出向右滑動切換背景查詢跳轉(zhuǎn)到PreviousPage進(jìn)入查詢模塊向右滑動切換到主界面向左滑動切換到主界面顯示信息解析天氣信息獲取天氣信息獲取地址成功顯示程序啟動界面顯示完成Y顯示信息主界面網(wǎng)絡(luò)是否連接開始結(jié)束獲取用戶所在地址NNYY圖3-2顯示模塊流程圖判斷合法?判斷合法?獲取當(dāng)前的網(wǎng)絡(luò)狀態(tài)開始進(jìn)入查詢界面獲取用戶當(dāng)前所在地獲取所查詢的城市檢測當(dāng)前的網(wǎng)絡(luò)狀態(tài)顯示位置信息顯示網(wǎng)絡(luò)狀態(tài)信息網(wǎng)絡(luò)是否連接YN解析天氣信息獲取天氣信息顯示信息進(jìn)入顯示模塊結(jié)束退出YN圖3-3查詢模塊流程圖4工程實現(xiàn)在工程實現(xiàn)方面,將以程序運行、界面顯示、天氣查詢、定位、一個后臺運行的Service、以及下拉刷新等方面,來進(jìn)行適當(dāng)?shù)拿枋觥?.1啟動畫面在這個工程中,在MainActivity.java文件中建立了一個類,在該類的onCreate方法中設(shè)置它的布局變量,并在配置文件中注冊一下,聲明該布局文件是程序啟動時顯示的界面。publicclassMainActivityextendsActivity{//一個ImageView控件變量,是用來顯示背景圖片 privateImageViewimageview; protectedvoidonCreate(BundlesavedInstanceState){//給這個Activity設(shè)置相應(yīng)的的布局文件 setContentView(R.layout.activity_main);imageview=(ImageView)findViewById(R.id.iv);//聲明一個Intent的變量,用來啟動Welcom這個類 finalIntentintent=newIntent(this,Welcom.class); Timertimer=newTimer();//創(chuàng)立一個時間任務(wù)隊列,在這個隊列中,先休眠3*1000ms,然后再執(zhí) //行run(),啟動Welcom timer.schedule(newTimerTask(){ publicvoidrun(){ startActivity(intent); finish(); } },3*1000);}}在AndroidManifest.xml文件中注冊。android:name="com.example.weatherdemon.MainActivity"<!--聲明這個布局文件是開啟時就顯示--><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/>然后就會啟動Welcom類,在這個類中會顯示四張通過滑動選擇的圖片。Java文件如下:publicclassWelcomextendsActivity{//聲明一些變量,此處省略。//點擊事件函數(shù) publicbooleanonTouchEvent(MotionEventtouchevent){ switch(touchevent.getAction()){ //當(dāng)用戶手指點擊屏幕時,按下的動作,記錄下手指所在的坐標(biāo)。 caseMotionEvent.ACTION_DOWN:{ oldTouchValue=touchevent.getX(); break; } //當(dāng)用戶手指離開屏幕的動作,記錄這個時候手指所在的坐標(biāo) caseMotionEvent.ACTION_UP:{ floatcurrentX=touchevent.getX();//代表向右滑動,顯示前一個畫面,第一畫面除外。 if(oldTouchValue<currentX){ i--; if(i>0){//設(shè)置畫面切換時的動作和我們看到的背景圖片 mVf.setInAnimation(Welcom.inFromLeftAnimation()); mVf.setOutAnimation(Welcom.outToRightAnimation()); mVf.showPrevious(); } if(i<1) i=1; }//設(shè)置屏幕下方的導(dǎo)航按鈕 setImageView(i); if(oldTouchValue>currentX){ if(i==4){//當(dāng)畫面在第四個的時候,如果繼續(xù)向左滑動,將啟 //動Weather類,進(jìn)入顯示界面 Intentintent=newIntent(this,Weather.class); intflag=1; intent.putExtra("fist_time_flag",flag); startActivity(intent); finish();} i++; setImageView(i); mVf.setInAnimation(Welcom.inFromRightAnimation()); mVf.setOutAnimation(Welcom.outToLeftAnimation());//顯示下一個畫面 mVf.showNext(); } publicvoidsetImageView(inti){ if(i==1) {//通過設(shè)置ImageView控件變量,來顯示四個導(dǎo)航按鈕 iv1.setImageResource(R.drawable.guide_dot_selected); }4.2信息界面顯示實現(xiàn)在代碼中,沒有具體的在一個文件中實現(xiàn)一個功能,這也是代碼的一個重要的缺點,耦合程度高,獨立性較差。這也是在今后的學(xué)習(xí)工作中要花比擬大的精力來改善代碼的耦合性。顯示模塊中,主要的代碼是在Weather.java、NextPage.java和PreviousPage.java文件中,以下是對顯示模塊中三個主要的文件進(jìn)行分析:4.2.1Weather在這個文件中,創(chuàng)立了一個Weather類,主要的工作都是由這個類完成的。當(dāng)用戶進(jìn)入到這個類時,首先是進(jìn)入onCreate方法,在這個方法中先進(jìn)行一些類似初始化的工作。在這個函數(shù)中會啟動GetWeatherService這個效勞,并和它進(jìn)行綁定,提供天氣查詢的功能。protectedvoidonCreate(BundlesavedInstanceState){//啟動GetWeatherService,來獲取天氣信息 startService=newIntent(this,GetWeatherService.class);//設(shè)置下拉刷新時的顯示界面,然后再設(shè)置mPullScrollView的監(jiān)聽函數(shù) mPullScrollView=newPullToRefreshScrollView(this); //開一個handle消息處理函數(shù),采用的匿名內(nèi)部類 handler=newHandler(){ publicvoidhandleMessage(Messagemsg){ switch(msg.what){//當(dāng)程序運行功能界面時會首先選擇這個情況 casefist_time://首先會調(diào)用函數(shù)檢測網(wǎng)絡(luò)的連接狀態(tài) if(!getNetworkState(Weather.this)){} //從基站獲取用戶所在地的經(jīng)度和緯度 itude=getLocation(); //然后調(diào)用這個函數(shù)從谷歌地圖中獲取當(dāng)前所在的城市 addr=getAddr(itude); //這個函數(shù)會開一個線程,通過binder通信,與 //GetWeatherService建立聯(lián)系,獲取天氣信息,runThread();} //定義一個ImageButton,并為它設(shè)置監(jiān)聽函數(shù),這個控件就是在信息界 //面中顯示的菜單按鈕,通過它可以進(jìn)入查詢界面 imageButton=(ImageButton)findViewById(R.id.ibutton); imageButton.setOnClickListener(newView.OnClickListener(){//在這里設(shè)置了一個匿名內(nèi)部類,如果用戶點擊了這個按鈕,那么會 //通過Intent跳轉(zhuǎn)到GetInfo類 publicvoidonClick(Viewv){ Intentintent=newIntent(Weather.this,GetInfo.class); startActivity(intent);}//這個函數(shù)是用來獲取一個GetWeatherService類中的一個內(nèi)部類 //MyBinder的實例,運用的是binder通信機制,由操作系統(tǒng)調(diào)用 //conn的一個連接函數(shù)返回實例 bindService(startService,conn,Service.BIND_AUTO_CREATE);}//這個函數(shù)是在這里,當(dāng)Activity的生命周期onCreate等方//法都完成后才由操作系統(tǒng)調(diào)用,成功后返回一個GetWeatherService的實例 publicvoidonServiceConnected(ComponentNamename,IBinderservice){ igetweather=(IGetWeather)service; Log.d(TAG,"Getigetweather="+igetweather); } //這個run方法是GetWeatherInfoThread線程的執(zhí)行函數(shù),用來獲取天氣信息publicvoidrun(){ try{//這個循環(huán)在這里至關(guān)重要,讓這個線程休眠假設(shè)干個10ms,目的 //只有一個:讓主線程中的bindService完成綁定,返回實例igetweather do{ //調(diào)用線程的休眠函數(shù),休眠假設(shè)干個10ms }while(null==igetweather);//在這個函數(shù)中會調(diào)用GetWeatherService中的函數(shù) GetWeatherInfo(city);}} publicvoidGetWeatherInfo(Stringcityname){ WeatherInfoweatherinfo=null; try{//調(diào)用service中的函數(shù),實際上是調(diào)用IGetWeather接口中的接口函//數(shù),這個接口是在Service中實現(xiàn)的 weatherinfo=igetweather.getweatherinfofromservice(cityname);}//然后發(fā)送消息,在消息處理函數(shù)中被處理,實際的功能時,調(diào)用內(nèi)部 //函數(shù)將獲得的信息顯示出來 Messagemsg=newMessage(); msg.what=mainpage; msg.obj=weatherinfo; handler.sendMessage(msg);} casemainpage://當(dāng)獲取天氣信息后,會發(fā)送消息,在此進(jìn)行處理 weatherInfo=(WeatherInfo)msg.obj; if(weatherInfo==null){//會進(jìn)行平安判斷//顯示當(dāng)天的信息,就是將對應(yīng)的控件設(shè)置獲取的天氣信息 showResult(weatherInfo,mainpage); //根據(jù)當(dāng)天的天氣信息來設(shè)置天氣圖標(biāo)和背景 setImage(weatherInfo.today);這里的WeatherInfo是代表天氣信息的一個類,包含與天氣相關(guān)的各種信息,如表1:表4.2.1-1:WeatherInfo成員變量的含義類型變量名保存的信息Stringcity城市名Stringweather天氣狀況Stringtem溫度Stringwind風(fēng)向和強度Stringdate日期Stringmesg各項指數(shù),如穿衣指數(shù)Stringnowinfo天氣實況Stringtomorrow明天的天氣信息StringafterTom后天的天氣信息Stringintro城市的介紹信息4.2.2NextPage當(dāng)用戶向左滑動屏幕時,界面會進(jìn)入NextPage,在這個界面會顯示明天和后天的天氣情。//在主界面中,會將明天和后天的天氣情況用intent成員函數(shù)來填裝數(shù)據(jù),然后在//startActivity()后將intent傳到NextPage類中。在這個類中將信息顯示出來casenextpage: Intentnextintent=newIntent(Weather.this,NextPage.class); nextintent.putExtra("tomorrow",weatherInfo.tomoarry); nextintent.putExtra("after_tom",weatherInfo.afterTom); startActivity(nextintent);//根據(jù)每一天的天氣情況來設(shè)置天氣圖標(biāo),用flag來將背景設(shè)置和明天的 //天氣相符的圖片 publicvoidSetImageRsr(Stringweather,ImageViewiv){//從傳入的信息中解析出明天和后天的“天氣〞對應(yīng)的實際情況 str=weather.substring(start+2,end-4); if(str.equalsIgnoreCase("晴")){ if(flag==1){//這個flag主要是用來將界面的背景設(shè)置和明天的天氣情況相對 //應(yīng)的圖片。調(diào)用的線性布局的對象的系統(tǒng)函數(shù)。圖片是放在 //工程文件下的layout目錄中的drawable的目錄中。圖片會在R文 //件中自動生成一個Id layout.setBackgroundResource(R.drawable.summary); flag++;}//設(shè)置與天氣相對應(yīng)的圖標(biāo) iv.setImageResource(R.drawable.a_0);當(dāng)用戶向右滑動,切換到主界面時,會調(diào)用函數(shù)finish()來結(jié)束這個NextPage,讓界面重新顯示主界面。4.2.3PreviousPage當(dāng)用戶在主界面時,向右滑動界面,這時會進(jìn)入PreviousPage界面,在這個界面中會顯示該城市的開展歷史和旅游介紹。同樣,在Weather中會將城市的介紹信息放入intent中,然后傳入PreviousPage類中,然后顯示。當(dāng)用戶繼續(xù)向右滑動界面時會切換這個界面的背景。當(dāng)用戶向左滑動界面時,會進(jìn)入信息的主界面。除此之外,在這里又創(chuàng)立了三個Activity,當(dāng)然會有對應(yīng)的布局文件,這些布局文件都要在配置文件中進(jìn)行注冊,之后才能引用這些布局。4.3天氣查詢在這界面中設(shè)計了查詢功能,檢測網(wǎng)絡(luò)連接狀態(tài),定位用戶當(dāng)前所在的城市,其中檢測網(wǎng)絡(luò)和定位功能在顯示模塊中均已介紹。將解釋分析查詢功能。先是聲明定義一個editText控件和button控件,分別是用來得到用戶輸入的城市和點擊查詢信息。 eCityName=(EditText)findViewById(R.id.editText1); querybutton=(Button)findViewById(R.id.button3);然后再給其設(shè)置一個監(jiān)聽事件,實現(xiàn)監(jiān)聽函數(shù)接口onClick() publicvoidonClick(Viewv){ Stringcityname=null; cityname=eCityName.getText().toString(); if(cityname.equalsIgnoreCase("")){//對用戶輸入的城市進(jìn)行判斷,盡可能的判斷輸入的是合法的。 } if(!getNetworkState(GetInfo.this)){//檢測當(dāng)前的網(wǎng)絡(luò)狀態(tài),主要是獲取一個TelephonyManager的一個 //實例,通過調(diào)用這個實例的一個接口函數(shù)getNetworkType,獲取當(dāng)前 //中sim卡的運營商,再進(jìn)一步判斷網(wǎng)絡(luò)。第二中就是判斷 //wifi連接狀態(tài),} //聲明一個Intent來啟動天氣信息顯示的主界面 //在這個Intent對象中添加用戶輸入的城市名 intflag=0;//標(biāo)志是指由查詢進(jìn)入顯示界面 intent.putExtra("fist_time_flag",flag); //最后啟動這個天氣信息顯示主界面類}此外,還在這個界面顯示了關(guān)于本人的一些信息,用的是一個TextView控件,然后對空間進(jìn)行設(shè)置內(nèi)容。4.4GetWeatherService這個Service是用來為Weather這個類提供效勞的。采用的是binder通信機制在類中,構(gòu)建一個內(nèi)部類MyBinder,讓它實現(xiàn)一個定義的一個接口。//用于效勞和活動的通信,必須要復(fù)寫onbinder()函數(shù),這個函數(shù)在bindService(〕//運行時會返回一個調(diào)用效勞的接口,也就是下面的這個變量。MyBinderbinder=newMyBinder();//這個函數(shù)是復(fù)寫父類的onBinder,在綁定效勞時會由操作系統(tǒng)調(diào)用publicIBinderonBind(Intentintent){ returnbinder;}//IGetWeather是定義的一個接口,接口里只有一個函數(shù),在這個效勞中被//實現(xiàn),然后可以在Weather中得到IGetWeather的實例。publicclassMyBinderextendsBinderimplementsIGetWeather{ publicWeatherInfogetweatherinfofromservice(Stringcityname){//調(diào)用函數(shù)getResult,在getResult中開一個線程來獲取天氣信息。 weatherInfo=getResult(cityname);//最后將獲取的天氣信息返回給Weather類 returnweatherInfo;}}在線程的執(zhí)行函數(shù)run中會調(diào)用函數(shù),從WebXml網(wǎng)站這個webservice效勞中獲取天氣信息。代碼分析如下:publicWeatherInfogetWeather(StringcityName){ //在獲取天氣中遵循的是soap協(xié)議, WeatherInfoinfo=newWeatherInfo();//指定Webservice的命名空間和要獲取信息時調(diào)用的Webservice的方法名 SoapObjectrpc=newSoapObject(SERVICE_NAME,METHODNAME);//設(shè)置調(diào)用方法參數(shù)值,cityName就是我們要查詢的城市名 rpc.addProperty("theCityName",cityName); //生成調(diào)用WebService方法的soap請求信息,該信息是由下面這個類來 //描述。Serialization:序列化,Envelop:封裝 SoapSerializationEnvelopeenvelope=newSoapSerializationEnvelope( SoapEnvelope.VER11); envelope.bodyOut=rpc; envelope.dotNet=true; envelope.setOutputSoapObject(rpc);//通過HttpTransportSE類的構(gòu)造函數(shù)可以指定Webservice的WSDL的文檔的URL HttpTransportSEht=newHttpTransportSE(SERVICE_URL); ht.debug=true; ht.call(SOAP_ACTION,envelope);//使用getResponse方法獲取WebService方法的返回結(jié)果 detail=(SoapObject)envelope.getResponse(); //解析獲得的信息 info=parseWeather(detail,cityName);}在解析時,由于soap協(xié)議,將獲取的信息都轉(zhuǎn)換為字符串類型,所以在解析時主要就是根據(jù)轉(zhuǎn)換后的數(shù)據(jù)信息來解析得到所需要的。以下分析一局部解析函數(shù)的代碼: tmp=detail.getPropertyAsString(6).toString(); info.date="日期:"+tmp.split("")[0]; info.weather="天氣:"+tmp.split("")[1];這里的detail是SoapObject對象,這個detail相當(dāng)于一個數(shù)組,第一條語句的意思是取出detail中的下標(biāo)為6的數(shù)據(jù),并轉(zhuǎn)換為String類型,將結(jié)果賦給tmp,tmp.split(“〞)[0]是指首先將tmp里的字符串以空格為結(jié)束符,分為字符數(shù)組,[0]就是指數(shù)組的下標(biāo),這樣就獲得了日期和天氣的信息了。其他的信息獲取時方法類型。還有一點是這個效勞也要在配置文件中注冊。<serviceandroid:name="com.example.weatherdemon.GetWeatherService">//定義了啟動這個效勞的action<actionandroid:name="com.example.weatherdemon.WEATHER"/>4.5下拉刷新在下拉刷新中,其實主要的還是調(diào)用系統(tǒng)函數(shù)。其中,要獲取三個值,第一個是當(dāng)下拉到某個臨界值值后能夠執(zhí)行刷新命令,第二個值是下拉的最大值,第三個值是用戶下拉的值。 privatevoidrefreshLoadingViewsSize(){ //得到header的內(nèi)容高度,將作為拖動刷新的一個臨界值,假設(shè)拖動 //距離大于這個高度,那么松手后,觸發(fā)此刷新操作 intheaderHeight=(null!=mHeaderLayout)?mHeaderLayout .getContentSize():0; mHeaderHeight=headerHeight; //這里得到Header和Footer的高度 //因為header和footer是完全看不見的 headerHeight=(null!=mHeaderLayout)?mHeaderLayout .getMeasuredHeight():0;}同時還要設(shè)置下拉的監(jiān)聽事件,如果符合條件就會進(jìn)行刷新操作。caseMotionEvent.ACTION_DOWN: //記錄按下時的y坐標(biāo) mLastMotionY=event.getY();caseMotionEvent.ACTION_MOVE: //計算差值 finalfloatdeltaY=event.getY()-mLastMotionY; //得到絕對值 finalfloatabsDiff=Math.abs(deltaY); //這里有三個條件: //1,位移差大于mTouchSlop,這是為了防止快速拖動引發(fā)刷新 //2,isPullRefreshing(),如果當(dāng)前正在下拉刷新的話,是允許向上滑動,并把刷新的HeaderView擠上去 if(absDiff>mTouchSlop||isPullRefreshing()){ mLastMotionY=event.getY(); //第一個顯示出來,Header已經(jīng)顯示或拉下 if(isPullRefreshEnabled()&&isReadyForPullDown()){ //0:表示當(dāng)前滑動的偏移量的絕對值大于0,表示當(dāng)前HeaderView滑出來了或完全 //不可見,存在這樣一種case,當(dāng)正在刷新時并且RefreshableView已經(jīng)滑到頂部,向上滑動,那么我們期望的結(jié)果是 //依然能向上滑動,直到HeaderView完全不可見 //2,deltaY>0.5f:表示下拉的值大于0.5f mIsHandledTouchEvent=(Math.abs(getScrollYValue())>0||deltaY>0.5f); //如果截斷事件,我們那么仍然把這個事件交給刷新View去處理,典型的情況是讓ListView/GridView將按下 if(mIsHandledTouchEvent){ mRefreshableView.onTouchEvent(event); }5工程調(diào)試和效果分析5.1工程調(diào)試分析在這個工程中,我遇到了很多困難,比方新建了一個Activity,同時創(chuàng)立了與之相對應(yīng)的布局文件,但是沒有在配置文件AndroidManifest.xml中進(jìn)行注冊,導(dǎo)致在程序運行到那個Activity時就會出現(xiàn)crash。在從WebService中獲取天氣信息時要進(jìn)行幾部操作,最終才能成功獲取。還有一個是我在工程快結(jié)束時發(fā)現(xiàn)的,當(dāng)用戶進(jìn)入信息主界面時,程序會獲取用戶當(dāng)前的位置,出現(xiàn)了一個情況,就是獲取網(wǎng)絡(luò)狀態(tài)時,沒有對出現(xiàn)的所有的狀況進(jìn)行分析判斷,導(dǎo)致在程序運行后,不能顯示用戶當(dāng)前所在城市的天氣信息。調(diào)試信息如圖5:在獲取位置時,導(dǎo)致阻塞在getLocation函數(shù)里面在獲取位置時,導(dǎo)致阻塞在getLocat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)生青春成長路上的困惑解讀
- 醫(yī)療器械產(chǎn)品使用不當(dāng)風(fēng)險免責(zé)協(xié)議書
- 農(nóng)業(yè)生產(chǎn)應(yīng)急管理與風(fēng)險防范方案
- 高考文言文一輪復(fù)習(xí):《元史》專練
- 高考語文答題技巧指導(dǎo)
- 商務(wù)往來溝通文書寫作指南
- 企業(yè)法務(wù)顧問服務(wù)協(xié)議書與風(fēng)險提示告知書
- 涵洞工程勞務(wù)分包合同
- 高考語文一輪復(fù)習(xí)-文言實詞盤點8:敝、蔽、便
- 《數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)指導(dǎo):算法與程序設(shè)計基礎(chǔ)》
- 《基于舞弊風(fēng)險因子的輝山乳業(yè)公司財務(wù)舞弊案例探析》15000字(論文)
- 2025年山西省國有資本運營有限公司招聘筆試參考題庫含答案解析
- 2025年湖南生物機電職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- DB1331T 102-2025雄安新區(qū)應(yīng)急物資儲備庫建設(shè)規(guī)范
- 北京市豐臺區(qū)2024-2025學(xué)年九年級上學(xué)期期末道德與法治試題(含答案)
- 醫(yī)院培訓(xùn)課件:《PET-CT的臨床應(yīng)用》
- 《從外觀看豬病診治》課件
- 《莫比烏斯環(huán)》課件
- 2025海南省交通投資控股限公司招聘30人高頻重點提升(共500題)附帶答案詳解
- 《工業(yè)機器人現(xiàn)場編程》課件-任務(wù)3.涂膠機器人工作站
- 富饒的西沙群島課件
評論
0/150
提交評論