基于Android平臺的天氣預(yù)報軟件設(shè)計【實用文檔】doc_第1頁
基于Android平臺的天氣預(yù)報軟件設(shè)計【實用文檔】doc_第2頁
基于Android平臺的天氣預(yù)報軟件設(shè)計【實用文檔】doc_第3頁
基于Android平臺的天氣預(yù)報軟件設(shè)計【實用文檔】doc_第4頁
基于Android平臺的天氣預(yù)報軟件設(shè)計【實用文檔】doc_第5頁
已閱讀5頁,還剩106頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

基于Android平臺的天氣預(yù)報軟件設(shè)計【實用文檔】doc文檔可直接使用可編輯,歡迎下載

教學(xué)單位基于Android平臺的天氣預(yù)報軟件設(shè)計【實用文檔】doc文檔可直接使用可編輯,歡迎下載學(xué)生學(xué)號本科畢業(yè)論文(設(shè)計)題目基于Android平臺的天氣預(yù)報軟件設(shè)計學(xué)生姓名lion專業(yè)名稱指導(dǎo)教師2013年5月20日基于Android平臺的天氣預(yù)報軟件設(shè)計摘要:Google于2008年推出了一款名為Android的開源智能手機操作系統(tǒng),它采用Linux內(nèi)核,開放手機聯(lián)盟(OHA)成員可以任意使用和修改SDK包,系統(tǒng)的開源性使其具有良好的拓展性。Android的最大特點是其開放性體系架構(gòu),不僅具有非常好的開發(fā)、調(diào)試環(huán)境,而且還支持各種可擴展的用戶體驗。因此,對于軟件從業(yè)人員來說,Android平臺具有無限的吸引力.目前Android操作系統(tǒng)已經(jīng)成為用戶最多的智能操作系統(tǒng)。本天氣預(yù)報軟件的設(shè)計,為Android終端用戶提供一款方便的實時天氣預(yù)報查詢軟件,為用戶帶來良好的用戶體驗及便利的對天氣情況進(jìn)行掌控.本天氣預(yù)報軟件采用ViewFlipper組件,提供友好的界面滑動切換方式,同時減少系統(tǒng)運行時占用的空間。使用Files方式保存天氣信息,SharedPreferences保存用戶偏好設(shè)置,節(jié)約了文件存儲的空間.本文就在分析討論Android手機軟件開發(fā)技術(shù)原理的基礎(chǔ)上,利用Android中基本組件和常用設(shè)計模式,開發(fā)出能為用戶提供更好的基于Android平臺的手機天氣預(yù)報軟件。關(guān)鍵字:Android;天氣預(yù)報;智能手機平臺DesignofweatherforecastsoftwareBasedontheAndroidAbstract:Googlein2008launchedaproductcalledtheAndroidopensourcesmartphoneoperatingsystem,whichusestheLinuxkernel,OpenHandsetAlliance(OHA)memberscanbefreetouseandmodifytheSDKpackage,opensource,ithasgoodscalabilityofthesystem.ThemostimportantfeatureofAndroidisitsopenarchitecture,notonlyhasaverygooddevelopmentanddebuggingenvironment,butalsosupportsavarietyofscalableuserexperience。Therefore,forsoftwareprofessionals,theAndroidplatformhasunlimitedappeal.Androidoperat(yī)ingsystemhasbecometheuserthemostintelligentoperatingsystem。TheweathersoftwaredesignedfortheAndroidenduserstoprovideaconvenient,real-timeweatherquerysoftware,toprovideuserswithagooduserexperienceandconvenienceofcontroloftheweatherconditions.TheweatherforecastsoftwaretheViewFlippercomponents,friendlyinterfaceslidingswitch,whilereducingthespaceoccupiedwhenthesystemisrunning.FilessavedWeatherInformation,SharedPreferencestosaveuserpreferencessettings,savethefilestoragespace。ThisarticleonthebasisofanalysisanddiscussionoftheAndroidmobilephonesoftwaredevelopmenttechnicalprinciples,usingthebasiccomponentsandcommondesignpatternsAndroid,developerscanprovideuserswithbettermobilephoneweatherforecastsoftwarebasedontheAndroidplatform.Keywords:Android;weatherforecast;smartphoneplat(yī)form目錄TOC\o”1—3"\h\z\uHYPERLINK\l”_Toc345586463”1系統(tǒng)概述PAGEREF_Toc345586463\h11.1研究內(nèi)容PAGEREF_Toc345586464\h11.2研究意義PAGEREF_Toc345586465\h1HYPERLINK\l"_Toc345586466"1。3研究現(xiàn)狀和發(fā)展趨勢PAGEREF_Toc345586466\h1HYPERLINK\l"_Toc345586467”2系統(tǒng)分析PAGEREF_Toc345586467\h4HYPERLINKxmlns:xsd=”http:///2001/XMLSchema”

xmlns="http://WebXml。com.cn/”><string〉湖北</string><string>孝感〈/string>〈string>57482</string〉<string>57482.jpg</string>〈string〉2013-1-116:11:23</string><string〉-3℃/10℃</string><string〉1月1日多云〈/string>〈string〉無持續(xù)風(fēng)向微風(fēng)〈/string><string>1。gif〈/string><string〉1.gif</string〉<string>今日天氣實況:氣溫:11℃;風(fēng)向/風(fēng)力:南風(fēng)2級;濕度:40%;空氣質(zhì)量:中;紫外線強度:最弱</string〉〈string>穿衣指數(shù):暫缺.過敏指數(shù):天氣條件極不易誘發(fā)過敏,可放心外出,享受生活。運動指數(shù):天氣較好,但考慮天氣寒冷,推薦您進(jìn)行室內(nèi)運動,若在戶外運動請注意保暖并做好準(zhǔn)備活動。洗車指數(shù):較適宜洗車,未來一天無雨,風(fēng)力較小,擦洗一新的汽車至少能保持一天.晾曬指數(shù):天氣不錯,午后溫暖的陽光仍能滿足你驅(qū)潮消霉殺菌的晾曬需求。旅游指數(shù):多云,有時云會遮擋住陽光,但絲毫不會影響您出行的心情。溫度適宜又有微風(fēng)相伴,很適宜旅游。路況指數(shù):天氣較好,路面比較干燥,路況較好.舒適度指數(shù):天氣較好,早晚會感覺偏涼,午后舒適、宜人??諝馕廴局笖?shù):氣象條件對空氣污染物稀釋、擴散和清除無明顯影響,易感人群應(yīng)適當(dāng)減少室外活動時間。紫外線指數(shù):屬弱紫外線輻射天氣,無需特別防護(hù)。若長期在戶外,建議涂擦SPF在8—12之間的防曬護(hù)膚品。</string>〈string>—1℃/3℃〈/string>〈string>1月2日多云轉(zhuǎn)陰</string〉<string〉北風(fēng)3-4級</string>〈string>1.gif</string><string>2.gif</string><string>—1℃/1℃〈/string>〈string>1月3日陰轉(zhuǎn)雨夾雪〈/string><string〉北風(fēng)3-4級轉(zhuǎn)無持續(xù)風(fēng)向微風(fēng)</string><string>2。gif</string><string>6.gif</string><string>位于湖北省東北部,南臨省會武漢市,北與河南、隨州交界,西接天門、仙桃、京山等縣市,東連黃岡市的紅安縣和武漢市的黃陂區(qū)。因東漢孝子董永行孝感天而得名。孝感市是改革開放中發(fā)展起來的新興中等城市,轄孝南區(qū)、漢川市、應(yīng)城市、安陸市和云夢縣、大悟縣、孝昌縣;國土面積11560平方公里,總?cè)丝冢担?萬人。孝感是楚文化的重要發(fā)祥地之一.周代貳國、軫國、鄖國都建都于此。秦代竹簡、秦漢漆器、東漢陶樓等國寶文物和楚王城等遺址展示了孝感絢麗多財?shù)墓糯幕?。剪紙、皮影、膏塑等傳統(tǒng)文化藝術(shù)源源流長.孝感市屬亞熱帶大陸性季風(fēng)氣候,四季分明,雨量充沛,溫暖濕潤,光照充足。全年主導(dǎo)風(fēng)向為東南風(fēng),年均氣溫在15.5—16.5°C之間。景觀:大洪山、白水寺、白云泉、石刻題記、董永故里、鄂豫邊區(qū)革命烈士陵園、高掛三潭、擂鼓墩古墓群。〈/string></ArrayOfString>從上面天氣信息xml文件看出,有用的天氣信息都在〈string〉</string〉標(biāo)簽中,我們用pull解析器不斷解析,并保存string標(biāo)簽中的內(nèi)容便可以得到天氣信息。while(event!=XmlPullParser。END_DOCUMENT){?? switch(event){ ??caseXmlPullParser.START_TAG: ??if(”string"。equals(pullParser.getName())){? weat(yī)herInfos。add(pullParser.nextText()); ??}??? break;? ?} ? event=pullParser。next();??}4。3主要功能代碼本項目使用的代碼較多,本部分對天氣預(yù)報項目中核心代碼進(jìn)行解析,這部分代碼能夠完成天氣預(yù)報的查詢與顯示的基本功能,另外一部分代碼則實現(xiàn)的了能夠與用戶更好的交互,增加應(yīng)用的界面美觀的功能。4.3。1獲取天氣數(shù)據(jù)從http://www.webxml.com。cn/提供的WebService中獲取的天氣數(shù)據(jù),數(shù)據(jù)的獲取地址為:http://www.webxml。com.cn/WebServices/WeatherWebService.a(chǎn)smx代碼如下:/**通過城市名稱查詢天氣情況,并調(diào)用保存天氣函數(shù) * *@paramcityName城市名?*@return獲取成功則返回true,否則false?*@throwsException?*/publicbooleanqueryWeather(StringcityName)throwsException{??finalStringWEATHER_CITY=? ? "http://www.webxml。com.cn/WebServices/WeatherWebService。asmx”;? Stringsoap=readSoap();??soap=soap。replaceAll(”\\$cityNameaa”,cityName); byte[]entity=soap.getBytes();? Stringpath=WEATHER_CITY;??HttpURLConnectionconn=(HttpURLConnection)newURL(path)。openConnection();??conn.setConnectTimeout(5000);??conn。setRequestMethod("POST”); ?conn.setDoOutput(true);? conn。setRequestProperty(”Content—Type”,”application/soap+xml;charset=utf-8"); ?conn。setRequestProperty("Content—Length",String.valueOf(entity。length));? conn.getOutputStream().write(entity);??if(conn.getResponseCode()==200){ ?//保存天氣信息到xml文件 saveWeatherInfo(conn.getInputStream(),cityName);?? returntrue; ?? ??} ?returnfalse;}readSoap方法privatestaticStringreadSoap()throwsException{? InputStreaminputStream=QueryWeatherService。class。getClassLoader().getResourceAsStream("soap12.xml"); ?byte[]data=StreamTool.read(inputStream);? returnnewString(data);?}通過readSoap方法讀取src下soap12.xml文件,得到訪問天氣預(yù)報的webService的標(biāo)準(zhǔn)天氣交互格式,查詢天氣時將xml中指定的城市名稱換成實際要查詢的天氣預(yù)報的城市名,然后提交查詢.然后獲取到天氣信息的輸入流對象。4.3.2網(wǎng)絡(luò)檢查publicstaticbooleanckeck(Contextcontext){??ConnectivityManagercon=(ConnectivityManager)context???.getSystemService(Context。CONNECTIVITY_SERVICE); ?NetworkInfonetworkinfo=con。getActiveNetworkInfo(); if(networkinfo==null||!networkinfo.isConnected()){ //當(dāng)前網(wǎng)絡(luò)不可用? returnfalse;??}? returntrue;?}檢查設(shè)備當(dāng)前是否接入網(wǎng)絡(luò),使用此功能需要在AndroidManifest。xml中添加訪訪問權(quán)限:〈!--允許程序打開網(wǎng)絡(luò)套接字--><uses—permissionandroid:name="android.permission.INTERNET"/>〈!—-允許程序訪問有關(guān)GSM網(wǎng)絡(luò)信息--〉〈uses-permissionandroid:name="android。permission.ACCESS_NETWORK_STATE"/〉4.3.3定時更新時間本程序一啟動就會啟動就會查看用戶偏好設(shè)置中用戶是否啟用自動更新天氣服務(wù),若啟用,程序會啟動TimeService這個后臺服務(wù),按照用戶設(shè)置進(jìn)行天氣信息更新。核心代碼如下:AlarmManageralarmManager=(AlarmManager)getSystemService(Context.ALARM_SERVICE);alarmManager。set(AlarmManager。RTC_WAKEUP,now+updateMilis,pendingIntent);至此,后臺服務(wù)介紹完畢,最后還需要在AndroidManifest.xml文件中注冊后臺服務(wù).〈serviceandroid:name=”ForecastService”></service><serviceandroid:name=”ForecastTimeService"></service>4.3。4ViewFlipper手勢監(jiān)聽七彩天氣主界面的Activity實現(xiàn)了OnGestureListener接口,下面onFling方法就是OnGestureListener中的一個方法,該方法實現(xiàn)了viewFlipper對滑動手勢的監(jiān)聽,并完成滑動切換效果.onFling中兩個MotionEvent參數(shù)分別是用戶做滑動手勢時,觸屏的起點位置和終點位置,通過getX()方法取出觸點的X軸坐標(biāo),計算終點X軸坐標(biāo)與起點X軸坐標(biāo),差值大于100dp,則認(rèn)為用戶使用滑動手勢,通過差值的正負(fù)來判斷用戶需要向左滑動還是向右滑動,如果差值為正則從左向右滑動,反之從右向左滑動。@Override publicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,?? float(yī)velocityY){ if(e2.getX()-e1.getX()〉100){//從左向右滑動(左進(jìn)右出) ? if(myViewFlipper。isFlipping()){//如果ViewFlipper正在滑動,則不劃動到下一頁,沒有實現(xiàn) ? System。out.println("myViewFlipper.isFlipping");? returntrue; ? }? ?AnimationrInAnim=AnimationUtils.loadAnimat(yī)ion(Weat(yī)herActivity.this, ??R.a(chǎn)nim.push_right_in);//向右滑動左側(cè)進(jìn)入的漸變效果(alpha0。1—>1.0) ? AnimationrOutAnim=Animat(yī)ionUtils.loadAnimation(WeatherActivity。this,? ??R.a(chǎn)nim.push_right_out);//向右滑動右側(cè)滑出的漸變效果(alpha1.0—〉0。1)???myViewFlipper。setInAnimat(yī)ion(rInAnim);? ?myViewFlipper。setOutAnimation(rOutAnim);???myViewFlipper.showPrevious();? ?returntrue; }elseif(e2。getX()-e1。getX()〈-100){//從右向左滑動(右進(jìn)左出)?? if(myViewFlipper。isFlipping()){//如果ViewFlipper正在滑動,則不劃動到下一頁?? returntrue;? } ?AnimationlInAnim=AnimationUtils。loadAnimation(Weat(yī)herActivity.this, ? ?R。anim.push_left_in);//向左滑動左側(cè)進(jìn)入的漸變效果(alpha0。1->1.0) ??AnimationlOutAnim=AnimationUtils.loadAnimation(WeatherActivity.this,?? R.anim.push_left_out);//向左滑動右側(cè)滑出的漸變效果(alpha1.0->0。1)? myViewFlipper.setInAnimation(lInAnim); ? myViewFlipper。setOutAnimation(lOutAnim);? ?myViewFlipper.showNext(); ??returntrue; ?}? returntrue; }4.3。5城市管理中城市點擊事件城市管理中采用GridView以網(wǎng)格形式展現(xiàn)給用戶9個城市管理區(qū)域,用戶在這9個區(qū)域中可以自由添加或刪除關(guān)注的城市。GridViewItemClickListener中寫了當(dāng)GridView中某一個itme被點擊時所做出想響應(yīng).當(dāng)用戶點擊的位置對應(yīng)了一個用戶已經(jīng)關(guān)注的城市(即觸點在“+”前面),程序會先將本城市設(shè)定為首要城市,然后發(fā)送UI更新消息,更新城市天氣界面,最后將界面焦點自動定位到城市天氣頁面;如果點擊位置對應(yīng)的是“+”,則彈出添加城市對話框;如果點擊位置在“+”之后,程序不會響應(yīng)這個事件。classGridViewItemClickListenerimplementsOnItemClickListener{? publicvoidonItemClick(AdapterView<?〉arg0,Viewarg1,intposition,??? longarg3){? ?System。out.println("GridViewItemClickListener");? ?preferencesService=newPreferencesService(w_context);? //得出當(dāng)前已經(jīng)設(shè)定的城市數(shù)目?? setCtiyNum=preferencesService.nowCityNum();???//如果點擊的位置小于當(dāng)前設(shè)定城市的數(shù)目,跳轉(zhuǎn)到position指定的城市天氣界面? if(position<setCtiyNum){????//添加代碼,跳到城市天氣那一頁,并設(shè)定首要城市為選定的城市????StringselectCityName=preferencesService.getCityNameByCityNum(position+1);?? primaryCity=selectCityName;? preferencesService.setPrimaryCity(selectCityName); ? isParseWeather=getWeatherFromXML();//嘗試解析primaryCity天氣情況 ? if(!isParseWeat(yī)her){//如果不存在天氣文件,更新天氣,更新天氣完畢發(fā)送刷新消息? ???refreshWeather(primaryCity); ? ?}? ??//解析成功,發(fā)送更新第一個界面? Messagemsg=newMessage();? ?msg.what=1; ?myHandler.sendMessage(msg);? ??//跳到第一頁 ?? myViewFlipper.setDisplayedChild(0);? ?}???//如果點擊的位置等于當(dāng)前設(shè)定城市的數(shù)目,跳轉(zhuǎn)到添加城市界面 ??elseif(position==setCtiyNum){ ???AddCityDialogshowDialog=newAddCityDialog(w_context,myHandler);//創(chuàng)建類對象 ?showDialog。Creat(yī)eDialog(ADD);//創(chuàng)建需要的dialog }//如果點擊的位置大于當(dāng)前設(shè)定城市的數(shù)目,不作處理?? }}4.4主要界面結(jié)構(gòu)布局代碼在用戶界面設(shè)計上,采用了ViewFlipper框架結(jié)構(gòu),提供直觀的交互操作以及體驗良好的滑動效果。4.4。1ViewFlipper框架結(jié)構(gòu)ViewFlipper中定義了四個界面分別是城市天氣、城市管理、生活指數(shù)、城市介紹,這四個界面是與用戶交互天氣信息最主要的界面.下面是的布局文件代碼。view_paper。xml<?xmlversion="1.0"encoding="utf—8"?>〈ViewFlipperxmlns:android=”http://schemas.a(chǎn)ndroid.com/apk/res/android"android:id="@+id/myViewFlipper"android:layout_width="fill_parent"?android:layout_height="fill_parent"?android:background="@drawable/bg_weather"〉〈includeandroid:id="@+id/weaehers”layout="@layout/city_weather”/><includeandroid:id=”@+id/citySetting"layout="@layout/city_setting”/><includeandroid:id=”@+id/environment”layout="@layout/city_environment”/〉<includeandroid:id=”@+id/cityIntro"layout="@layout/city_intro"/〉〈/ViewFlipper〉4。4.2城市管理界面城市管理界面以一個GridView顯示用戶已經(jīng)關(guān)注的城市,沒有關(guān)注的城市用空白表示,下面是城市管理界面布局文件的主要代碼:city_setting.xml<GridViewandroid:id="@+id/select_city"android:layout_width=”fill_parent"android:layout_height="fill_parent”android:gravity="center"android:horizontalSpacing="10dp"android:numColumns="3”android:verticalSpacing="18dp"android:columnWidth="120dp"〉</GridView〉4.4。3生活指數(shù)用戶可以用選擇列表選自自己關(guān)心的生活指數(shù)信息,下面是生活指數(shù)頁面布局文件主要部分。city_environment。xml<Relat(yī)iveLayoutandroid:layout_width="fill_parent”android:layout_h(yuǎn)eight="wrap_content"〉<LinearLayoutandroid:layout_width=”fill_parent" android:layout_height="wrap_content" android:orientation=”vertical">〈RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"><Spinnerandroid:id="@+id/Spinner"? android:layout_width=”wrap_content”??android:layout_height=”wrap_content"? android:layout_alignParentRight="true"/〉?</RelativeLayout〉?<TextView android:id="@+id/CityLiving"?android:layout_marginTop="10dp” ?android:layout_width="fill_parent” ?android:layout_h(yuǎn)eight="wrap_content"? android:textSize=”16dp"/〉??〈/LinearLayout〉〈ImageViewandroid:id=”@+id/image"android:layout_width="wrap_content"android:layout_height="wrap_content”android:layout_alignParentBottom="true"android:src="@drawable/chenlian"/〉</RelativeLayout>4.4.4城市簡介城市簡介定義了一個ScrollView(卷軸視圖)展現(xiàn)城市簡介信息,ScrollView能夠根據(jù)城市簡介的內(nèi)容多少自動收縮,始終保持展現(xiàn)在用戶眼前的事是一屏,當(dāng)城市簡介內(nèi)容超過一屏?xí)r,視圖將以卷軸方式顯示內(nèi)容,保持界面美觀。city_intro。xml<ScrollViewandroid:id=”@+id/cityInfoScrollView"android:layout_marginTop=”8dp"android:layout_marginBottom="20dp”android:layout_width=”fill_parent”android:layout_h(yuǎn)eight=”wrap_content">〈TextViewandroid:id=”@+id/CityInfo” android:layout_width="fill_parent" ?android:layout_height=”wrap_content"??android:textSize="16dp”/〉〈/ScrollView>5系統(tǒng)測試至此已經(jīng)完成了Weather工程的代碼編寫工作,在這一章節(jié)對Weather工程進(jìn)行測試,步驟及結(jié)果如下:將軟件安裝到手機上,點擊weather啟動程序,程序啟動后,首次使用本程序會彈出添加城市對話框.圖9添加城市界面通過輸入框輸入城市名稱或直接點擊熱門城市,在這里我輸入“孝感”,設(shè)定關(guān)注城市后,如果手機接入網(wǎng)絡(luò),則會自動加載天氣預(yù)報.圖10城市天氣界面用鼠標(biāo)滑動屏幕,將焦點切換到“城市介紹”頁面圖11城市介紹界面用鼠標(biāo)滑動屏幕,將焦點切換到“生活指數(shù)”頁面,通過下拉列表查看關(guān)心的生活指數(shù),這里我查看“空氣指數(shù)”圖12生活指數(shù)界面用鼠標(biāo)滑動屏幕,將焦點切換到“城市管理”頁面,目前只有孝感一個城市,我們可以點擊加號彈出添加城市的對話框,然后添加城市,由于此時添加的城市不是首要關(guān)注城市,所以不會自動加載天氣信息。圖13城市管理界面點擊“北京"可以將北京設(shè)為首要關(guān)注城市,程序會自動加載首要關(guān)注城市的天氣信息(當(dāng)然如果以前加載過該城市的天氣信息,系統(tǒng)不會再次自動加載),并將界面焦點自動滑動到“城市天氣"界面圖14城市天氣界面用鼠標(biāo)滑動屏幕,將焦點切換到“城市管理"頁面,長按“北京”的那個item方框,會彈出城市操作對話框,可以對該城市進(jìn)行“更新天氣”、“更換城市"、“刪除城市”操作。圖15城市操作界面這里我點擊“刪除城市”會彈出提示對話框,點擊“確定”刪除城市,點擊“取消"取消刪除城市。這里點擊“確定”.圖16刪除城市提示界面由于之前“北京”被設(shè)定為首要關(guān)注城市,被刪除時,系統(tǒng)會自動把排在第一的“孝感"設(shè)定為首要城市圖17刪除城市后跳轉(zhuǎn)到城市天氣界面點擊menu按鈕彈出菜單,菜單中有“設(shè)置"、“關(guān)于”、“退出"三個選項,“設(shè)置”可進(jìn)行自動更新設(shè)定,“關(guān)于”顯示本程序及作者相關(guān)信息,“退出”將退出程序。這里點擊“設(shè)置”,彈出的自動更新設(shè)置對話框可以設(shè)定程序自動更新天氣。圖18定時更新設(shè)置界面總結(jié)經(jīng)過幾個月的努力,基于Android平臺手機氣象軟件終于完成了。在做這個畢業(yè)設(shè)計之前,我自學(xué)了一段時間的Android應(yīng)用程序開發(fā),對常用控件、Android四大組件及Activity生命周期有一定了解.當(dāng)我真正去完成這個畢業(yè)設(shè)計時,我發(fā)現(xiàn)我之前自學(xué)的東西遠(yuǎn)遠(yuǎn)不夠完成這個天氣預(yù)報項目,但是我并不灰心,設(shè)計好軟件開發(fā)流程后,我分塊開發(fā)軟件,并針對這塊需要的知識進(jìn)行集中學(xué)習(xí),將以前所學(xué)的分散的、孤立的知識點融合在一起,并學(xué)會如何去處理不同控件組合到一起后產(chǎn)生的新問題,并記錄這些問題的處理方式,以便日后查看。在這個過程中,我學(xué)會了很多知識,比如ViewFlipper、Broadcast以及BroadcastReceive等高級組件的使用,同時對Android應(yīng)用開發(fā)基礎(chǔ)知識重新進(jìn)行了一次系統(tǒng)學(xué)習(xí),使我對Android應(yīng)用開發(fā)基本知識有了更進(jìn)一步的理解.在完成這個畢業(yè)設(shè)計的時候,我遇到了很多困難,由于我的Android是自學(xué)的,對知識掌握不夠全面,經(jīng)常遇到一些無從下手的問題,這讓我學(xué)到更多,當(dāng)我遇到問題時,我首先會到網(wǎng)絡(luò)上查看能夠幫助自己的信息,如果百度解決不了問題,我會在我加的幾個Android技術(shù)討論群中尋求幫助,與他們討論問題產(chǎn)生的原因及解決方式,深入去了解他們的運行機制,這又讓我結(jié)識了一些Android技術(shù)方面的朋友,體會到了互幫互助的精神。這是我覺得在本次天氣預(yù)報開發(fā)中學(xué)到的最受益的東西。雖然,這個軟件代碼的健壯行還目前運行良好,但是我認(rèn)為很差,在整個工程的構(gòu)思方面也不足,用戶操作界面還不夠靈活,這些問題還需要今后逐一解決。與此同時,這個軟件還可以進(jìn)一步擴展,例如“關(guān)注城市新聞推送”、“生活百寶箱”等,使功能更加強大,帶給用戶更好的體驗與生活的便捷。參考文獻(xiàn)[1]靳巖,姚尚朗.GoogleAndroid開發(fā)入門與實戰(zhàn).人民郵電出版社[2]景保玉.2010中國移動應(yīng)用開發(fā)現(xiàn)狀與趨勢大調(diào)查,2011年01月12日[3]MichaelJ.Young.輕松搞定XML林嘉勝譯2001年01月08日[4](英)HerbertSchildtJava參考大全(J2SE5Edition),北京:清華大學(xué)出版社[5]王向輝,張國印,沈潔.Android應(yīng)用程序開發(fā).北京:清華大學(xué)出版社,2010年3月[6]楊豐盛。Android應(yīng)用開發(fā)揭秘.北京:機械工業(yè)出版社,2010年1月[7]ZhuTingting,TheSynthesisoftheApplicationSoftwaresBasedonAndroidOperatingSystem,Computer&Telecommunication,2011年01期,23—25[8]杜艷綏.基于Android平臺架構(gòu)應(yīng)用程序開發(fā)研究[J]電腦編程技巧與維護(hù),2013,(06).致謝本課題的設(shè)計和論文撰寫過程中,我的指導(dǎo)老師XX老師給于了極大的幫助,為我提供了大量的相關(guān)資料。在完成課題設(shè)計的過程中,老師在總體設(shè)計思想上給予了許多重要的實際指導(dǎo),拓展了我的思路,使得我得以完成了任務(wù).在此,我對焦家林老師的指導(dǎo)表示衷心的感謝。同時,我也衷心的感謝XX學(xué)校四年來對我的精心栽培,良好的校園環(huán)境、精良的師資隊伍、濃厚的校園文化都讓我深深懷念,都為我進(jìn)入社會提供了莫大的幫助。Y:是TBD:不確定N:不是NA:不適用檢查項Y/TBD/N/NA清晰性

系統(tǒng)的目標(biāo)是否已定義?

是否對關(guān)鍵術(shù)語和縮略語進(jìn)行定義和描述?

所使用的術(shù)語是否和用戶/客戶使用的一致?

需求的描述是否清晰,不含糊?

是否有對整套系統(tǒng)進(jìn)行功能概述?

是否已詳細(xì)說明了軟件環(huán)境(共存的軟件)和硬件環(huán)境(特定的配置)?

如果有會影響實施的假設(shè)情況,是否已經(jīng)聲明?

是否已經(jīng)對每個業(yè)務(wù)邏輯進(jìn)行輸入、輸出以及過程的詳細(xì)說明?

完整性

是否列出了系統(tǒng)所必須的依賴、假設(shè)以及約束?

是否對每個提交物或階段實施都進(jìn)行了需求說明?

需求說明書是否已包括了主要的質(zhì)量屬性,例如有效性、高效性、靈活性、完整性、互操作性、可靠性、健壯性、可用性、可維護(hù)性、可移植性、可重用性和可測試性。

依從性

該文檔是否遵守了該項目的文檔編寫標(biāo)準(zhǔn)?

一致性

需求說明是否存在直接相互矛盾的條目?

本需求說明書是否與相關(guān)需求素材一致?

可行性

所描述的所有功能是否必要并充分地滿足了客戶/系統(tǒng)目標(biāo)?

需求說明書的描述的詳細(xì)程度是否足以進(jìn)行詳細(xì)的設(shè)計?

已知的限制(局限)是否已經(jīng)詳細(xì)說明?

是否已確定每個需求的優(yōu)先級別?

可管理性

是否將需求分別陳述,因此它們是獨立的并且是可檢查的?

是否所有需求都可以回溯到相應(yīng)的需求素材,反之亦然?

是否已詳細(xì)說明需求變更的過程?

需求規(guī)格說明書檢查表概要設(shè)計檢查表Y:是TBD:不確定N:不是NA:不適用檢查項Y/TBD/N/NA清晰性

是否所設(shè)計的架構(gòu),包括數(shù)據(jù)流,控制流和接口,被清楚地表達(dá)了?

是否所有的假設(shè)、約束、策略及依賴都被記錄在本文檔了?

是否定義了總體設(shè)計目標(biāo)?

完整性

是否所有的以前的TBD(待確定條目)都已經(jīng)被解決了?

是否設(shè)計已經(jīng)可以支持本文檔中遺留的TBD有可能帶來的變更?

是否所有的TBD的影響都已經(jīng)被評估了?

是否仍存在可能不可行的設(shè)計部分?

是否已記錄設(shè)計時的權(quán)衡考慮?該文件是否包括了權(quán)衡選擇的標(biāo)準(zhǔn)和不選擇其它方案的原因?

依從性

是否遵守了項目的文檔編寫標(biāo)準(zhǔn)?

一致性

數(shù)據(jù)元素、流程和對象的命名和使用在整套系統(tǒng)和外部接口之間是否一致?

該設(shè)計是否反映了實際操作環(huán)境(硬件、軟件、支持軟件)?

可行性

從進(jìn)度、預(yù)算和技術(shù)角度上看該設(shè)計是否可行?

是否存在錯誤的、缺少的或不完整的邏輯?

數(shù)據(jù)使用

所有復(fù)合數(shù)據(jù)元素、參數(shù)以及對象的概念是否都已文檔化?

是否還有任何需要的但還沒有定義的數(shù)據(jù)結(jié)構(gòu),反之亦然?

是否已描述最低級別數(shù)據(jù)元素?是否已詳細(xì)說明取值范圍?

功能性

是否對每一下級模塊進(jìn)行了概要算法說明?

所選擇的設(shè)計和算法能否滿足所有的需求?

接口

操作界面的設(shè)計是否有為用戶考慮(例如:詞匯、使用信息和進(jìn)入的簡易)?

是否已描述界面的功能特性?

界面將有利于問題解決嗎?

是否所有界面都互相一致,與其它模塊一致,以及和更高級別文檔中的需求一致?

是否所有的界面都提供了所要求的信息?

是否已說明內(nèi)部各界面之間的關(guān)系?

界面的數(shù)量和復(fù)雜程度是否已減少到最?。?/p>

可維護(hù)性

該設(shè)計是否是模塊化的?

這些模塊具有高內(nèi)聚度和低耦合度?

是否已經(jīng)對繼承設(shè)計、代碼或先前選擇工具的使用進(jìn)行了詳細(xì)說明?

性能

主要性能參數(shù)是否已被詳細(xì)說明(例如:實時、速度要求、磁盤輸入/輸出接口等)?

可靠性

該設(shè)計能夠提供錯誤檢測和恢復(fù)(例如:輸入輸出檢查)?

是否已考慮非正常情況?

是否所有的錯誤情況都被完整和準(zhǔn)確地說明?

該設(shè)計是否滿足該系統(tǒng)進(jìn)行集成時所遵守的約定?

易測性

是否能夠?qū)υ撎紫到y(tǒng)進(jìn)行測試、演示、分析或檢查來說明它是滿足需求的?

該套系統(tǒng)是否能用增量型的方法來集成和測試?

可追溯性

是否各部分的設(shè)計都能追溯到需求說明書的需求?

是否所有的設(shè)計決策都能追溯到原來確定的權(quán)衡因素?

所繼承設(shè)計的已知風(fēng)險是否已確定和分析?

詳細(xì)設(shè)計檢查表Y:是TBD:不確定N:不是NA:不適用檢查項Y/TBD/N/NA清晰性

所有單元或過程的目的是否都已文檔化?

包括了數(shù)據(jù)流、控制流和接口的單元設(shè)計是否已清晰的說明?

完整性

是否已定義和初始化所有的變量、指針和常量?

是否已描述單元的全部功能?

是否已詳細(xì)說明用來實現(xiàn)該單元的關(guān)鍵算法(例如:用自然語言或PDL)?

是否已列出該單元的調(diào)用?

依從性

該文檔是否遵循了該項目已文檔化的標(biāo)準(zhǔn)?

是否采用了所要求的方法和工具來進(jìn)行單元設(shè)計?

一致性

數(shù)據(jù)元素的命名和使用在整個單元和單元接口之間是否一致?

所有接口的設(shè)計是否互相一致并且和更高級別文檔一致?

正確性

是否處理所有條件(大于、等于、小于零、switch/case)?是否存在處理“casenotfound”的條件?

是否正確地規(guī)定了分支(邏輯沒有顛倒)?

數(shù)據(jù)使用

是否所有聲明的數(shù)據(jù)都被實際使用到?

是否所有該單元的數(shù)據(jù)結(jié)構(gòu)都被詳細(xì)說明?

是否所有修改共享數(shù)據(jù)(或文件)的程序都考慮到了其它程序?qū)υ摴蚕頂?shù)據(jù)(或文件)的存取權(quán)限?

是否所有邏輯單元、時間標(biāo)志和同步標(biāo)志都被定義和初始化?

接口

接口參數(shù)在數(shù)量、類型和順序上是否匹配?

是否所有的輸入和輸出都被正確定義和檢查?

是否傳遞參數(shù)序列都被清晰的描述?

是否所有參數(shù)和控制標(biāo)志由已描述的單元傳遞或返回?

是否詳細(xì)說明了參數(shù)的度量單位、取值范圍、正確度和精度?

共享數(shù)據(jù)區(qū)域及其存取規(guī)定的映射是否一致?

可維護(hù)性

單元是否具有高內(nèi)聚度和低耦合度(例如:對該單元的更改不會在該單元有任何無法預(yù)料的影響并對其它單元的影響很?。?/p>

性能

是否該單元的所有約束例(如過程時間和規(guī)模)都被詳細(xì)說明?

可靠性

初始化是否使用到缺省值,缺省值是否正確?

是否在內(nèi)存訪問的時候執(zhí)行了邊界檢查(例如:數(shù)組、數(shù)據(jù)結(jié)構(gòu)、指針等)來確保只是改變了目標(biāo)存儲位置?

是否執(zhí)行輸入、輸出、接口和結(jié)果的錯誤檢查?

是否對所有錯誤情況都發(fā)出有意義的信息?

對特殊情況返回的代碼是否和已規(guī)定的全局定義的返回代碼相匹配?

是否考慮到意外事件?

易測性

是否能夠?qū)γ總€單元進(jìn)行測試、演示、分析或檢查來說明它們是滿足需求的?

該設(shè)計是否包含檢查點來幫助測試(例如:有條件的編譯代碼和數(shù)據(jù)聲明測試)?

是否所有的邏輯都能被測試?

是否已描述測試程序、測試數(shù)據(jù)集和測試結(jié)果?

可追溯性

是否設(shè)計的每一部分都能追溯到其它項目文檔的需求,也能追溯到更高級別文檔的需求?

是否所有的設(shè)計決定都能追溯到權(quán)衡考慮?

單元需求是否都能上溯到更高級別的文檔?更高級別文檔的需求是否已經(jīng)在單元中體

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論