

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 安</b></p><p><b> 卓</b></p><p><b> 課</b></p><p><b> 程</b></p><p><b> 設</b></p><p
2、><b> 計</b></p><p><b> 目錄</b></p><p> 第1章 安卓應用程序開發(fā)背景2</p><p> §1.1開發(fā)背景2</p><p> §1.2開發(fā)環(huán)境3</p><p> 第2章 安卓應用程序
3、開發(fā)理論與方法3</p><p> 第3章 “計算器”應用程序的設計與實現(xiàn)5</p><p> §3.1 擬解決的問題及目標5</p><p> §3.2 總體設計6</p><p> §3.3 詳細設計與編碼實現(xiàn)6</p><p> 第4章 總結15<
4、;/p><p> 第1章 安卓應用程序開發(fā)背景</p><p><b> §1.1開發(fā)背景</b></p><p><b> 1.智能手機的市場</b></p><p> ?。?)功能多樣化的智能手機挑戰(zhàn)全球PC出貨量</p><p> 移動互聯(lián)網(wǎng)時代的來臨,
5、直接促進了搭載智能操作系統(tǒng)、具有強大擴展性的智能手機、平板電腦等移動終端產(chǎn)業(yè)的蓬勃發(fā)展。來自美國最大的風險投資機構KPCB的數(shù)據(jù)顯示,全球智能手機出貨量正在以遠高于臺式電腦、筆記本電腦出貨量的速度快速增長,該機構預計2011年全球智能手機出貨量將達到4.13億,超過臺式電腦與筆記本電腦出貨量的總和。</p><p> ?。?)智能手機的用戶使用數(shù)量正在高速增長。據(jù)市場調研機構Gartner信息,2011年全球智能
6、手機的總出貨量將會達到4.68億部,相比2010年實現(xiàn)了57.7%的增長,而谷歌Android操作系統(tǒng)將會在今年之內成為全球最大的智能手機操作系統(tǒng)。另外,全球市場調研機構IDC預計未來5年中國手機市場上,智能手機替代傳統(tǒng)功能手機的趨勢將日益明顯,未來5年中國智能手機市場復合增長率將達到34.1%,人們對IT設備智能化的向往是這一增長率能夠實現(xiàn)的主要因素,并且與其他國家相比,中國智能手機市場的發(fā)展空間更加廣闊。</p>&l
7、t;p> (3)操作系統(tǒng)格局預測:Android有望成為智能手機市場主導力量</p><p> 搭載Android操作系統(tǒng)的智能手機目前已經(jīng)成為市場上最炙手可熱的智能產(chǎn)品。來自美國市場研究機構Gartner的數(shù)據(jù)顯示,Android操作系統(tǒng)所占的市場份額從2008年的0.5%急劇增長到2011年的15.94%。開放的源代碼和零成本已經(jīng)讓Android在全世界范圍內受到青睞并迅速獲得了主要手機廠商和數(shù)百萬
8、軟件開發(fā)者的支持,Gartner預計,未來Android系統(tǒng)的市場份額有望超過其他操作系統(tǒng),從而成為全球第一大智能手機操作系統(tǒng)。</p><p><b> 2.安卓手機介紹</b></p><p> 安卓手機指的是用Android操作系統(tǒng)的手機。安卓(Android)是基于Linux內核的操作系統(tǒng),是Google公司在2007年11月5日公布的手機操作系統(tǒng)。<
9、;/p><p> 同樣都是手機上面用的智能系統(tǒng),安卓的系統(tǒng)是新生系統(tǒng),界面更為華麗,開源性更強,當然因為是新生系統(tǒng),所以在第三方軟件方面暫時還不太多。因此,安卓應用程序的需求還是很迫切的。</p><p><b> 3.軟件人才需求</b></p><p> 據(jù)業(yè)內統(tǒng)計,目前國內的Android研發(fā)人才缺口至少30萬。由于目前Android技
10、術較新,無論是相關書籍、培訓還是大學教育,都處于初級階段,因此Android人才短期將供不應求。從長期來看,隨著各種移動應用和手機游戲等內容需求日益增加,也將激勵大中小型手機應用開發(fā)商加大對Android應用的開發(fā)力度,因此Android人才的就業(yè)前景也非常廣泛。</p><p> 綜上所述,在這樣的背景下,安卓有很強的生命力。同時,作為一個新生的系統(tǒng),其應用程序目前并不多,安卓應用程序的需求還是很迫切的,安卓
11、研發(fā)人才的缺口還很大。這些都促進了我們學習開發(fā)安卓應用程序。</p><p><b> §1.2開發(fā)環(huán)境</b></p><p> 安卓應用程序開發(fā)環(huán)境如下:</p><p> ?、貸DK 5 or JDK 6 (JRE alone is not sufficient)</p><p> ?、贓clipse
12、 3.3 (Europa), 3.4 (Ganymede)</p><p> ?、跘ndroid SDK </p><p> ?、蹵DT 0.8.0</p><p> ⑤Eclipse安裝ADT 插件</p><p> 第2章 安卓應用程序開發(fā)理論與方法</p><p> 1、Activity的相關知識<
13、/p><p> 簡單理解Activity 代表一個用戶所能看到的屏幕,Activity 主要是處理一個應用的整體性工作。Activity是最基本的Android 應用程序組件,應用程序中,一個活動通常就是一個單獨的屏幕。每一個活動都被實現(xiàn)為一個獨立的類,并且從活動基類中繼承而來,活動類將會顯示由視圖控件組成的用戶接口,并對事件做出響應。大多數(shù)的應用是由多個屏幕顯示組成,因而要用到多個Activity。</p&
14、gt;<p> (1)Activity的相關方法及相關函數(shù):</p><p> A、void onCreate(Bundle) </p><p> 首次啟動時調用,接受參數(shù):Null or savedInstanceState(保存的以前某些狀態(tài)信息)</p><p> B、void onStart() </p><p&g
15、t; 說明了將要顯示給用戶的活動</p><p> C、void onRestart() </p><p> 將處于停止狀態(tài)的活動重新顯示給用戶</p><p> D、void onResume() </p><p> 用戶可以開始與活動進行交互時調用。如動畫播放和音樂播放。</p><p> E、voi
16、d onPause() </p><p> 活動將要進入后臺運行時調用。(此時前臺啟動了另一個活動)</p><p> F、void onStop() </p><p> 不需要某個活動了,就調用</p><p> G、void onDestroy()</p><p><b> 銷毀活動</b
17、></p><p> (2)多個Activity之間的跳轉:</p><p> 通過Intent類實現(xiàn)屏幕之間的跳轉(包括沒有參數(shù)關系和需要傳遞參數(shù)兩種情況)。</p><p> (3)兩個Activity之間進行數(shù)據(jù)交換:</p><p> startActivity() 只有Intent一個參數(shù)。</p>&l
18、t;p> public void startSubActivity(Intent intent, int requestCode) </p><p> ?。╮equestCode:用來標識某一個調用,一般定義一個常量。)</p><p> 傳過去:函數(shù)原型為: public Intent setData(ContentURI data) 然后,參數(shù)帶到新的Activity后,同
19、樣用Activity.getIntent()函數(shù)可得到當前過來的Intent對象,然后用getData()就取到參數(shù)了。 </p><p> 傳回來:函數(shù)原型為: public final void setResult(int resultCode, String data)</p><p> 2、Intent的相關知識</p><p> Intent 是描述
20、應用想要做什么。Android 使用了Intent 這個特殊類,實現(xiàn)在屏幕與屏幕之間移動。Intent 數(shù)據(jù)結構兩個最重要的部分是動作和動作對應的數(shù)據(jù)。Intent類綁定一次操作,它負責攜帶這次操作所需要的數(shù)據(jù)以及操作的類型等。</p><p><b> 3、Layout</b></p><p> 用于用戶界面設計。包含AbsoluteLayout, FrameL
21、ayout,GridView, LinearLayout, ListLayout, RadioGroup, TableLayout等等。</p><p> 在本程序中用到的有:</p><p> 線性布局LinearLayout</p><p> 垂直:android:orientation="vertical“</p><p&g
22、t; 水平:android:orientation="horizontal"</p><p> 相對布局RelativeLayout</p><p> 讓子元素指定它們相對于其他元素的位置(通過ID 來指定)或相對于父布局對象。在RelativeLayout布局里的控件包含豐富的排列屬性:</p><p> Layout above:控件
23、在指定控件的上方</p><p> Layout below:控件在指定控件的下方</p><p> Layout to left of……</p><p> 第3章 “計算器”應用程序的設計與實現(xiàn)</p><p> §3.1 擬解決的問題及目標</p><p> 本計算器程序要解決日常生活中常
24、見的基本數(shù)據(jù)計算問題,程序要實現(xiàn)的目標有如下幾個:</p><p> 要實現(xiàn)基本的加、減、乘、除四則運算。</p><p> 可以實現(xiàn)在前一步計算結果上繼續(xù)作加、減、乘、除,即連加、減、乘、除。</p><p> 有清空功能,即清除所有數(shù)據(jù),重新開始計算。</p><p> 可實現(xiàn)基本的三角函數(shù)的計算,如:正弦,余弦,正切,余切。 &
25、lt;/p><p> 可實現(xiàn)一些特殊運算,如:平方,立方,開方,求對數(shù)等。</p><p> §3.2 總體設計</p><p> 1、系統(tǒng)的軟件結構圖</p><p><b> 圖3-1</b></p><p><b> 2、功能的操作流程</b><
26、/p><p> 首先用戶根據(jù)自己的實際需要選擇計算的類型,然后進入不同的計算類型,再進行要執(zhí)行的運算,輸入數(shù)據(jù),選擇運算符號,即可得到結果。</p><p> §3.3 詳細設計與編碼實現(xiàn)</p><p><b> 1、功能選擇界面</b></p><p> 圖3-2為系統(tǒng)主界面。用戶可以根據(jù)需要點擊不同
27、按鈕進入不同功能的子界面。亦可以點擊退出按鈕退出本程序。</p><p><b> 圖3-2</b></p><p> 本界面用LinearLayout來布局,主要用到的控件是Button。頁面的跳轉是通過intent來是實現(xiàn)的。跳轉的主要代碼如下:</p><p> public void onClick(View v)</p&g
28、t;<p><b> {</b></p><p> Button btn=(Button)v;</p><p> switch (btn.getId())</p><p><b> {</b></p><p> case R.id.button1:</p>&l
29、t;p> Intent intent=new Intent();</p><p> intent.setClass(mycalActivity.this, secondactivity.class);</p><p> startActivity(intent);</p><p><b> break;</b></p>
30、<p> case R.id.button2:</p><p> Intent intent=new Intent();</p><p> intent.setClass(mycalActivity.this, thirdactivity.class);</p><p> startActivity(intent);</p>&l
31、t;p><b> break;</b></p><p> case R.id.button3:</p><p> Intent intent=new Intent();</p><p> intent.setClass(mycalActivity.this, forthactivity.class);</p><
32、;p> startActivity(intent);</p><p><b> break;</b></p><p> case R.id.button4:</p><p><b> finish();</b></p><p><b> }</b></p&
33、gt;<p> 2、基本加減乘除界面</p><p> 圖3-3為加基本減乘除界面。用戶在文本框中輸入?yún)⒓舆\算的數(shù)據(jù),并點擊要進行的運算符號,然后點擊等號之后,將在等號下方顯示結果處顯示出計算結果。點擊clear按鈕,可以將兩個文本框中的內容以及顯示的結果一起清空,用戶可以輸入新的數(shù)據(jù)計算。</p><p> 在文本框中輸入時可以用圖右側的硬鍵盤,或者是手機自帶的軟鍵盤
34、。</p><p><b> 圖3-3</b></p><p><b> 示例如下:</b></p><p> ?。?)用戶要計算1.23+2.16.在文本框1中輸入1.23,點擊“+”,再在文本框2中輸入2.16,點擊“=”,就可以顯示出計算結果3.39.如下:</p><p><b&g
35、t; 圖3-4</b></p><p> ?。?)計算1-0.32,如圖3-5</p><p><b> 圖3-5</b></p><p> 計算3.24*0.25,如圖3-6所示。</p><p><b> 圖3-6</b></p><p> 計算55
36、/4,結果為13.75.如下圖所示:</p><p><b> 圖3-7</b></p><p> 計算1/6.如下圖所示。由圖3-8可以看出,當除不盡時本計算器保留到8位小數(shù),并且最后一位采用了四舍五入的方法,比較科學、準確。</p><p><b> 圖3-8</b></p><p>
37、點擊clear之后全部清空:</p><p><b> 圖3-9</b></p><p> 具體的實現(xiàn):主要的思路是,用戶先輸?shù)谝粋€數(shù),然后點擊運算符號,在程序中監(jiān)聽按鈕的點擊,如果點擊了+、--、*、/中某一按鈕,這時,就取editText1中的值,通過myeditText1= editText1.getText().toString()實現(xiàn),為了參與運算,需要
38、把字符串類型轉換為浮點型,并將其值賦給變量a,代碼為a=Float.parseFloat(myeditText1);用flag的不同值記錄用戶點擊的不同的運算按鈕。當用戶點擊“=”時,就將editText2中的內容取出,也同樣轉化為數(shù)值,并用b記錄,然后判斷flag的值即可知道對應應采取哪種計算,進而算出最終結果,并用textView1顯示出計算結果。“清空”的實現(xiàn)是使對應控件的內容取空即可。核心代碼如下:</p><
39、;p> private OnClickListener listener=new OnClickListener()</p><p><b> {</b></p><p> String myeditText1;</p><p> String myeditText2;</p><p> float a=
40、0;</p><p> int flag=0;</p><p> float b=0;</p><p> float result;</p><p> public void onClick(View v)</p><p><b> {</b></p><p>
41、; Button btn=(Button)v;</p><p> switch (btn.getId())</p><p><b> {</b></p><p> case R.id.button1:</p><p> myeditText1= editText1.getText().toString();&l
42、t;/p><p> a=Float.parseFloat(myeditText1); flag=1;</p><p><b> break;</b></p><p> case R.id.button2:</p><p> myeditText1= editText1.getTe
43、xt().toString();</p><p> a=Float.parseFloat(myeditText1);</p><p><b> flag=2;</b></p><p><b> break;</b></p><p> case R.id.button3:</p&
44、gt;<p> myeditText1= editText1.getText().toString(); a=Float.parseFloat(myeditText1);</p><p><b> flag=3;</b></p><p><b> break;</b></p><p
45、> case R.id.button4:</p><p> myeditText1= editText1.getText().toString(); a=Float.parseFloat(myeditText1); </p><p><b> flag=4;</b></p><p><b> bre
46、ak;</b></p><p> case R.id.button5:</p><p> myeditText2= editText2.getText().toString(); b=Float.parseFloat(myeditText2); </p><p> if(flag==1)</p><p>
47、; result = a+b; </p><p> else if(flag==2)</p><p> result = a-b; </p><p> else if(flag==3) </p><p> result = a*b;</p><p><b> else <
48、;/b></p><p> result=a/b; </p><p> String s = "顯示結果: ";</p><p> s += result;</p><p> textView1.setText(s);</p><p><b>
49、 break;</b></p><p> case R.id.button6:</p><p> editText1.setText("");</p><p> editText2.setText("");</p><p> textView1.setText("顯示結果
50、:");</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> };</b></p><p> 3、三角函數(shù)運算界面
51、</p><p> 圖3-10為三角函數(shù)運算界面。用戶在文本框中輸入?yún)⑴c計算的數(shù)據(jù),然后選擇點擊要進行的運算類型,這時在顯示結果處就會顯示計算結果。例如,要計算sin30度,先在文本框中輸入30,然后點擊sin按鈕,這時就會顯示結果為0.5.同理,可進行其他計算。</p><p><b> 圖3-10</b></p><p><b&g
52、t; 4、其他運算界面</b></p><p> 圖3-11為其他運算界面,目前可實現(xiàn)平方、立方、開方、求以10為底的對數(shù)四種運算,由于時間有限,這個界面目前功能并不完善,暫時實現(xiàn)四種運算,不過,基于本計算器程序的設計理念,本界面主要實現(xiàn)一些其他運算,包括一些特殊運算。在今后,這個界面可以修改和擴充,以至擁有更加完善豐富的計算功能。在現(xiàn)有的界面上的操作流程如下:用戶在文本框中輸入要進行運算的數(shù)據(jù),
53、然后選擇點擊運算按鈕,即可顯示運算結果。如輸入0.5,點擊平方,即顯示結果0.25,操作方便。</p><p><b> 圖3-11</b></p><p><b> 第4章 總結</b></p><p> 在本次安卓應用程序開發(fā)之中,我收獲很多,現(xiàn)總結如下:</p><p> 安卓設計開
54、發(fā)過程初期,我打算設計制作一個計算器。但是,剛開始并不能預測難度,不知道在短期內能否很好的完成,于是我的想法是,先實現(xiàn)基本的加、減、乘、除四則運算,然后在此基礎上進一步完善豐富其運算功能。首先遇到的問題便是要不要做一個數(shù)字鍵盤。剛開始也試著做了一個鍵盤,是用button做的,需要很好的布局,但是每當擴充一種功能時,為了使界面整體美觀,甚至都要重新設計,很麻煩。后來候突然想到手機有硬鍵盤,也有自帶的軟鍵盤,何不運算的時候直接調出已有的軟鍵
55、盤?這樣,根本沒有什么必要自己做鍵盤了,而只需做出運算的按鈕即可了。由于當時的目標只是實現(xiàn)加減乘除,因此設計的界面是用兩個文本框輸入兩個數(shù)據(jù),然后有+、-、*、/四個按鈕供選擇,又加一個“=”按鈕用于觸發(fā)顯示結果。界面很簡單,使用很方便。然后就是才用合適的算法來實現(xiàn)功能。經(jīng)過思考和多次修改,最后確定了一種比較簡明的算法實現(xiàn)。</p><p> 基本加減乘除功能已經(jīng)實現(xiàn),但是計算器的功能過于簡單了,接下來便是擴充
56、功能。我首先想到的是需要能實現(xiàn)三角函數(shù)運算,常見的平方、開方等運算。但是我遇到了困難。由于剛開始設計的加減乘除運算都是二元運算,因此界面設計的是在兩個文本框中輸入兩個數(shù),但是三角函數(shù)計算,平方開方計算都是一元運算,參加運算的數(shù)據(jù)都只有一個,因而,在原界面上直接擴充并不合適,兩個文本框成了擴充的限制。后來經(jīng)過思考,決定將這些擴充的功能做到別的界面上,與已有的界面相獨立,重新設計,這樣只需將運算分類,再做一個功能選擇的界面,點擊不同的運算類
57、別進入不同的運算界面即可,這樣這個問題便得到了很好的解決。但是這次設計卻給了我很大的教訓,開發(fā)應用軟件的初期設計很重要,不僅要實現(xiàn)現(xiàn)在的目標,還要考慮以后能否進行功能擴充,設計要便于以后的功能擴充,否則,到后來需要擴充時遇到困難,甚至要推翻已有的設計,花費很大的代價。另外,由于時間緊迫,三角函數(shù)界面和其他運算界面的功能并不十分完善,只是一些基本的運算,初步體現(xiàn)出了設計的思想,今后還可以進行進一步的擴充,以完善其功能。</p>
58、<p> 在本次開發(fā)過程中,我對開發(fā)環(huán)境進一步的熟悉,基本上可以熟練運用這個環(huán)境,也基本掌握了安卓的開發(fā)方法及基本流程。在本次開發(fā)過程中,主要用到的知識有Activity的使用,在程序中用到了多個窗口,因而需創(chuàng)建多個Activity。還用到了Intent,主要是用于多個Activity之間的跳轉,對Intent的作用和用法有了更進一步的熟悉。在本次程序設計中,我也對用戶界面設計有了更進一步的掌握,熟練運用Layout,本
59、次用到的主要是LinearLayout和RelativeLayout。</p><p> 開發(fā)期間,我學會了有目的的去學習一些將要用到的東西,仔細地考慮工作流程的規(guī)律和步驟,充分利用手中的開發(fā)工具,利用其所具備的功能,盡量使自己的開發(fā)在代碼上實現(xiàn)少而精確、讓用戶能夠盡量簡單地進行操作。但是在檢測過程中,還是出現(xiàn)了很多的不足之處,這些都是要在今后的工作中需要努力改進和完善的。</p><p&g
60、t; 在這次程序開發(fā)設計中,我也難免會遇到不少困難,這主要是由于我對所用的開發(fā)環(huán)境并不是很熟悉,開發(fā)軟件的經(jīng)驗不足。安卓開發(fā)用的語言是java,但是我對java的學習并不多,這次開發(fā)對我來說可以算是一個全新的嘗試,整個開發(fā)過程并不是很順利,卻使我從中充分體會到學習的快樂,開發(fā)的程序也在一步步得到完善。 這次程序開發(fā)由于個人水平及時間有限等原因,只能完成一些基本的功能,好多設想并未完全實現(xiàn),這不能不說是個遺憾,后期仍需努力。</p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安卓開發(fā)課程設計報告
- 安卓貪吃蛇課程設計報告
- 安卓貪吃蛇課程設計報告
- 安卓課程設計(臺球游戲)
- 安卓課程設計報告--個人音樂播放器
- 安卓天氣預報課程設計
- 安卓天氣預報課程設計
- 課程設計--安卓手機游戲---貪吃蛇
- 課程設計---安卓計算器的開發(fā)與設計
- 安卓課程設計論文-“康園圈”校園購物平臺
- 安卓課程設計——新聞客戶端(基于網(wǎng)頁抓取)
- 《安卓appsui設計》課程標準
- 安防監(jiān)控系統(tǒng)課程設計實習報告
- 安卓開題報告.doc
- 基于安卓android手機平臺的記事本設計課程設計畢業(yè)論文
- 安卓軟件開發(fā)--畢業(yè)設計開題報告安卓軟件文獻翻譯(精)
- 安防系統(tǒng)課程設計
- 安防監(jiān)控系統(tǒng)課程設計
- 安卓版連連看畢業(yè)設計報告
- java課程設計----課程設計報告
評論
0/150
提交評論