




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、專業(yè)工程綜合實訓設計報告第一章緒論11.1 課題的背景及意義11.2 系統(tǒng)框架1第二章系統(tǒng)分析32.1 系統(tǒng)可行性分析32.1.1 功能可行性分析32.1.2 運行環(huán)境可行性分析32.2 開發(fā)環(huán)境簡介32.2.1 JavaDevelopmentkit(JDK)介紹32.2.2 AndroidSDK介紹32.2.3 Eclipse開發(fā)工具介紹42.2.4 AndroidDevelopmentTools(ADT)介紹4第三章Android開發(fā)常用到的技術及環(huán)境搭建53.1 Android開發(fā)常用到的技術53.1.1 Activity53.1.2 Service63.1.3 ContentProvi
2、der內容提供者73.1.4 Intent信使73.2 環(huán)境搭建73.2.1 安裝JDK73.2.2 安裝Eclipse83.2.3 AndroidSDK安裝83.2.4 ADT安裝8第四章手機計步器的設計與實現(xiàn)94.1 計步器功能的設計94.2 計步器功能的實現(xiàn)114.2.1 計步開始及暫停114.2.2 復位鍵124.2.3 設置步長124.2.4 設置體重124.2.5 歷史記錄的查看及刪除13第五章計步器的界面效果195.1 用戶界面195.2 設置界面205.3 歷史界面235.4 日歷選擇界面245.5 用戶離開界面25第六章系統(tǒng)測試與分析266.1 測試過程266.2 測試分析3
3、9結論40參考文獻41第一章緒論1.1 課題的背景及意義當今社會,手機已經(jīng)成為人們工作生活中必不可少的一項通訊和娛樂工具,隨著手機的不斷更新,手機的各種高層服務和應用層出不窮。現(xiàn)在智能手機可謂是爆發(fā)式增長,與此同時傳統(tǒng)手機在不斷地消失,諾基亞就是在這樣的環(huán)境中受到了重創(chuàng)?,F(xiàn)在主要有三個使用率和關注度最高的手機平臺,分別是:Android,ios和windowsphone平臺,在這三個平臺中Android的占有率最高。自2007年11月Google公司發(fā)布Android系統(tǒng)以來,短短幾年時間,Android已經(jīng)占據(jù)了智能手機市場的半壁江山,成為目前最為炙手可熱的智能手機操作系統(tǒng)。Android走
4、進了越來越多人的生活,成為他們獲取信息的主要平臺。Android平臺對于Google和用戶的意義不在于手機本身,而在于為了推動移動互聯(lián)網(wǎng)產業(yè)鏈的迅速成型。具有開源性的Android手機平臺與之前Symbian、windowsmobile等操作系統(tǒng)不同,它們收取高額的授權費用,而Android不需要,這樣使得應用開發(fā)成本大大降低;也正是由于它的源代碼是開放的,使得開發(fā)者可以隨心所欲的開發(fā)應用。同時,手機生產商和軟件開發(fā)商也能夠在這里得到利潤,手機軟件得到有效的維護協(xié)調發(fā)展。這正是Google發(fā)布Android平臺的意義,也是Android平臺的使命所在。同時目前搭載Android平臺的應用有很多
5、,但針對傳感器而開發(fā)的應用市場上還不多見。本應用正是針對Android手機內置的加速度傳感器而特別設計的應用。所以鑒于移動端應用開發(fā)是目前軟件開發(fā)行業(yè)正在興起并會越來越炙手可熱的一個分支,并且針對傳感器的開發(fā)相對空白我選擇了研究此課題。1.2 系統(tǒng)框架在設計一款軟件時一般都會把它分成幾個模塊,在模塊的基礎上還會再分小模塊,這樣就達到了軟件模塊化設計的要求,然后再對各個小模塊進行詳細設計和編寫,采用模塊化的管理方式可以使軟件結構更清晰,也使得軟件的管理更有秩序,使別人容易理解和閱讀,但是這些模塊也要根據(jù)別的模塊來設計和約束,不能隨便設計脫離框架,設計完成后需要把每個設計完成的模塊根據(jù)總體框架結合
6、起來。根據(jù)本軟件的功能需求,將本軟件分為以下幾個功能模塊,如圖1-1所示:主界面,*結束保存日期步數(shù)公里暫停/開始卡路里復位保存記錄關閉應用軟件歷史設置查 看 歷 史 記 錄刪 除 歷 史 記 錄體重圖1-1整體框架圖設置用戶步長設置用戶體重第二章系統(tǒng)分析2.1 系統(tǒng)可行性分析可行性分析(FeasibilityAnalysis)也稱為可行性研究,是在系統(tǒng)調查的基礎上,針對剛剛開發(fā)打算進一步應用的系統(tǒng)的必要性和可能性的分析和研究??尚行匝芯康哪康闹饕谟?,用最小的代價在盡可能短的時間內確定問題是否能夠解決。1該階段通過對系統(tǒng)總目標的初步調研與分析,提出可行性方案并進行論證。2.1.1 功能可行性
7、分析1、計步功能:根據(jù)用戶設置的步長和體重,估算用戶步行運動所消耗的熱量。當距離發(fā)生改變時在前臺界面上刷新用戶步行的步數(shù)、距離、和消耗的卡路里;該計步功能還實現(xiàn)了Notification后臺運行的功能。2、設置參數(shù)功能:設置用戶的步長、體重2個參數(shù)信息。通過設置體重可以估算出不同體重的人運動所消耗的卡路里量。3、退出系統(tǒng)功能:當用戶想終止計步軟件時,可以點擊退出菜單后退出本系統(tǒng)。4、歷史記錄功能:用戶可以查看以往的歷史記錄。5、保存功能:有戶可以保存當天的運動量,以便之后查看。2.1.2 運行環(huán)境可行性分析本軟件是在windows7操作系統(tǒng)中,利用Eclipse開發(fā)工具搭載AndroidSDK
8、工具包,結合Android手機自帶的sqlite數(shù)據(jù)庫進行開發(fā)。2.2 開發(fā)環(huán)境簡介2.2.1 JavaDevelopmentkit(JDK)介紹JDK是Java語言的軟件開發(fā)工具包。本應用用的是JDK的J2ME版,它主要用于移動設備、嵌入式設備上的Java應用程序。沒有JDK的話,無法編譯Java程序,所以這是開發(fā)Java程序必須安裝的工具。2.2.2 AndroidSDK介紹SDK(softwaredevelopmentkit)軟件開發(fā)工具包。被軟件開發(fā)工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應用軟件的開發(fā)工具的集合。因此,AndroidSDK指的是Android專屬的
9、軟件開發(fā)工具包。2.2.3 Eclipse開發(fā)工具介紹Eclipse是一個開放源代碼的、基于插件的可擴展性平臺。也可以說它只是一個框架和一組服務,用于通過插件組件構建開發(fā)環(huán)境。Eclipse附帶了一些標準的插件集,包括Java開發(fā)工具(JDK)。本次應用就是將Eclipse當作Java集成開發(fā)環(huán)境來使用,但是它的作用并不僅僅如此。由于Eclipse中的每樣東西都是插件,所以只要有插件就可以使用它,因而不僅僅是Java語言,C/C+、PH對語言也可以使用Eclipse。2.2.4 AndroidDevelopmentTools(ADT介紹目前Android開發(fā)所用的開發(fā)工具是Eclipse,在E
10、clipse編譯IDE環(huán)境中,安裝ADT為Android開發(fā)提供開發(fā)工具的升級或者變更,簡單理解為在Eclipse下開發(fā)工具的升級下載工具。ADT擴展了Eclipse的功能,讓我們能快速建立新的Android項目、創(chuàng)建應用程序的用戶界面。它可以幫助Eclipse找到AndroidSDK,再加上Android框架的API組件調試使用AndroidSDK工具,以便APK分發(fā)給應用程序。同時大大減輕了Android應用程序的開發(fā)工作量,工具集成XML編輯器,將給開發(fā)者一個令人難以置信的開發(fā)Android應用環(huán)境。當然如果你不用Eclipse作為你的開發(fā)工具,你就不需要下載ADT只下載SDK®
11、;可開發(fā)。2第三章Android開發(fā)常用到的技術及環(huán)境搭建3.1 Android開發(fā)常用到的技術3.1.1 ActivityActivity是Android應用程序開發(fā)中最重要的組件。一個Activity提供一個屏幕,用戶可以用來交互以完成某項任務,例如點擊、拍照、撥號等。它是用戶與應用交互的直接且最重要的組件。Activity生命周期可以用幾個函數(shù)說明:onCreate():Activity開始創(chuàng)建時調用;onStart():在Activity開始執(zhí)行時調用,這時Activity已經(jīng)可見;onResume():在Activity獲得用戶焦點時調用,止匕時Activity可以和用戶交;onPa
12、use():在Activity被暫停時調用,失去用戶焦點,但沒有被摧毀;onStop():在Activity被停止時調用,此時Activity已經(jīng)不可見,但仍然沒有被摧毀;onRestart():在Activity被重新啟動時調用;onDestory():在Activity被徹底摧毀時調用。Activity的生命周期在各函數(shù)之間的跳轉。如圖3-1:的生命周期圖圖 3-1 Activity3.1.2 Service一個Service是一段長生命周期的,沒有用戶界面的程序,可以用來開發(fā)如監(jiān)控類程序。一個很好的例子就是用手機在播放音樂時,用戶可以進行其它應用的活動而此時并沒有播放音樂的界面,但是音樂
13、在后臺播放并不受影響,這就是Service的功勞。還有就是鬧鐘提醒,當你設置好鬧鐘后并不需要一直顯示在鬧鐘那個界面,甚至手機也可以關掉但是只要時間到了,鬧鐘依然可以提醒,這也是Service的作用3.1.3 ContentProvider內容提供者android平臺提供了ContentProvider,它是一個應用程序的指定數(shù)據(jù)集提供數(shù)據(jù)給其他應用程序。這些數(shù)據(jù)可以存儲在文件系統(tǒng)中、在一個SQLite數(shù)據(jù)庫、或以任何其他合理的方式。本文用到了文件存儲和SharedPreferences的存儲方式。文件存儲大家都很熟悉,就是以文件為操作對象,向文件中寫入或讀取數(shù)據(jù)。SharedPreferenc
14、es可以將數(shù)據(jù)保存到應用程序的私有存儲區(qū),這些存儲區(qū)中的數(shù)據(jù)只能被寫入這些數(shù)據(jù)的軟件讀取。它的本質是基于XML±件存儲key-value鍵值對數(shù)據(jù),通常用來存儲一些簡單的配置信息。例如:登陸時用到的用戶名和密碼。3.1.4 Intent信使Intent也是Android開發(fā)者比較重要的一部分,它主要用來解決Android應用的各項組件之間的通訊,被稱為Android應用中的信使。Intent負責對應用中一次操作的動作、動作涉及數(shù)據(jù)、附加數(shù)據(jù)進行描述,Android則根據(jù)此Intent的描述,負責找到對應的組件,將Intent傳遞給調用的組件,并完成組件的調用。所以它常被用來啟動一個A
15、ctivity或Service,3例如當從一個Activity啟動另一個Activity時,可以這樣操作,Intentintent=newIntent();intent.setClass(startActivity.this,secondActivity.class);this.startActivity(intent)。3.2 環(huán)境搭建首先要有一臺安裝有Windows系統(tǒng)的計算機,接下來就是安裝過程。3.2.1 安裝JDK下載JDK,在這里雙擊按提示安裝。然后是配置環(huán)境變量:1 .我的電腦屬性環(huán)境變量系統(tǒng)變量;2 .JAVA_HOME為:D:ProgramFilesjdk(你安裝JDK的目錄
16、);3 .CLASSPATH!為:;JAVA_HOME%libtools.jar;%JAVA_HOME%libdt.jar;%JAVA_HOMEbin;4 .Path:在開始追加%JAVA_HOMEbin;如果安裝成功,打開cmd窗口,輸入java-version會出現(xiàn)如圖3-1顯示的信息:圖3-1JDK安裝成功提示信息3.2.2 安裝Eclipse下載Eclipse,這里是網(wǎng)址/downloads/解壓后即可使用。3.2.3 AndroidSDK安裝在AndroidDevelopers下載最新版本的壓縮包,下載完成后解壓到任意路徑,運行SDKSetu
17、p.exe。選定你要安裝的內容。這里也需要配置環(huán)境變量,在用戶變量中新建PATH1為:AndroidSDK中的tools絕對路徑。53.2.4 ADT安裝打開EclipseIDE,點擊菜單中的“Help”然后點擊“InstallNewSoftware”,再點擊Add.按鈕,這時會彈出一個對話框要求輸入,Namef口Location:Name項可以自己隨便填取,LocationftAhttp:/dl-的下拉列表中選擇我們剛才添加的ADT我們會看到下面出有DeveloperTools,展開它會有AndroidDDMS和AndroidDevelopmentTool,選定他們。然后按要求一步一步nex
18、t,完成之后,這個過程可能會很慢。這取決于網(wǎng)絡環(huán)境。最后選擇Window->Preferences.在左邊的面板選擇Android,然后再右側點擊Browse,并選中SDK各徑。點擊Apply,到此就配置完成了6。第四章手機計步器的設計與實現(xiàn)4.1 計步器功能的設計軟件采用最主流的Android軟件應用開發(fā)風格,并使用Android的原生組件進行開發(fā),界面友好,簡潔易懂,組建布局具有誘導性,用戶使用極其方便快捷。1、主界面操作流程見圖4-1:圖4-1圖為主界面操作流程圖2、設置界面操作流程見圖4-2:圖4-2圖為設置界面操作流程圖3、日歷選擇界面操作流程見圖4-3:圖4-3日歷選擇界面操
19、作流程圖4、歷史界面操作流程見圖4-4:刪除圖4-4歷史界面操作流程圖5、復位界面操作流程見圖4-5:主界面復位*清空數(shù)據(jù)、4圖4-5復位界面操作流程圖6、關閉程序界面操作流程見圖4-6:主界面,、J,二結束程序、噎>圖4-6關閉程序界面操作流程圖4.2 計步器功能的實現(xiàn)計步器的主要功能有:計步開始/暫停,設置,顯示運動所消耗的卡路里,走過長度。本軟件是一個結合手機用戶特別是智能手機用戶常用功能的一個軟件平臺,本軟件可以通過界面快速獲取運動的情況,獲取信息后可以對這些信息進行個性化處理以方便用戶直觀的感受運動量。4.2.1 計步開始及暫停首先對暫停/開始鍵做一個監(jiān)聽start_pause
20、_button.setOnClickListener(newView.OnClickListener()同時還要對此時狀態(tài)做一個判斷start_pause_button.setText(mIsRunning?R.string.pause:R.string.resume);若初始狀態(tài)為記錄則顯示暫停,若初始狀態(tài)為非記錄狀態(tài)則顯示開始。4.2.2 復位鍵對清零按鈕做一個View即:resetButton=(Button)findViewById(R.id.reset_button);實現(xiàn)清零的語句很簡單,對“開始”鍵做一個監(jiān)聽,當用戶點擊“開始”鍵時,即:resetButton.setOnClic
21、kListener(newView.OnClickListener()7執(zhí)行一下命令:publicvoidonClick(Viewv)resetValues(true);這樣記錄數(shù)據(jù)清零的按鈕就完成了。4.2.3 設置步長對于設置步長,首先要獲取用戶所輸入的步長信息:returnFloat.valueOf(mSettings.getString("step_length","70")若用戶未對步長信息進行編輯,則默認為70.在DistanceNotfier中使用mStepLength來計算走過的距離:mDistance=mDistance+(float)
22、(mStepLength/100000.0);notifyListener();4.2.4 設置體重對于設置體重,首先要獲取用戶所輸入的體重信息:returnFloat.valueOf(mSettings.getString("body_weight","50若用戶未對步長信息進行編輯,則默認為50.在CaloriesNotifier中使用mBodyWeight來計算用戶因運動所消耗的卡路里:mCalories+=(mBodyWeight*(mIsRunning?METRIC_RUNNING_FACTORMETRIC_WALKING_FACTOR)*mStepLe
23、ngth/100000.0;notifyListener();4.2.5 歷史記錄的查看及刪除publicclassViewlextendsActivity也使用ActionBarActivity出現(xiàn)閃退不能運行,可以使用ActivityprivateListViewlist;privateButtonbtnBack,btnForward;privateintmYear,mMonth,mDay;privateTextViewtvTitle;String口from;Stringtoday;intto;int_id;SimpleCursorAdaptermAdapter;DataBasedb;Cu
24、rsorcur;OverrideprotectedvoidonCreate(BundlesavedInstanceState)super.onCreate(savedlnstanceState);setContentView(R.layout.viewl);db=newDataBase(this);db.CreatTable_amount();list=(ListView)findViewById(R.id.listViewl );Calendarc=Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00");mYear=c
25、.get(Calendar.YEARmMonth=c.get(Calendar.MONT)+1;mDay=c.get(Calendar.DAY_OF_MOh)ITHif(mMonth<10)today=mYear+"-"+"0"+mMonth;elsetoday=mYear+"-"+mMonth;cur=db.getAmount(today);from=newString"date","Distance"to=newintR.id.textViewl,R.id.textView2;cur=
26、db.getAmount(today);mAdapter=newSimpleCursorAdapter(this,R.layout.items,cur,from,to);list.setAdapter(mAdapter);list.setOnItemLongClickListener(newOnItemLongClickListener()OverridepublicbooleanonItemLongClick(AdapterView<?>Vparent,android.view.Viewview,intposition,longid)/TODOAuto-generatedmeth
27、odstub_id=(int)id;newAlertDialog.Builder(View1.this).setTitle("提示?).setMessage(”確定刪除該細節(jié)?)setIcon(R.drawable.ic_launcher).setPositiveButton("確定",newDialogInterface.OnClickListener()publicvoidonClick(DialogInterfacedialog,intwhichButton)/Log.v("",""+_id);db.delAmount
28、(_id);mAdapter.changeCursor(cur);(SimpleCursorAdapter)mAdapter).notifyDataSetChanged();finish();System.out.println("ok");list.setAdapter(mAdapter);).setNegativeButton("取消",newDialogInterface.OnClickListener()publicvoidonClick(DialogInterfacedialog,intwhichButton).show();returnfal
29、se;);tvTitle=(TextView)findViewById(R.id.tvTitle);tvTitle.setText(mYear+"-"+mMonth+"-"+"01"+"-"+mYear+"-"+(mMonth+1)+"-"+"01");/if(mMonth=12)tvTitle.setText(mYear+"-"+mMonth+"-"+"01"+"-"+(mY
30、ear+1)+"-"+1+"-"+"01");elseif(mMonth>12)mMonth=1;mYear=mYear+1;tvTitle.setText(mYear+"-"+mMonth+"-"+"01"+"-"+mYear+"-"+(mMonth+1)+"-"+"01");/btnBack=(Button)findViewById(R.id.btnBack);btnForward=(B
31、utton)findViewById(R.id.btnForward);ButtonListenerbuttonlistener=newButtonListener();btnBack.setOnClickListener(buttonlistener);btnForward.setOnClickListener(buttonlistener);classButtonListenerimplementsOnClickListenerpublicvoidonClick(android.view.Viewv)switch(v.getId()caseR.id.btnBack:leftView();b
32、reak;caseR.id.btnForward:rightView();break;privatevoidrightView()Calendarc=Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00");mMonth+;tvTitle.setText(mYear+"-"+mMonth+"-"+"01"+"-"+mYear+"-"+(mMonth+1)+"-"+"01");if(mM
33、onth=12)tvTitle.setText(mYear+"-"+mMonth+"-"+"01"+"-"+(mYear+1)+"-"+1+"-"+"01");elseif(mMonth>12)mMonth=1;mYear=mYear+1;tvTitle.setText(mYear+"-"+mMonth+"-"+"01"+"-"+mYear+"-"+(
34、mMonth+1)+"-"+"01");if(mMonth<10)today=mYear+"-"+"0"+mMonth;elsetoday=mYear+"-"+mMonth;cur=db.getAmount(today);mAdapter.changeCursor(cur);(SimpleCursorAdapter)mAdapter).notifyDataSetChanged();privatevoidleftView()mMonth=mMonth-1;if(mMonth<1)mMo
35、nth=12;mYear=mYear-1;tvTitle.setText(mYear+"-"+mMonth+"-"+"01"+"-"+(mYear+1)+"-"+"1"+"-"+"01");elseif(mMonth>=12)mMonth=1;mYear=mYear+1;tvTitle.setText(mYear+"-"+mMonth+"-"+"01"+"-&q
36、uot;+(mYear+1)+"-"+"1"+"-"+"01");elsetvTitle.setText(mYear+"-"+mMonth+"-"+"01"+"-"+mYear+"-"+(mMonth+1)+"-"01");if(mMonth<10)today=mYear+"-"+"0"+mMonth;elsetoday=mYear+&quo
37、t;-"+mMonth;cur=db.getAmount(today);mAdapter.changeCursor(cur);(SimpleCursorAdapter)mAdapter).notifyDataSetChanged();第五章計步器的界面效果5.1用戶界面5.2設置界面圖5-1用戶主界面圖5-2設置體重界面圖5-3設置步長界面5.4日歷選擇界面色到己錄名無境,跑羌疆!2017-1-01-2017-2-01下一月上一月圖5-5日期選擇界面5.5用戶離開界面圖5-6用戶離開界面第六章系統(tǒng)測試與分析6.1測試過程1)點擊應用圖標,如圖6-1所示:施用中心2M5澗更林放開那三國
38、2蔡蛾工具圖6-1圖為計步器主界面2)計步器主界面開始記錄數(shù)據(jù),如圖 6-2所示:05:13圖6-2圖為計步器主界面4)繼續(xù)運動觀察主界面數(shù)據(jù)是否有變化,如圖 6-4所示:圖6-4圖為停止計步后仍在運動界面5)進入體重設置界面,如圖6-5所示:圖6-5圖為體重設置界面6)進入步長設置界面,如圖6-6所示:育 Q 5:21圖6-6圖為步長設置界面7)選擇日期界面,如圖6-7所示:令 Ql 5:242016年12月16日周五20151115201612162017117完成3a匕圖6-7圖為日期選擇界面章Q5:26喇悅跑2016-12-16y10.0833km囪開始:口£W存匕圖6-8圖
39、為日期選擇后的界面8)歷史界面,如圖6-9所示:號 Q 5:#圖6-8圖為歷史界面悅跑歷史記錄悅無境,跑無疆!2017-1-01-2017-2-01下一月上一月9)歷史查詢界面 如圖6-9所示:圖6-9圖為歷史查詢界面審Q5:36明悅跑歷史記錄悅無境.跑無疆!廠2016-12-01-20171012016-12-16,0720km2016-12-260J284km2016-12-300.1530km上一月下一月10)歷史刪除界面 如圖6-10所示:圖6-10圖為歷史刪除界面號 Q 5:39圖6-11圖為歷史刪除后的界面悅跑歷史記錄一悅無境,跑無疆12016-12-01-2017-1-010.0
40、720kmOJ 530km2016-12-162016-12-30上一月下一月11)退出程序界面 如圖6-12所示:圖6-12圖為退出程序界面6.2測試分析本軟件中幾個模塊的功能經(jīng)過測試,均測試通過,測試結果和最初的設計基本一致,所有的功能均能正常運行,軟件需要比較特殊的運行環(huán)境,首先手機的重力感應功能必須有,而且Android系統(tǒng)的版本過低將不能使用。至此基于安卓平臺的手機計步器的設計基本完成經(jīng)過了數(shù)月的努力,Android平臺手計步器軟件終于完成了。本軟件能實現(xiàn)用戶對計步器的基本要求。方便用戶開啟關閉計步器,對運動情況和運動量可以直觀的從主界面獲取信息,設置選項中的智能人機交互平臺也可以明
41、了的對用戶信息進行編輯,不需要復雜的操作不需要學習,一目了然。對于智能手機用戶來說,基于安卓平臺的手機計步器提供了一個快捷方便的平臺。為用戶提供隨時隨地的服務,節(jié)省用戶不必要的資金消耗與時間消耗是本軟件設計的一個宗旨,整個框架和細節(jié)的設計都是圍繞這個宗旨進行的,雖然整個軟件還不是很成熟,還有很多不足和需要改進的地方,或者還有很多信息提供不到位,例如我們可以加入音樂播放模塊,是用戶在運動的同時享受輕松快樂的環(huán)境,這些還需要日后慢慢優(yōu)化和改善,但是最初的設計都實現(xiàn)了。在現(xiàn)在的功能基礎上本軟件可以進行擴展升級。本軟件最初設計的時候就是一個可以擴展的框架,所以為將來加入新的功能提供了很大的方便。本軟件
42、雖然不是很強大,但是是我自己親手編寫的,開發(fā)一個能在時下最流行的軟件,使之順利的在平臺上運行是一件令人興奮的事情。把自己的想法一步一步地付諸實踐,最后成為一個真實的實物,被別人使用和稱贊,此時得到的成就感是尤為強烈的。參考文獻1 高煥堂.GoogleAndroid應用程序框架原理與程序設計.2 E2ECloud工作室著深入淺出GoogleAndroidM北京:人民郵電出版社,2009-08-1.3 AndroidAPI.chm4 王家林大話企業(yè)級Android應用開發(fā)實戰(zhàn)M電子工業(yè)出版社,2011,85 差沙.用Android手機開發(fā)應用.程序員.2008.6 萬瑪,寧關永,韓相軍.嵌入式數(shù)據(jù)
43、庫典型技術SQLite和Berkeley的研究.微計算機信息,2006.7 馬越.Andriod的架構與應用.北京:中國地質大學,2008.8 高昂,馮大祥等.GoogleAndroid開發(fā)入門與實踐.北京:人民郵電出版社,2009.9 張孝祥著java就業(yè)培訓教程M北京:清華大學出版社,2007.10 MichaelMcRoberts著,楊繼志,郭敬譯.Arduino從基礎到實踐M.北京:電子工業(yè)出版社,2013.附錄:1. 啟動界面importandroid.app.Activity;importandroid.annotation.SuppressLint;importandroid.c
44、ontent.Intent;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;/importandroid.support.v7.app.ActionBarActivity;/importandroid.widget.ImageView;importandroid.widget.TextView;publicclassWelcomeextendsActivity/ActionBarActivity可以使用ActivityprivateHandlermHandler=newHandler();Ima
45、geViewimageview;TextViewtextview;intalpha=150;intb=0;SuppressLint("NewApi","HandlerLeak")SuppressWarnings("deprecation")OverrideprotectedvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.welcome);imageview=(ImageView)this.f
46、indViewById(R.id.imageView1);imageview.setImageAlpha(alpha);newThread(newRunnable()publicvoidrun()while(b<2)tryif(b=0)Thread.sleep(1000);b=1;elseThread.sleep(50);updateApp();catch(InterruptedExceptione)e.printStackTrace();).start();mHandler=newHandler()OverridepublicvoidhandleMessage(Messagemsg)s
47、uper.handleMessage(msg);imageview.setAlpha(alpha);imageview.invalidate();publicvoidupdateApp()alpha-=5;if(alpha<=0)b=2;/漸變效果結束時啟動主菜單的ActivityIntentin=newIntent(this,com.zyl11123ok.deRun.View.class);startActivity(in);this.finish();mHandler.sendMessage(mHandler.obtainMessage();2. 主界面代碼importjava.ut
48、il.Calendar;importjava.util.TimeZone;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.app.DatePickerDialog;importandroid.app.DatePickerDialog.OnDateSetListener;importandroid.content.ComponentName;importandroid.content.Context;importandroid.content.DialogInterface;importandroid.
49、content.Intent;importandroid.content.ServiceConnection;importandroid.content.SharedPreferences;.Uri;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.IBinder;importandroid.os.Message;importandroid.preference.PreferenceManager;/importandroid.support.v7.app.ActionBarActivity;/importand
50、roid.util.Log;importandroid.view.LayoutInflater;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.DatePicker;importandroid.widget.EditText;importandroid.widget.ImageButton;importandroid.widget.TextView;importandroid.widget.Toast;importandroid.R.layout;importcom
51、.zyl11123ok.deRun.R;importcom.zyl.deRun.DataBase.DataBase;閃退不能運publicclassViewextendsActivity/使用ActionBarActivit行y可以使用ActivityprivatestaticfinalStringTAG="Delightful"privateButtonbtnReset,btnCancel,btnSave,btnDate,btnNext,btnAC;publicDataBasedb;privateTextViewtvDate,tvCount,tvMile,tvKaluli
52、;privateButtonimageButton;privateSharedPreferencesmSettings;privateSettingsmPedometerSettings;privateUtilsmUtils;privateDatePickerDialogdialog;privateintmStepValue;privatefloatmDistanceValue;privatebooleanmIsRunning;privatebooleanmQuitting=false;privateintmYear;privateintmMonth;privateintmDay;privat
53、eintstep_length;intacctitemid=-1;/OverrideprotectedvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);Log.i(TAG,"ACTIVITYonCreate");mStepValue=0;mUtils=Utils.getInstance();setContentView(R.layout.view_plus);btnReset=(Button)findViewById(R.id.BtnReset);btnCancel=(Butto
54、n)findViewById(R.id.btnCancel);btnSave=(Button)findViewById(R.id.BtnSave);btnDate=(Button)findViewById(R.id.BtnEdit);btnNext=(Button)findViewById(R.id.BtnNext);btnAC=(Button)findViewById(R.id.btnAC);db=newDataBase(this);db.CreatTable_amount();tvDate=(TextView)findViewById(R.id.tvDate);initTime();if(
55、mMonth<10&&mDay<10)tvDate.setText(mYear+"-"+"0"+mMonth+"-"+"0"+mDay);elseif(mMonth<10&&mDay>=10)tvDate.setText(mYear+"-"+"0"+mMonth+"-"+mDay);elseif(mMonth>=10&&mDay<10)tvDate.setText(mYear+"-"+mMonth+"-"+"0"+mDay);elsetvDate.setText(mYear+"-"+mMonth+"-"+mDay);ButtonListenerbuttonlistener=newButtonListener();btnDate.setOnClickLis
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學校餐飲送餐合同協(xié)議
- 巖棉進項合同協(xié)議
- 家庭農場出售合同協(xié)議
- 遠程培訓校本研修活動總結
- 2024西醫(yī)臨床考試通關技巧試題及答案
- 北京成考大專試題及答案
- 光電工程師證書考試規(guī)避錯誤試題及答案
- 湯姆索亞競賽試題及答案
- 2024年公共健康服務體系考試試題及答案
- 文化產業(yè)的商業(yè)模式創(chuàng)新試題及答案
- 皮膚科護士的實踐經(jīng)驗與案例分享
- 代煎中藥管理制度
- 新生兒乳糜胸護理查房課件
- 《高中信息技術課分層教學的探索與研究》課題研究開題報告結題報告
- 《河道生態(tài)修復技術指南》
- 擔保人和被擔保人之間的協(xié)議范本
- 可愛的中國全冊教案
- 醫(yī)院品管圈10大步驟詳解課件
- 田野調查方法
- 設備基礎預埋施工方案【實用文檔】doc
- 高中音樂人音版高一上冊目錄鼓樂鏗鏘-錦雞出山(省一等獎)
評論
0/150
提交評論