

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機專業(yè)畢業(yè)論文(考勤系統(tǒng)軟件設(shè)計)
- 塞曼效應(yīng)計算機輔助軟件設(shè)計論文
- 計算機軟件設(shè)計技術(shù)
- 基于android的背單詞軟件設(shè)計與實現(xiàn)計算機畢業(yè)論文
- 計算機軟件設(shè)計方案模板
- 面向城軌信號系統(tǒng)的安全計算機平臺軟件設(shè)計.pdf
- 基于Linux系統(tǒng)的鐵路信號計算機聯(lián)鎖安全平臺軟件設(shè)計.pdf
- 計算機波形顯示軟件設(shè)計微機原理
- 計算機核心課程群綜合教學(xué)平臺的軟件設(shè)計與實現(xiàn).pdf
- 通風(fēng)機計算機選型軟件設(shè)計.pdf
- 計算機軟件工程專業(yè)畢業(yè)論文---基于android平臺的語音朗讀器
- 計算機軟件設(shè)計畢業(yè)論文--企業(yè)管理系統(tǒng)
- 計算機光學(xué)元件的混合編程軟件設(shè)計.pdf
- 微型機械液晶引流計算機輔助計算軟件設(shè)計本科畢業(yè)設(shè)計論文
- 計算機軟件技術(shù)專業(yè)畢業(yè)論文
- 計算機軟件 設(shè)計論文(范文) (新)
- 計算機專業(yè)導(dǎo)論論文
- 基于CBIR技術(shù)的計算機拼圖教育軟件平臺設(shè)計.pdf
- 嵌入式實時軟件在計算機軟件設(shè)計中的應(yīng)用
- 嵌入式實時軟件在計算機軟件設(shè)計中的運用
評論
0/150
提交評論