計算機專業(yè)論文基于googleandroid平臺的軟件設(shè)計_第1頁
已閱讀1頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  基于Google android 平臺的軟件設(shè)計</p><p><b>  目錄</b></p><p>  1認識Google Android4</p><p>  1.1什么是Google Android4</p><p>  1.2Google Android 的發(fā)展歷程4<

2、;/p><p>  1.3Google Android 的優(yōu)勢4</p><p>  2開發(fā)環(huán)境的搭建5</p><p>  2.1安裝JDK5</p><p>  2.2安裝Eclipse5</p><p>  2.3加載ADT6</p><p>  2.4添加SDK6&l

3、t;/p><p>  2.5創(chuàng)建模擬器7</p><p>  3Android 系統(tǒng)構(gòu)架8</p><p>  3.1Android平臺的核心應(yīng)用程序9</p><p>  3.2應(yīng)用程序框架9</p><p><b>  3.3系統(tǒng)庫9</b></p><p&

4、gt;  3.3.1Android運行時10</p><p>  3.3.2Linux內(nèi)核10</p><p>  4創(chuàng)建新工程以及對Android相關(guān)組件的了解10</p><p>  4.1.工程結(jié)構(gòu)介紹10</p><p>  4.2對相關(guān)組件的了解12</p><p>  4.2.1And

5、roidManifest文件12</p><p>  4.2.2Res文件夾12</p><p>  4.2.3Assets文件夾12</p><p>  4.2.4Src和gen文件夾12</p><p>  5界面以及相關(guān)組件的學(xué)習(xí)12</p><p>  5.1文本框及按鈕的顯示12<

6、/p><p>  5.1.1核心代碼12</p><p>  5.1.2運行結(jié)果13</p><p>  5.2Andriod ListView 常用方法13</p><p>  5.2.1核心代碼13</p><p>  5.2.2運行結(jié)果14</p><p>  5.3在文

7、本框中輸入數(shù)據(jù),點擊按鈕做出相應(yīng)計算以及顯示提示信息15</p><p>  5.3.1核心代碼15</p><p>  5.3.2運行結(jié)果16</p><p>  5.4實現(xiàn)多個activity的用戶界面設(shè)計16</p><p>  5.4.1核心代碼16</p><p>  5.4.2構(gòu)建UI層

8、17</p><p>  5.4.3運行結(jié)果17</p><p>  6游戲開發(fā)成果展示及相關(guān)技術(shù)說明18</p><p>  6.1進入游戲界面18</p><p>  6.2關(guān)卡的選擇:19</p><p>  6.2.1功能描述:19</p><p>  6.2.2

9、技術(shù)實現(xiàn):19</p><p>  6.2.3成果展示:19</p><p>  6.3第一關(guān)20</p><p>  6.3.1功能描述:20</p><p>  6.3.2技術(shù)實現(xiàn)(鍵盤綁定)20</p><p>  6.3.3成果展示:20</p><p>  6.4

10、第二關(guān)22</p><p>  6.4.1功能描述:22</p><p>  6.4.2技術(shù)實現(xiàn)22</p><p>  6.4.3成果展示22</p><p>  6.5添加音效24</p><p>  6.5.1技術(shù)實現(xiàn)24</p><p>  6.6核心功能技術(shù)實

11、現(xiàn)總結(jié)24</p><p>  6.6.1不同activity之間的切換24</p><p>  6.6.2添加背景音樂24</p><p>  6.6.3游戲?qū)崿F(xiàn)用到的其他函數(shù)25</p><p><b>  7體會感受26</b></p><p>  8附錄:階段總結(jié)29

12、</p><p>  【摘要】Android是Google公司于2007年11月5日發(fā)布的一個基于Linux 核心的開源手機平臺作業(yè)系統(tǒng)。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序,這些是移動電話工作所需的全部軟件,是首個為移動終端打造的真正開發(fā)和完整的移動軟件。同時,Android在中國的前景十分廣闊,行業(yè)需求量也很大。此外,Android系統(tǒng)的高級編程語言是Java,對于我們并不陌生?;诖?,我們選擇了對Androi

13、d進行研究開發(fā),包括以下幾方面:Android開發(fā)平臺的搭建、其系統(tǒng)構(gòu)架、工程組件以及界面設(shè)計的相關(guān)例子。為了更好的介紹基于該平臺的軟件設(shè)計的原理和開發(fā)過程,我們設(shè)計了一個關(guān)于紙牌游戲的軟件。</p><p>  【關(guān)鍵詞】Android、平臺搭建、系統(tǒng)構(gòu)架、紙牌游戲</p><p>  認識Google Android</p><p>  什么是Google An

14、droid</p><p>  Android是一個基于Linux 核心的開源手機平臺作業(yè)系統(tǒng)。與Windows Mobile、Symbian 等手機作業(yè)系統(tǒng)處在同一級別。該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件等組成,號稱是首個為移動終端打造的真正開放的移動開發(fā)平臺。從不同角度來說,Android 代表著一個嶄新的開放原始碼作業(yè)系統(tǒng)平臺、一個友善的免費應(yīng)用程式開發(fā)環(huán)境、一個與世界各地的程式開發(fā)者,站在相同起

15、跑點上的公平競爭機會。</p><p>  Google Android 的發(fā)展歷程</p><p>  Google于2007年11月5日發(fā)布了基于Linux平臺的開源手機操作系統(tǒng)——Android;2008年9月22日,美國運營商T-Mobile USA 在紐約正式發(fā)布第一款使用Android 操作系統(tǒng)的Google 手機——T-Mobile G1;Google 與開放手機聯(lián)盟合作開發(fā)

16、了Android 移動開發(fā)平臺;Google Android 平臺演變出的OMS 是一種更適合中國手機用戶群的智能手機操作系統(tǒng),相信它的市場前景會相當(dāng)樂觀。</p><p>  Google Android 的優(yōu)勢</p><p><b>  開放性</b></p><p>  在優(yōu)勢方面,Android平臺首先就是其開發(fā)性,開發(fā)的平臺允許任何

17、移動終端廠商加入到Android聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個嶄新的平臺也將很快走向成熟。</p><p>  開放性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,隨大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。</p><p><

18、b>  掙脫運營商的束縛</b></p><p>  在過去很長的一段時間,特別是在歐美地區(qū),手機應(yīng)用往往受到運營商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運營商的控制。自從iPhone上市,用戶可以更加方便地連接網(wǎng)絡(luò),運營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網(wǎng)絡(luò)的逐步過渡和提升,手機隨意接入網(wǎng)絡(luò)已不是運營商口中的笑談,互聯(lián)網(wǎng)巨頭Google推動的Android終端天生就有

19、網(wǎng)絡(luò)特色,將讓用戶離互聯(lián)網(wǎng)更近。</p><p><b>  豐富的硬件選擇</b></p><p>  這一點還是與Android平臺的開放性相關(guān),由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容。</p><p>  不受任何限制的開發(fā)商</p>

20、;<p>  Android平臺提供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境,不會受到各種條條框框的阻擾,可想而知,會有多少新穎別致的軟件會誕生。</p><p>  無縫結(jié)合的Google應(yīng)用</p><p>  如今叱咤互聯(lián)網(wǎng)的Google已經(jīng)走過10年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Andro

21、id平臺手機將無縫結(jié)合這些優(yōu)秀的Google服務(wù)。</p><p><b>  開發(fā)環(huán)境的搭建</b></p><p>  我們從校園網(wǎng)技術(shù)支持平臺ftp://jszc.cnu.edu.cn/計算機及軟件知識/Android 入門與實戰(zhàn)中獲得到了搭建Android開發(fā)環(huán)境所需要的軟件(Java 6 update 16、eclipse java、ADT 0.9.3、An

22、droid SDK),完成了環(huán)境的搭建工作。</p><p><b>  安裝JDK</b></p><p>  JDK 是整個Java的核心,包括了Java運行環(huán)境、Java工具和Java基礎(chǔ)類庫。JDK是學(xué)好Java的第一步。有可能會有人用到JRE,這里使用的JDK是除了包括JRE的全部內(nèi)容外,還包含編譯、調(diào)試、文檔生成等工具。</p><p&

23、gt;<b>  圖2-1</b></p><p>  JDK 的安裝與普通軟件的安裝方式相同,這里不再贅述。</p><p><b>  安裝Eclipse</b></p><p>  Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)

24、境。Eclipse 是一個綠色軟件,解壓后可直接使用。</p><p>  雙擊圖標(biāo),進入Eclipse。但要注意工作空間存儲位置的選擇。</p><p><b>  圖2-2</b></p><p><b>  加載ADT</b></p><p>  ADT是Android在Eclipse上的開發(fā)

25、工具。</p><p><b>  圖2-3</b></p><p>  選擇Help→Install New Software ,在彈出的對話框上選擇ADD ,再在彈出的對話框中選擇Archive ,瀏覽選擇ADT-0.9.3.zip ,在返回到的Install 對話框中勾選Developer Tools 點擊next至finish。這時彈出“是否重啟Eclipse

26、 的對話框”,選擇YES。</p><p><b>  添加SDK</b></p><p>  SDK(Software Development Kit, 即軟件開發(fā)工具包 )一般是一些被軟件工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。</p><p>  先將SDK包解壓,在重啟后的Eclipse 中

27、選擇重啟后選擇Window →preferences→Android ,這時會彈出警告。</p><p>  這是因為我們還沒有設(shè)置SDK的原因,點擊OK。選擇Browse 指定到SDK的所在路徑,點擊Apply。這里需要等待SDK 列表的出現(xiàn)才可點擊OK,否則會報錯。</p><p><b>  創(chuàng)建模擬器</b></p><p>  在Ec

28、lipse 里選擇Window→Android SDK and AVD Manager。</p><p><b>  圖2-4</b></p><p><b>  點擊New 。</b></p><p><b>  圖2-5</b></p><p>  輸入相關(guān)參數(shù),點擊Cre

29、ate AVD 來完成模擬器的創(chuàng)建?;氐缴弦粋€界面之后選中創(chuàng)建的模擬器,點擊Start 來運行模擬器。此時會出現(xiàn)如下模擬界面。</p><p><b>  圖2-6</b></p><p>  模擬器的啟動時間較長,啟動完全之后模擬界面如下圖:</p><p><b>  圖2-7</b></p><p

30、>  Android 系統(tǒng)構(gòu)架</p><p>  Android作為移動設(shè)備的開發(fā)平臺,其軟件層次結(jié)構(gòu)包括了一個操作系統(tǒng),中間件和應(yīng)用程序。Android平臺由應(yīng)用程序、應(yīng)用程序框架、Android運行時、庫以及Linux內(nèi)核共5部分組成,如下圖所示:</p><p><b>  圖3-1</b></p><p>  Android平臺

31、的核心應(yīng)用程序</p><p>  Android的發(fā)布時會協(xié)同一些應(yīng)用程序發(fā)布,諸如Home、聯(lián)系人、電話、瀏覽器等等,這些應(yīng)用程序都是以java程序語言編寫,也可以用自己編寫的程序來替代。</p><p><b>  應(yīng)用程序框架</b></p><p><b>  圖3-2</b></p><p&

32、gt;  該應(yīng)用程序架構(gòu)是為簡化元件重用而設(shè)計,應(yīng)用程序可以發(fā)布它的功能塊并可以被其他任何</p><p>  應(yīng)用程序所使用,使用者用同樣的機制來置換元件。</p><p><b>  系統(tǒng)庫</b></p><p>  Android 包含一組系統(tǒng)元件使用的C/C++函數(shù)庫,使用者透過應(yīng)用程序框架使用這些功能。部分函數(shù)庫如下:</p&

33、gt;<p><b>  圖3-3</b></p><p>  Android運行時</p><p>  Android運行時由核心庫和Dalvik虛擬機兩部分組成。每一個Android應(yīng)用程序執(zhí)行獨立的Dalvik虛擬機。</p><p><b>  Linux內(nèi)核</b></p><p

34、><b>  圖3-4</b></p><p>  創(chuàng)建新工程以及對Android相關(guān)組件的了解</p><p><b>  .工程結(jié)構(gòu)介紹</b></p><p>  為了更清楚各個部分的命名,做了如下試驗,工程文件的配置如下:</p><p>  Project name 設(shè)置為proje

35、ct name</p><p>  Application name 設(shè)置為applicationname</p><p>  Package name 設(shè)置為 packagename.cn</p><p>  Create Activity 設(shè)置為createactivity</p><p>  這樣設(shè)置的目的在于跟蹤各個配置的去向。<

36、;/p><p><b>  圖4-1</b></p><p>  由上圖可見Package name分屬于src和gen文件之下,分別包含createactivity.java文件和R.java文件。R.Java文件下文會對其內(nèi)容作出講解,而createactivity.java文件是用戶自己創(chuàng)建的文件,它是Activity的Activity子類,用戶可以在其中添加或修改

37、代碼。另外我們創(chuàng)建的applicationname文件可以在模擬器視圖中找到。如下圖所示:</p><p><b>  圖4-2</b></p><p>  同樣用戶所創(chuàng)建的新的activity子類名稱也會出現(xiàn)在新的應(yīng)用程序之中。</p><p><b>  圖4-3</b></p><p><

38、;b>  對相關(guān)組件的了解</b></p><p>  AndroidManifest文件</p><p>  AndroidManifest.xml是每個Android程序中所必需的,它位于Android工程的根目錄中,描述了package中的全局?jǐn)?shù)據(jù),包括package中的組件(Activities、Services等)以及他們各自的實現(xiàn)類,各種能被處理的數(shù)據(jù)和啟動位

39、置等。Manifest文件的主要功能是聲明應(yīng)用程序的組件。</p><p>  例如:一個Activity必須要有一個<Activity>標(biāo)記對應(yīng),無論它是供外部使用還是只是用于自己的包中。如果一個Activity沒有標(biāo)記對應(yīng),它將不能運行。</p><p>  <activity android:name=".createactivity"</

40、p><p>  android:label="@string/app_name"></p><p>  上述兩個語句就是Activity聲明。Name屬性指定了實現(xiàn)這個Activity的Activity子類。Label屬性值指向此Activity要展示給用戶的標(biāo)簽資源。</p><p>  注意事項:幾乎所有的AndroidManifest.x

41、ml文件都會在其第一個元素中包含一個命名空間的聲明xmlns:android=http://schemas.android.com/apk/res/android。該聲明使標(biāo)準(zhǔn)Android屬性在文件中可用,這些屬性為文件中的xml元素提供了大部分?jǐn)?shù)據(jù)。</p><p><b>  Res文件夾</b></p><p>  Res文件夾包含的是整個應(yīng)用可以使用的資源,

42、它包含3個子文件夾,分別為drawable、layout和values。</p><p>  Drawable文件夾包括本應(yīng)用所需的圖片文件和所需圖片文件的引用。</p><p>  Layout文件夾下目前僅僅有一個xml文件(main.xml),再編寫應(yīng)用界面的布局時引用此文件的內(nèi)容。根據(jù)應(yīng)用程序的需要還可以在layout中加入各種view。</p><p> 

43、 Values文件夾下存儲了一個xml文件(srings.xml),這個文件的作用是存儲本工程使用的string類型全局變量。</p><p><b>  Assets文件夾</b></p><p>  用來存放音頻、視頻等多媒體資源文件。我們希望能在以后對它有更多的了解。</p><p>  Src和gen文件夾</p><

44、;p><b>  圖4-4</b></p><p>  這兩個文件夾中包含了工程的所有java代碼資源,至少要包含2個文件,一個是activity的java 文件,另一個是R.java文件。R.java是Android-Eclipse自動生成的。這個文件包含了drawable、layout、values文件夾中的資源信息,以資源id的形式具體展現(xiàn)。我們不能對它進行修改。</p&g

45、t;<p>  界面以及相關(guān)組件的學(xué)習(xí)</p><p><b>  文本框及按鈕的顯示</b></p><p><b>  核心代碼</b></p><p>  <EditText 設(shè)置文本區(qū)</p><p>  android:layout_width="fill_

46、parent" 設(shè)置寬度和高度 android:layout_height="wrap_content" /></p><p><b>  <Button</b></p><p>  android:layout_width="wrap_content"</p><p>  an

47、droid:layout_height="wrap_content"</p><p>  android:text="確定" />為按鈕設(shè)置名稱,屏幕上的確定按鈕</p><p><b>  <Button</b></p><p>  android:layout_width="wr

48、ap_content"</p><p>  android:layout_height="wrap_content"</p><p>  android:text="取消" />為按鈕設(shè)置名稱,屏幕上的取消按鈕</p><p>  </LinearLayout></p><p&g

49、t;  <EditText </p><p>  android:text="請輸入姓名學(xué)號,以#鍵結(jié)束"設(shè)置EditText現(xiàn)實的內(nèi)容</p><p>  android:id="@+id/EditText01"</p><p>  android:layout_width="fill_parent"

50、; </p><p>  android:layout_height="wrap_content"></EditText></p><p>  </LinearLayout></p><p><b>  運行結(jié)果</b></p><p><b>  圖5-1&l

51、t;/b></p><p>  Andriod ListView 常用方法</p><p><b>  核心代碼</b></p><p><b>  Xml代碼</b></p><p>  <ListView android:layout_width="wrap_content

52、" </p><p>  android:layout_height="wrap_content" </p><p>  android:id="@+id/ListView01" /> </p><p>  定義ListView每個條目的Layout,用RelativeLayout實現(xiàn)</p&

53、gt;<p>  在Activity里面調(diào)用和加入Listener,具體見注釋:</p><p><b>  Java部分代碼</b></p><p>  list.setAdapter(listItemAdapter); //添加并且顯示</p><p>  list.setOnItemClickListener(new On

54、ItemClickListener() { </p><p>  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, </p><p>  long arg3) { </p><p>  setTitle("點擊第"+arg2+"個項目&q

55、uot;);} });</p><p><b>  //添加點擊 </b></p><p>  //添加長按點擊 </p><p>  list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { public void onCreateContextMen

56、u(ContextMenu menu, View v,ContextMenuInfo menuInfo) { </p><p>  menu.setHeaderTitle("長按菜單-ContextMenu"); </p><p>  menu.add(0, 0, 0, "彈出長按菜單0"); </p><p> 

57、 menu.add(0, 1, 0, "彈出長按菜單1"); }}); </p><p><b>  運行結(jié)果</b></p><p><b>  圖5-2</b></p><p><b>  圖5-3</b></p><p>  在文本框中輸入數(shù)據(jù),點擊

58、按鈕做出相應(yīng)計算以及顯示提示信息</p><p><b>  核心代碼</b></p><p>  public class Bmi extends Activity {</p><p>  public void onCreate(Bundle savedInstanceState) {</p><p>  super

59、.onCreate(savedInstanceState);</p><p>  setContentView(R.layout.main); //按鈕監(jiān)聽者</p><p>  Button = (Button)findViewById(R.id.submit);</p><p>  button.setOnClickListener(calcBMI); }<

60、;/p><p>  //強制將取得的資源型別設(shè)成"button"型別</p><p>  private OnClickListener calcBMI = new OnClickListener()</p><p>  {public void onClick(View v)</p><p>  { DecimalForma

61、t nf = new DecimalFormat("0.00");</p><p>  EditText fieldheight = (EditText)findViewById(R.id.height);</p><p>  EditText fieldweight = (EditText)findViewById(R.id.weight);</p>&

62、lt;p>  //透過findViewById 方法,從資源檔中取得對應(yīng)的文字欄位元件</p><p>  double BMI = weight / (height * height);//計算BMI值</p><p>  TextView result = (TextView)findViewById(R.id.result);</p><p>  //將

63、結(jié)果顯示到屏幕上</p><p>  result.setText("Your BMI is "+nf.format(BMI));</p><p>  TextView fieldsuggest = (TextView)findViewById(R.id.suggest);</p><p><b>  //給出建議</b>&

64、lt;/p><p>  <EditText android:id="@+id/height"</p><p>  android:layout_width="fill_parent"</p><p>  android:layout_height="wrap_content"</p><

65、;p>  android:numeric="integer" 僅允許輸入整數(shù)數(shù)字</p><p>  android:text="" /> 指定EditText 界面元件預(yù)設(shè)顯示的文字(數(shù)字)。</p><p>  Strings.xml源程序</p><p>  <string

66、name="app_name">BMI</string></p><p>  <string name="height">身高(cm)</string></p><p>  <string name="weight">體重(kg)</string></p>

67、;<p>  <string name="bmi_btn">計算BMI 值</string></p><p>  <string name="bmi_result">你的BMI 值是</string></p><p>  </resources></p><

68、p>  在values下創(chuàng)建advice文件,氣源程序為 </p><p>  <string name="advice_light">你該多吃點</string></p><p>  <string name="advice_average">體型很棒喔</string></p>

69、<p>  <string name="advice_heavy">你該節(jié)食了</string></p><p><b>  運行結(jié)果</b></p><p><b>  圖5-4</b></p><p>  實現(xiàn)多個activity的用戶界面設(shè)計</p>

70、<p><b>  核心代碼</b></p><p>  通過Intent這個類能夠使我們從本頁面跳轉(zhuǎn)到ActivityRelativeLayout這個類里面</p><p>  Intent intent1 =new Intent(ActivityMain.this,ActivityRelativeLayout.class); </p>&

71、lt;p>  startActivity(intent1); </p><p>  public void onCreate(Bundle savedInstanceState) { </p><p>  super.onCreate(savedInstanceState); </p><p>  setContentView(R.layout.main);

72、</p><p>  button0 = (Button) findViewById(R.id.button0); </p><p>  button0.setOnClickListener(listener0); } </p><p>  //新建一個跳轉(zhuǎn)到的activity </p><p>  public class Activi

73、tyRelativeLayout extends Activity { </p><p>  public void onCreate(Bundle savedInstanceState) { </p><p>  super.onCreate(savedInstanceState); </p><p>  //通過這個方法顯示:relative_layout.x

74、ml配置的界面 </p><p>  setContentView(R.layout.relative_layout); } } </p><p><b>  構(gòu)建UI層</b></p><p>  main.xml中配置</p><p>  <Button android:id="@+id/button

75、0" android:layout_width="wrap_content" </p><p>  android:layout_height="wrap_content" android:text="我來了" /> </p><p>  效果是:一個按鈕,按鈕上面文字是:“我來了”</p><

76、p>  配置需要轉(zhuǎn)到的頁面的xml配置文件</p><p>  <TextView android:id="@+id/label" android:layout_width="fill_parent" </p><p>  android:layout_height="wrap_content" android:tex

77、t="請輸入用戶名:" /> </p><p>  將兩個界面的Actity的java類都添加到android系統(tǒng)中</p><p>  配置一下默認的一個文件:AndroidManifest.xml</p><p>  <activity android:name="ActivityMain"</p>

78、<p>  android:label="@string/app_name"></p><p>  <intent-filter></p><p>  <action android:name="android.intent.action.MAIN" /></p><p>  <

79、;category android:name="android.intent.category.LAUNCHER" /></p><p>  </intent-filter></p><p>  </activity></p><p>  <activity android:name="Activit

80、yRelativeLayout"></activity></p><p><b>  運行結(jié)果</b></p><p><b>  圖5-5</b></p><p><b>  圖5-6</b></p><p>  游戲開發(fā)成果展示及相關(guān)技術(shù)說明&l

81、t;/p><p><b>  進入游戲界面</b></p><p><b>  圖6-1</b></p><p><b>  關(guān)卡的選擇:</b></p><p><b>  功能描述:</b></p><p>  關(guān)卡選擇為進入系統(tǒng)的

82、主界面,在這個界面中用戶可以進行關(guān)卡選擇,系統(tǒng)共分為兩關(guān)。</p><p><b>  技術(shù)實現(xiàn):</b></p><p>  在這個模塊中界面上的兩個按鈕和另外的兩個java文件進行連接。</p><p><b>  成果展示:</b></p><p><b>  圖6-2</b&

83、gt;</p><p><b>  圖6-3</b></p><p><b>  第一關(guān)</b></p><p><b>  功能描述:</b></p><p>  猜猜哪張是紅桃A,每次游戲有三張紙牌,隨機排列,用戶點擊紙牌進行翻牌,顯示答案,對于用戶選擇的答案進行高亮顯示,

84、系統(tǒng)會提示用戶選擇正確或錯誤,當(dāng)用戶選擇正確是,提示笑臉,錯誤提示哭臉。</p><p>  技術(shù)實現(xiàn)(鍵盤綁定)</p><p>  將牌面的圖片用ImageButton.setImageResource()方法來實現(xiàn),減少了代碼的復(fù)雜性,增加了可讀性。</p><p><b>  成果展示:</b></p><p>

85、<b>  圖6-4</b></p><p><b>  圖6-5</b></p><p><b>  圖6-6</b></p><p><b>  第二關(guān)</b></p><p><b>  功能描述:</b></p>

86、<p>  系統(tǒng)從牌庫中隨機抽取六張撲克牌,用戶點擊紙牌猜牌面大小。對于答案用高亮現(xiàn)實,系統(tǒng)提示用戶答案是否正確。首先在界面設(shè)計時添加了一個靜態(tài)文本視圖,6個圖片視圖,1個按鈕。</p><p><b>  技術(shù)實現(xiàn)</b></p><p>  對應(yīng)于類中就有6個圖片視圖的私有成員和一個按鈕的私有成員,另外還有一個int類型的圖片管理集的私有成員和一個用于

87、判斷的int 型變量a等。</p><p>  然后通過onCreate函數(shù)將圖片視圖和按鈕與界面變量進行結(jié)合。其中調(diào)用了一個Randon()函數(shù)將紙牌順序進行隨機排列。之后設(shè)置了一個界面監(jiān)聽函數(shù),并通過一個switch對用戶選擇的所有可能情況進行設(shè)置。</p><p><b>  成果展示</b></p><p><b>  圖6-

88、7</b></p><p><b>  圖6-8</b></p><p><b>  圖6-9</b></p><p><b>  添加音效</b></p><p><b>  技術(shù)實現(xiàn)</b></p><p>  先添

89、加一個基于service的類,在該類內(nèi)添加音效文件和開始、結(jié)束的條件預(yù)定。然后注意在AndroidManifest.xml文件中添加新建項的相關(guān)內(nèi)容。這些工作都完成之后就可以在需要音效的地方“開啟服務(wù)”。語言如下:</p><p>  private Intent intent = new Intent("com.angel.Android.MUSIC");</p><p&

90、gt;  startService(intent);</p><p>  核心功能技術(shù)實現(xiàn)總結(jié)</p><p>  不同activity之間的切換</p><p>  Intent intent = new Intent(); </p><p>  intent.setClass(CardGame.this, game_1.class); &

91、lt;/p><p>  startActivity(intent); //調(diào)用一個新的Activity</p><p>  CardGame.this.finish();//關(guān)閉原本的Activity</p><p><b>  添加背景音樂</b></p><p>  定義一個基于服務(wù)的類,用于管理音樂文件。</p&

92、gt;<p>  // R.drawable.music是資源文件,MP3格式的</p><p>  mediaPlayer = MediaPlayer.create(this, R.drawable.music);</p><p>  mediaPlayer.setLooping(false);//是否循環(huán)播放</p><p>  mediaPlay

93、er.start();</p><p>  在需要調(diào)用音樂的地方添加如下代碼:</p><p>  private Intent intent = new Intent("com.angel.Android.MUSIC");</p><p>  startService(intent);</p><p>  游戲?qū)崿F(xiàn)用到的

94、其他函數(shù)</p><p>  Switch-case</p><p>  在游戲的實現(xiàn)中主要用了點擊監(jiān)聽的函數(shù),并用switch-case語句判斷點擊的目標(biāo)。</p><p>  switch (v.getId()) {</p><p>  case R.id.mImage11:</p><p>  SetImage(

95、0,ImageButton1);</p><p><b>  break;</b></p><p>  case R.id.mImage12:</p><p>  SetImage(1,ImageButton2);</p><p><b>  break;</b></p><p&

96、gt;  case R.id.mImage13:</p><p>  SetImage(2,ImageButton3);</p><p><b>  break;</b></p><p><b>  default:</b></p><p><b>  break;}</b>&

97、lt;/p><p><b>  SetImage</b></p><p>  SetImage()函數(shù)則是一個響應(yīng)函數(shù),主要利用if語句來判斷響應(yīng)的方式。</p><p>  if(myImage[temp]==R.drawable.d14){//是否與預(yù)定值相同</p><p>  myImageView4.setImag

98、eResource(frame); //相同,裝載笑臉并提示正確</p><p>  Toast.makeText(game_1.this,"恭喜你猜對了",Toast.LENGTH_SHORT).show();</p><p>  myImageView4.setAlpha(255);}</p><p><b>  else{<

99、;/b></p><p>  myImageView4.setImageResource(frame1); //不相同,裝載哭臉并提示錯誤</p><p>  Toast.makeText(game_1.this,"對不起你猜錯了",Toast.LENGTH_SHORT).show();</p><p>  myImageView4.set

100、Alpha(255);}</p><p>  Randon()函數(shù)</p><p>  Randon()函數(shù)用來隨機變換牌的位置的。</p><p>  private void Randon(){</p><p>  for(int i=0;i<3;i++){</p><p>  int temp=myImag

101、e[i];//記錄當(dāng)前myImage[i]的值</p><p>  int s=(int)(Math.random()*2);//在myImage中產(chǎn)生隨機數(shù)</p><p>  myImage[i]=myImage[s];</p><p>  myImage[s]=temp;}} //將產(chǎn)生的隨機數(shù)對應(yīng)的值與原值交換</p><p>  本

102、隨機函數(shù)并不是我們平常想象的產(chǎn)生隨機數(shù),得到隨機牌的思路。而是利用產(chǎn)生的隨機數(shù),交換牌,讓每次猜牌之前都不是之前的牌序的思路。</p><p>  AndroidManifest.xml文件配置</p><p>  最后不要忘記在AndroidManifest.xml文件中添加如下代碼:</p><p>  //添加MusicServer的內(nèi)容</p>

103、<p>  <service android:name=".MusicServer"></p><p>  <intent-filter></p><p>  <action android:name="com.angel.Android.MUSIC"/></p><p>  &

104、lt;category android:name="android.intent.category.default" /></p><p>  </intent-filter></p><p>  </service></p><p>  //添加第一關(guān)游戲的類的內(nèi)容</p><p>  &l

105、t;activity </p><p>  android:name="testGame"></p><p>  </activity></p><p>  //添加第二關(guān)游戲的類的內(nèi)容</p><p>  <activity </p><p>  android:name=

106、"game_1"></p><p>  </activity></p><p><b>  體會感受</b></p><p>  上文所展示的是我們組的學(xué)習(xí)過程,從不同的方面對Android的研究,最終形成了我們的小游戲。游戲雖小,但是凝聚了我們六個人不懈的學(xué)習(xí)與探索的精神。由于時間的限制,對于Androi

107、d的學(xué)習(xí),我們還不是很深入,但是在這個學(xué)習(xí)過程中,我們學(xué)到的不僅是Android的知識本身,更認識到團隊合作的重要性,同時每個人解決問題的能力也提高了。下面是我們每一個人的收獲體會。</p><p>  一個多月的合作即將進入尾聲,老實說心中有些不舍,也有些不甘。索性的是我們達到了既定的目標(biāo),可喜的是不管在Google Android 的探索方面,還是在團隊合作方面我們都有了很大的進步。接下來我想就這兩個方面說說

108、我的體會。</p><p>  在剛拿到這個題目的時候,我們有些茫然。因為在這之前根本沒有聽說過這個詞,當(dāng)然這只能說我們的信息太閉塞了。于是我開始從三個渠道去慢慢接近Android :1、網(wǎng)絡(luò)。我從網(wǎng)絡(luò)中了解到Android 的發(fā)布是在2007年底,而現(xiàn)在已是2010年底。它的發(fā)展已經(jīng)有了近3年的時間,想必有很多的資料,再一次感到自己消息的閉塞。2、書籍。我到學(xué)校的圖書館轉(zhuǎn)了一圈,令我很詫異的是關(guān)于Android

109、 的書籍還屬于新書區(qū),借閱相當(dāng)麻煩。3、學(xué)長、學(xué)姐們的論文。在了解了Android 近些年來的發(fā)展之后,我們開始著手平臺的搭建。由于學(xué)長、學(xué)姐們論文的幫助,我們的平臺搭建并沒有遇到太大的困難。然后我們開始進一步地去了解 Android 的系統(tǒng)框架和他的文件構(gòu)成,為后面的開發(fā)打好基礎(chǔ)。我們使用的方法是通過不同的命名方式跟蹤文件命名去向,借助資料了解它的工作機制。在這些工作完成之后,我們就開始動手添加代碼,更改界面,去實現(xiàn)一個個小的功能。準(zhǔn)

110、備工作結(jié)束之后,我們就著手開始實際的設(shè)計。圍繞我們設(shè)計的主題,我們將一個個小的功能進行糅合、修改,達到了我們既定的設(shè)計目標(biāo)。很抱歉,啰啰嗦嗦說了很多,但是這就是我們真實得開發(fā)過</p><p>  然后我想說說我們這個團隊。從一開始組隊,就注定了隊里沒有一個人是可以躲避任務(wù)的。所有的人都從零開始,把學(xué)到的與大家一起交流,把不懂的與大家一起討論。在合作的過程中有摩擦、有不快,這都是再正常不過的事兒。但我們卻從中學(xué)會

111、了反思,學(xué)會了體諒。首先我想說說在這段時間里我發(fā)現(xiàn)的自己的缺點。1、一開始有些親力親為,會讓對方產(chǎn)生失落感。開始的階段論文,我是讓組員們寫,然后我再從頭到尾改。往往改出的論文已經(jīng)沒有了當(dāng)初的模樣,這樣會讓他們覺得沒有被認同,會有失落。2、交流的目的不明確,白費功夫。在交代任務(wù)時,有些含糊不清,導(dǎo)致結(jié)果的不正確,浪費了大家的時間。3、三分鐘熱情。這是最不能有的,但是在一小段時間里我確實失去了興趣,還好有組員們的督促??偨Y(jié)完我的缺點之后我還

112、有夸夸我的組員們。他們非常的努力,非常的有合作意識。就像我之前在文檔中寫的一樣:“我有這么努力、這么不分你我的組員,我真的很高興,也很幸福。也許我們做出來的東西很稚嫩,也許我們還有很多需要改進的地方,但是作為一個臨時成立的團隊,我們做到了團隊協(xié)作,做到了共同進步。沒有比這個更加可貴的了?!弊詈蟾兄x這段時間來大家的配合,感謝這段時間來大家的不</p><p><b>  ——李玲</b><

113、;/p><p>  經(jīng)過七周的Google Android的學(xué)習(xí),我收獲了很多。首先是知識上的學(xué)習(xí)。對于Google Android,最初對它很陌生,甚至不知道該從何處開始研究。但是,通過在網(wǎng)上查找的資料以及借閱的圖書,使我發(fā)現(xiàn),它就在我們的生活中,而且是未來發(fā)展前景很不錯的一個領(lǐng)域。人只有不斷探索未知領(lǐng)域,才能提高自己的能力。所以,從零開始,腳踏實地,逐步研究。從搭建實驗環(huán)境到添加一個按鈕、一個文本框再到最終可

114、以實現(xiàn)我們小組的小游戲,這七周的學(xué)習(xí)在我的腦海里留下的不僅僅是關(guān)于Google Android的知識,更多的是對新知識的研究與思考的這個過程。只有自己解決的問題才印象深刻,這句話說得很對,這次的學(xué)習(xí)中,雖然遇到了些困難,但是,只要自己肯仔細思考,多花些時間研究,就一定能解決問題,并且對這樣的問題會隨時留意。在Android的學(xué)習(xí)中,除了知識的豐富,眼界的拓寬,也使我對團隊合作有了更深的體會。在一個團隊中,要學(xué)會站在他人的角度上看問題,

115、進而才能從多方面理解問題;在一個團隊中,成員要多溝通,才能合作的更融洽,更有利于項目的進展。再大的困難,除以一個團隊,也是小問題;在小的成就,乘以一個團隊,就是</p><p><b>  ——陳艷玲</b></p><p>  從確定題目,到現(xiàn)在的成果展示,我歷經(jīng)了七周時間的開發(fā)過程。在這個過程中我遇到了很多的困難和問題,現(xiàn)在回想起來感覺這是一個成長的過程,當(dāng)問題解

116、決時的那種成就感讓人難忘。在這個過程中我不斷的發(fā)現(xiàn)問題,不斷的解決問題,隨時對項目進行規(guī)劃和設(shè)計,和同組人交流合作,使我迅速的成長。做Google Android代碼開發(fā),我是從零開始起步的,由最開始的了解Google Android具體是什么,到安裝軟件,搭建平臺,再到后來的下載視頻進行開發(fā)的前期準(zhǔn)備,然后是開發(fā)的總體規(guī)劃,實踐規(guī)劃的目標(biāo),我們每一步都穩(wěn)扎穩(wěn)打,對開發(fā)中的方法有了一個具體的框架和結(jié)構(gòu)。做開發(fā)設(shè)計和構(gòu)思很重要,要有友好的

117、人機界面,這樣對于使用者來說更方便更快捷。在開發(fā)的過程中經(jīng)常要使用到按鈕和文本框等的結(jié)合使用。我在做關(guān)卡連接時遇到的問題我至今還印象深刻,最后通過在Activity中調(diào)用另一個Activity,將欲傳遞的數(shù)據(jù)或參數(shù),通過Bundle來傳遞不同Intent之間的數(shù)據(jù)來實現(xiàn)。還有一些經(jīng)常使用的方法例如:TextView,Drawable,Activity Layou,Button,EditText等。他們的應(yīng)用能夠是開發(fā)</p>

118、<p><b>  ——陳卓</b></p><p>  一學(xué)期的課程已經(jīng)結(jié)束了,通過這學(xué)期的學(xué)習(xí),讓我有很多感慨。我覺得,與其說網(wǎng)絡(luò)工程是一門課,倒不如說是一個實踐的戰(zhàn)場,把我們從理論層次帶到了實踐的列車,讓我們看到了實實在在的東西。在項目沒有開始做之前,因為我是學(xué)java的,所以我信心滿滿,覺得會輕松一些,但開始做后,我發(fā)現(xiàn),完全不是那么回事,一切都要從頭學(xué)起,做起來也很吃

119、力,從一開始的界面搭建,到學(xué)習(xí)系統(tǒng)框架的建立,到嘗試添加一些小的組件(一個按鈕或一個文本框或一段話),再到后來的項目開發(fā)。這些都是基于代碼的閱讀,在閱讀完代碼后,對代碼進行部分修改、調(diào)試,真是讓我體會到牽一發(fā)動全身的感覺了。為了代碼的實現(xiàn),我不斷的摸索,不斷的查閱資料,不斷的修改、調(diào)試,有時甚至?xí)驗橐粋€小小的錯誤而把程序改得面目全非??梢哉f,為了這個游戲的實現(xiàn),我們是歷盡了千辛萬苦。為了這個開發(fā)項目,我們每周都會拿出一天多的時間學(xué)習(xí)探

120、究關(guān)于Android的知識,在不斷的學(xué)習(xí)探究中進行實踐。</p><p>  終于黃天不負有心人,我和我們組令一名同學(xué)一起完成了游戲的第一關(guān)的開發(fā),在這一關(guān)中我們實現(xiàn)了游戲整體背景和牌面背景的設(shè)置、選牌功能、按鈕確定功能、根據(jù)相應(yīng)答案顯示不同圖片的功能、鍵盤綁定功能。我覺得在這些功能的實現(xiàn)中,最讓我覺得有困難的就是鍵盤綁定功能,查閱很多資料發(fā)現(xiàn),都是給每個按鍵添加監(jiān)聽者,但我又決定那樣很麻煩,而且那些代碼讀起來也

121、很難理解,當(dāng)時我感到絕望,對自己沒有了信息。但是,在我一次調(diào)試過程中,偶然發(fā)現(xiàn)按鈕是可以被鍵盤控制的,我便想到了獎牌面放到按鈕上的想法,我便這樣做了,結(jié)果真的讓我很是興奮,鍵盤綁定功能真的實現(xiàn)了,那是我體會到了絕處逢生的感覺。這幾周的開發(fā)過程,真是讓我的心情跌宕起伏。</p><p>  在學(xué)這門課之前,我沒料想到自己會在這門課上花這么多心思,但我現(xiàn)在覺得,之前所做的一切都是值得的。因為我不僅學(xué)到了很多知識,充實

122、了自己,還深刻體會到團隊精神,團隊的力量。在這里,我要感謝這門課,是這門課讓我了解到,原來逆境是可以幫助我們成長的;感謝小組里的每一位成員,是當(dāng)家的共同努力,才有了今天的成果!</p><p><b>  ——陳艷艷</b></p><p>  為期幾周的Google Android應(yīng)用編程終于完成了!通過這幾周對Google Android 編程的接觸,雖說沒能對其

123、有全面細致的了解,但是對于大致的開發(fā)框架還是有了初步的了解。包括開發(fā)環(huán)境、文件結(jié)構(gòu)、程序運行模式、JAVA語言等,相信這些在以后的學(xué)習(xí)和工作中對我會有幫助。</p><p>  其實,我認為對于完成的這個小的項目來說,重點并不是我學(xué)到了多少知識,因為以我的技術(shù)水平和客觀條件講,想要短期掌握一個相對比較新奇的編程技術(shù)是很難的;重點是我以這個機會為平臺,開闊了自身的眼界,了解了當(dāng)下最新的技術(shù),不再拘泥于課本上的知識,

124、另外,通過這次機會,也鍛煉了我的自學(xué)能力。因為Google Android 應(yīng)用開發(fā)是近兩年才出現(xiàn)的編程技術(shù),圖書館里關(guān)于這方面的書幾乎沒有,只能到網(wǎng)上去尋找,過濾掉大量無用的文章,提煉到有價值的信息。此外,由于我本身學(xué)的是C++,所以還要抓緊學(xué)習(xí)JAVA編程,這對于時間緊迫的我來說是個不小的挑戰(zhàn)。最后,當(dāng)我和同組的組員一起編寫出能夠流暢運行的程序時,自己很有成就感,這也算是一次小小的成功吧。通過這次自主學(xué)習(xí),我認識到了一個人能力的大小

溫馨提示

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

評論

0/150

提交評論