版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 基于Google android 平臺的軟件設(shè)計(jì)</p><p><b> 目錄</b></p><p> 1認(rèn)識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運(yùn)行時(shí)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運(yùn)行結(jié)果13</p><p> 5.2Andriod ListView 常用方法13</p><p> 5.2.1核心代碼13</p><p> 5.2.2運(yùn)行結(jié)果14</p><p> 5.3在文
7、本框中輸入數(shù)據(jù),點(diǎn)擊按鈕做出相應(yīng)計(jì)算以及顯示提示信息15</p><p> 5.3.1核心代碼15</p><p> 5.3.2運(yùn)行結(jié)果16</p><p> 5.4實(shí)現(xiàn)多個(gè)activity的用戶界面設(shè)計(jì)16</p><p> 5.4.1核心代碼16</p><p> 5.4.2構(gòu)建UI層
8、17</p><p> 5.4.3運(yùn)行結(jié)果17</p><p> 6游戲開發(fā)成果展示及相關(guān)技術(shù)說明18</p><p> 6.1進(jìn)入游戲界面18</p><p> 6.2關(guān)卡的選擇:19</p><p> 6.2.1功能描述:19</p><p> 6.2.2
9、技術(shù)實(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ù)實(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ù)實(shí)現(xiàn)22</p><p> 6.4.3成果展示22</p><p> 6.5添加音效24</p><p> 6.5.1技術(shù)實(shí)現(xiàn)24</p><p> 6.6核心功能技術(shù)實(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ā)布的一個(gè)基于Linux 核心的開源手機(jī)平臺作業(yè)系統(tǒng)。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序,這些是移動電話工作所需的全部軟件,是首個(gè)為移動終端打造的真正開發(fā)和完整的移動軟件。同時(shí),Android在中國的前景十分廣闊,行業(yè)需求量也很大。此外,Android系統(tǒng)的高級編程語言是Java,對于我們并不陌生。基于此,我們選擇了對Androi
13、d進(jìn)行研究開發(fā),包括以下幾方面:Android開發(fā)平臺的搭建、其系統(tǒng)構(gòu)架、工程組件以及界面設(shè)計(jì)的相關(guān)例子。為了更好的介紹基于該平臺的軟件設(shè)計(jì)的原理和開發(fā)過程,我們設(shè)計(jì)了一個(gè)關(guān)于紙牌游戲的軟件。</p><p> 【關(guān)鍵詞】Android、平臺搭建、系統(tǒng)構(gòu)架、紙牌游戲</p><p> 認(rèn)識Google Android</p><p> 什么是Google An
14、droid</p><p> Android是一個(gè)基于Linux 核心的開源手機(jī)平臺作業(yè)系統(tǒng)。與Windows Mobile、Symbian 等手機(jī)作業(yè)系統(tǒng)處在同一級別。該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件等組成,號稱是首個(gè)為移動終端打造的真正開放的移動開發(fā)平臺。從不同角度來說,Android 代表著一個(gè)嶄新的開放原始碼作業(yè)系統(tǒng)平臺、一個(gè)友善的免費(fèi)應(yīng)用程式開發(fā)環(huán)境、一個(gè)與世界各地的程式開發(fā)者,站在相同起
15、跑點(diǎn)上的公平競爭機(jī)會。</p><p> Google Android 的發(fā)展歷程</p><p> Google于2007年11月5日發(fā)布了基于Linux平臺的開源手機(jī)操作系統(tǒng)——Android;2008年9月22日,美國運(yùn)營商T-Mobile USA 在紐約正式發(fā)布第一款使用Android 操作系統(tǒng)的Google 手機(jī)——T-Mobile G1;Google 與開放手機(jī)聯(lián)盟合作開發(fā)
16、了Android 移動開發(fā)平臺;Google Android 平臺演變出的OMS 是一種更適合中國手機(jī)用戶群的智能手機(jī)操作系統(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)用的日益豐富,一個(gè)嶄新的平臺也將很快走向成熟。</p><p> 開放性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費(fèi)者和廠商,而對于消費(fèi)者來講,隨大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費(fèi)者將可以用更低的價(jià)位購得心儀的手機(jī)。</p><p><
18、b> 掙脫運(yùn)營商的束縛</b></p><p> 在過去很長的一段時(shí)間,特別是在歐美地區(qū),手機(jī)應(yīng)用往往受到運(yùn)營商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運(yùn)營商的控制。自從iPhone上市,用戶可以更加方便地連接網(wǎng)絡(luò),運(yùn)營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網(wǎng)絡(luò)的逐步過渡和提升,手機(jī)隨意接入網(wǎng)絡(luò)已不是運(yùn)營商口中的笑談,互聯(lián)網(wǎng)巨頭Google推動的Android終端天生就有
19、網(wǎng)絡(luò)特色,將讓用戶離互聯(lián)網(wǎng)更近。</p><p><b> 豐富的硬件選擇</b></p><p> 這一點(diǎn)還是與Android平臺的開放性相關(guān),由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容。</p><p> 不受任何限制的開發(fā)商</p>
20、;<p> Android平臺提供給第三方開發(fā)商一個(gè)十分寬泛、自由的環(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平臺手機(jī)將無縫結(jié)合這些優(yōu)秀的Google服務(wù)。</p><p><b> 開發(fā)環(huán)境的搭建</b></p><p> 我們從校園網(wǎng)技術(shù)支持平臺ftp://jszc.cnu.edu.cn/計(jì)算機(jī)及軟件知識/Android 入門與實(shí)戰(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 是整個(gè)Java的核心,包括了Java運(yùn)行環(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 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)
24、境。Eclipse 是一個(gè)綠色軟件,解壓后可直接使用。</p><p> 雙擊圖標(biāo),進(jìn)入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 點(diǎn)擊next至finish。這時(shí)彈出“是否重啟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 ,這時(shí)會彈出警告。</p><p> 這是因?yàn)槲覀冞€沒有設(shè)置SDK的原因,點(diǎn)擊OK。選擇Browse 指定到SDK的所在路徑,點(diǎn)擊Apply。這里需要等待SDK 列表的出現(xiàn)才可點(diǎn)擊OK,否則會報(bào)錯(cuò)。</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> 點(diǎn)擊New 。</b></p><p><b> 圖2-5</b></p><p> 輸入相關(guān)參數(shù),點(diǎn)擊Cre
29、ate AVD 來完成模擬器的創(chuàng)建?;氐缴弦粋€(gè)界面之后選中創(chuàng)建的模擬器,點(diǎn)擊Start 來運(yùn)行模擬器。此時(shí)會出現(xiàn)如下模擬界面。</p><p><b> 圖2-6</b></p><p> 模擬器的啟動時(shí)間較長,啟動完全之后模擬界面如下圖:</p><p><b> 圖2-7</b></p><p
30、> Android 系統(tǒng)構(gòu)架</p><p> Android作為移動設(shè)備的開發(fā)平臺,其軟件層次結(jié)構(gòu)包括了一個(gè)操作系統(tǒng),中間件和應(yīng)用程序。Android平臺由應(yīng)用程序、應(yīng)用程序框架、Android運(yùn)行時(shí)、庫以及Linux內(nèi)核共5部分組成,如下圖所示:</p><p><b> 圖3-1</b></p><p> Android平臺
31、的核心應(yīng)用程序</p><p> Android的發(fā)布時(shí)會協(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è)計(jì),應(yīng)用程序可以發(fā)布它的功能塊并可以被其他任何</p><p> 應(yīng)用程序所使用,使用者用同樣的機(jī)制來置換元件。</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運(yùn)行時(shí)</p><p> Android運(yùn)行時(shí)由核心庫和Dalvik虛擬機(jī)兩部分組成。每一個(gè)Android應(yīng)用程序執(zhí)行獨(dú)立的Dalvik虛擬機(jī)。</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> 為了更清楚各個(gè)部分的命名,做了如下試驗(yàn),工程文件的配置如下:</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è)置的目的在于跟蹤各個(gè)配置的去向。<
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是每個(gè)Android程序中所必需的,它位于Android工程的根目錄中,描述了package中的全局?jǐn)?shù)據(jù),包括package中的組件(Activities、Services等)以及他們各自的實(shí)現(xiàn)類,各種能被處理的數(shù)據(jù)和啟動位
39、置等。Manifest文件的主要功能是聲明應(yīng)用程序的組件。</p><p> 例如:一個(gè)Activity必須要有一個(gè)<Activity>標(biāo)記對應(yīng),無論它是供外部使用還是只是用于自己的包中。如果一個(gè)Activity沒有標(biāo)記對應(yīng),它將不能運(yùn)行。</p><p> <activity android:name=".createactivity"</
40、p><p> android:label="@string/app_name"></p><p> 上述兩個(gè)語句就是Activity聲明。Name屬性指定了實(shí)現(xiàn)這個(gè)Activity的Activity子類。Label屬性值指向此Activity要展示給用戶的標(biāo)簽資源。</p><p> 注意事項(xiàng):幾乎所有的AndroidManifest.x
41、ml文件都會在其第一個(gè)元素中包含一個(gè)命名空間的聲明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文件夾包含的是整個(gè)應(yīng)用可以使用的資源,
42、它包含3個(gè)子文件夾,分別為drawable、layout和values。</p><p> Drawable文件夾包括本應(yīng)用所需的圖片文件和所需圖片文件的引用。</p><p> Layout文件夾下目前僅僅有一個(gè)xml文件(main.xml),再編寫應(yīng)用界面的布局時(shí)引用此文件的內(nèi)容。根據(jù)應(yīng)用程序的需要還可以在layout中加入各種view。</p><p>
43、 Values文件夾下存儲了一個(gè)xml文件(srings.xml),這個(gè)文件的作用是存儲本工程使用的string類型全局變量。</p><p><b> Assets文件夾</b></p><p> 用來存放音頻、視頻等多媒體資源文件。我們希望能在以后對它有更多的了解。</p><p> Src和gen文件夾</p><
44、;p><b> 圖4-4</b></p><p> 這兩個(gè)文件夾中包含了工程的所有java代碼資源,至少要包含2個(gè)文件,一個(gè)是activity的java 文件,另一個(gè)是R.java文件。R.java是Android-Eclipse自動生成的。這個(gè)文件包含了drawable、layout、values文件夾中的資源信息,以資源id的形式具體展現(xiàn)。我們不能對它進(jì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)實(shí)的內(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> 運(yùn)行結(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每個(gè)條目的Layout,用RelativeLayout實(shí)現(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("點(diǎn)擊第"+arg2+"個(gè)項(xiàng)目&q
55、uot;);} });</p><p><b> //添加點(diǎn)擊 </b></p><p> //添加長按點(diǎn)擊 </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> 運(yùn)行結(jié)果</b></p><p><b> 圖5-2</b></p><p><b> 圖5-3</b></p><p> 在文本框中輸入數(shù)據(jù),點(diǎn)擊
58、按鈕做出相應(yīng)計(jì)算以及顯示提示信息</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> //強(qiáng)制將取得的資源型別設(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);//計(jì)算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">計(jì)算BMI 值</string></p><p> <string name="bmi_result">你的BMI 值是</string></p><p> </resources></p><
68、p> 在values下創(chuàng)建advice文件,氣源程序?yàn)?</p><p> <string name="advice_light">你該多吃點(diǎn)</string></p><p> <string name="advice_average">體型很棒喔</string></p>
69、<p> <string name="advice_heavy">你該節(jié)食了</string></p><p><b> 運(yùn)行結(jié)果</b></p><p><b> 圖5-4</b></p><p> 實(shí)現(xiàn)多個(gè)activity的用戶界面設(shè)計(jì)</p>
70、<p><b> 核心代碼</b></p><p> 通過Intent這個(gè)類能夠使我們從本頁面跳轉(zhuǎn)到ActivityRelativeLayout這個(gè)類里面</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> //新建一個(gè)跳轉(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> //通過這個(gè)方法顯示: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> 效果是:一個(gè)按鈕,按鈕上面文字是:“我來了”</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> 將兩個(gè)界面的Actity的java類都添加到android系統(tǒng)中</p><p> 配置一下默認(rèn)的一個(gè)文件: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> 運(yùn)行結(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> 進(jìn)入游戲界面</b></p><p><b> 圖6-1</b></p><p><b> 關(guān)卡的選擇:</b></p><p><b> 功能描述:</b></p><p> 關(guān)卡選擇為進(jìn)入系統(tǒng)的
82、主界面,在這個(gè)界面中用戶可以進(jìn)行關(guān)卡選擇,系統(tǒng)共分為兩關(guān)。</p><p><b> 技術(shù)實(shí)現(xiàn):</b></p><p> 在這個(gè)模塊中界面上的兩個(gè)按鈕和另外的兩個(gè)java文件進(jìn)行連接。</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,每次游戲有三張紙牌,隨機(jī)排列,用戶點(diǎn)擊紙牌進(jìn)行翻牌,顯示答案,對于用戶選擇的答案進(jìn)行高亮顯示,
84、系統(tǒng)會提示用戶選擇正確或錯(cuò)誤,當(dāng)用戶選擇正確是,提示笑臉,錯(cuò)誤提示哭臉。</p><p> 技術(shù)實(shí)現(xiàn)(鍵盤綁定)</p><p> 將牌面的圖片用ImageButton.setImageResource()方法來實(shí)現(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)從牌庫中隨機(jī)抽取六張撲克牌,用戶點(diǎn)擊紙牌猜牌面大小。對于答案用高亮現(xiàn)實(shí),系統(tǒng)提示用戶答案是否正確。首先在界面設(shè)計(jì)時(shí)添加了一個(gè)靜態(tài)文本視圖,6個(gè)圖片視圖,1個(gè)按鈕。</p><p><b> 技術(shù)實(shí)現(xiàn)</b></p><p> 對應(yīng)于類中就有6個(gè)圖片視圖的私有成員和一個(gè)按鈕的私有成員,另外還有一個(gè)int類型的圖片管理集的私有成員和一個(gè)用于
87、判斷的int 型變量a等。</p><p> 然后通過onCreate函數(shù)將圖片視圖和按鈕與界面變量進(jìn)行結(jié)合。其中調(diào)用了一個(gè)Randon()函數(shù)將紙牌順序進(jìn)行隨機(jī)排列。之后設(shè)置了一個(gè)界面監(jiān)聽函數(shù),并通過一個(gè)switch對用戶選擇的所有可能情況進(jìn)行設(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ù)實(shí)現(xiàn)</b></p><p> 先添
89、加一個(gè)基于service的類,在該類內(nèi)添加音效文件和開始、結(jié)束的條件預(yù)定。然后注意在AndroidManifest.xml文件中添加新建項(xiàng)的相關(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ù)實(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)用一個(gè)新的Activity</p><p> CardGame.this.finish();//關(guān)閉原本的Activity</p><p><b> 添加背景音樂</b></p><p> 定義一個(gè)基于服務(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> 在游戲的實(shí)現(xiàn)中主要用了點(diǎn)擊監(jiān)聽的函數(shù),并用switch-case語句判斷點(diǎn)擊的目標(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ù)則是一個(gè)響應(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); //不相同,裝載哭臉并提示錯(cuò)誤</p><p> Toast.makeText(game_1.this,"對不起你猜錯(cuò)了",Toast.LENGTH_SHORT).show();</p><p> myImageView4.set
100、Alpha(255);}</p><p> Randon()函數(shù)</p><p> Randon()函數(shù)用來隨機(jī)變換牌的位置的。</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)生隨機(jī)數(shù)</p><p> myImage[i]=myImage[s];</p><p> myImage[s]=temp;}} //將產(chǎn)生的隨機(jī)數(shù)對應(yīng)的值與原值交換</p><p> 本
102、隨機(jī)函數(shù)并不是我們平常想象的產(chǎn)生隨機(jī)數(shù),得到隨機(jī)牌的思路。而是利用產(chǎn)生的隨機(jī)數(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的研究,最終形成了我們的小游戲。游戲雖小,但是凝聚了我們六個(gè)人不懈的學(xué)習(xí)與探索的精神。由于時(shí)間的限制,對于Androi
107、d的學(xué)習(xí),我們還不是很深入,但是在這個(gè)學(xué)習(xí)過程中,我們學(xué)到的不僅是Android的知識本身,更認(rèn)識到團(tuán)隊(duì)合作的重要性,同時(shí)每個(gè)人解決問題的能力也提高了。下面是我們每一個(gè)人的收獲體會。</p><p> 一個(gè)多月的合作即將進(jìn)入尾聲,老實(shí)說心中有些不舍,也有些不甘。索性的是我們達(dá)到了既定的目標(biāo),可喜的是不管在Google Android 的探索方面,還是在團(tuán)隊(duì)合作方面我們都有了很大的進(jìn)步。接下來我想就這兩個(gè)方面說說
108、我的體會。</p><p> 在剛拿到這個(gè)題目的時(shí)候,我們有些茫然。因?yàn)樵谶@之前根本沒有聽說過這個(gè)詞,當(dāng)然這只能說我們的信息太閉塞了。于是我開始從三個(gè)渠道去慢慢接近Android :1、網(wǎng)絡(luò)。我從網(wǎng)絡(luò)中了解到Android 的發(fā)布是在2007年底,而現(xiàn)在已是2010年底。它的發(fā)展已經(jīng)有了近3年的時(shí)間,想必有很多的資料,再一次感到自己消息的閉塞。2、書籍。我到學(xué)校的圖書館轉(zhuǎn)了一圈,令我很詫異的是關(guān)于Android
109、 的書籍還屬于新書區(qū),借閱相當(dāng)麻煩。3、學(xué)長、學(xué)姐們的論文。在了解了Android 近些年來的發(fā)展之后,我們開始著手平臺的搭建。由于學(xué)長、學(xué)姐們論文的幫助,我們的平臺搭建并沒有遇到太大的困難。然后我們開始進(jìn)一步地去了解 Android 的系統(tǒng)框架和他的文件構(gòu)成,為后面的開發(fā)打好基礎(chǔ)。我們使用的方法是通過不同的命名方式跟蹤文件命名去向,借助資料了解它的工作機(jī)制。在這些工作完成之后,我們就開始動手添加代碼,更改界面,去實(shí)現(xiàn)一個(gè)個(gè)小的功能。準(zhǔn)
110、備工作結(jié)束之后,我們就著手開始實(shí)際的設(shè)計(jì)。圍繞我們設(shè)計(jì)的主題,我們將一個(gè)個(gè)小的功能進(jìn)行糅合、修改,達(dá)到了我們既定的設(shè)計(jì)目標(biāo)。很抱歉,啰啰嗦嗦說了很多,但是這就是我們真實(shí)得開發(fā)過</p><p> 然后我想說說我們這個(gè)團(tuán)隊(duì)。從一開始組隊(duì),就注定了隊(duì)里沒有一個(gè)人是可以躲避任務(wù)的。所有的人都從零開始,把學(xué)到的與大家一起交流,把不懂的與大家一起討論。在合作的過程中有摩擦、有不快,這都是再正常不過的事兒。但我們卻從中學(xué)會
111、了反思,學(xué)會了體諒。首先我想說說在這段時(shí)間里我發(fā)現(xiàn)的自己的缺點(diǎn)。1、一開始有些親力親為,會讓對方產(chǎn)生失落感。開始的階段論文,我是讓組員們寫,然后我再從頭到尾改。往往改出的論文已經(jīng)沒有了當(dāng)初的模樣,這樣會讓他們覺得沒有被認(rèn)同,會有失落。2、交流的目的不明確,白費(fèi)功夫。在交代任務(wù)時(shí),有些含糊不清,導(dǎo)致結(jié)果的不正確,浪費(fèi)了大家的時(shí)間。3、三分鐘熱情。這是最不能有的,但是在一小段時(shí)間里我確實(shí)失去了興趣,還好有組員們的督促??偨Y(jié)完我的缺點(diǎn)之后我還
112、有夸夸我的組員們。他們非常的努力,非常的有合作意識。就像我之前在文檔中寫的一樣:“我有這么努力、這么不分你我的組員,我真的很高興,也很幸福。也許我們做出來的東西很稚嫩,也許我們還有很多需要改進(jìn)的地方,但是作為一個(gè)臨時(shí)成立的團(tuán)隊(duì),我們做到了團(tuán)隊(duì)協(xié)作,做到了共同進(jìn)步。沒有比這個(gè)更加可貴的了?!弊詈蟾兄x這段時(shí)間來大家的配合,感謝這段時(shí)間來大家的不</p><p><b> ——李玲</b><
113、;/p><p> 經(jīng)過七周的Google Android的學(xué)習(xí),我收獲了很多。首先是知識上的學(xué)習(xí)。對于Google Android,最初對它很陌生,甚至不知道該從何處開始研究。但是,通過在網(wǎng)上查找的資料以及借閱的圖書,使我發(fā)現(xiàn),它就在我們的生活中,而且是未來發(fā)展前景很不錯(cuò)的一個(gè)領(lǐng)域。人只有不斷探索未知領(lǐng)域,才能提高自己的能力。所以,從零開始,腳踏實(shí)地,逐步研究。從搭建實(shí)驗(yàn)環(huán)境到添加一個(gè)按鈕、一個(gè)文本框再到最終可
114、以實(shí)現(xiàn)我們小組的小游戲,這七周的學(xué)習(xí)在我的腦海里留下的不僅僅是關(guān)于Google Android的知識,更多的是對新知識的研究與思考的這個(gè)過程。只有自己解決的問題才印象深刻,這句話說得很對,這次的學(xué)習(xí)中,雖然遇到了些困難,但是,只要自己肯仔細(xì)思考,多花些時(shí)間研究,就一定能解決問題,并且對這樣的問題會隨時(shí)留意。在Android的學(xué)習(xí)中,除了知識的豐富,眼界的拓寬,也使我對團(tuán)隊(duì)合作有了更深的體會。在一個(gè)團(tuán)隊(duì)中,要學(xué)會站在他人的角度上看問題,
115、進(jìn)而才能從多方面理解問題;在一個(gè)團(tuán)隊(duì)中,成員要多溝通,才能合作的更融洽,更有利于項(xiàng)目的進(jìn)展。再大的困難,除以一個(gè)團(tuán)隊(duì),也是小問題;在小的成就,乘以一個(gè)團(tuán)隊(duì),就是</p><p><b> ——陳艷玲</b></p><p> 從確定題目,到現(xiàn)在的成果展示,我歷經(jīng)了七周時(shí)間的開發(fā)過程。在這個(gè)過程中我遇到了很多的困難和問題,現(xiàn)在回想起來感覺這是一個(gè)成長的過程,當(dāng)問題解
116、決時(shí)的那種成就感讓人難忘。在這個(gè)過程中我不斷的發(fā)現(xiàn)問題,不斷的解決問題,隨時(shí)對項(xiàng)目進(jìn)行規(guī)劃和設(shè)計(jì),和同組人交流合作,使我迅速的成長。做Google Android代碼開發(fā),我是從零開始起步的,由最開始的了解Google Android具體是什么,到安裝軟件,搭建平臺,再到后來的下載視頻進(jìn)行開發(fā)的前期準(zhǔn)備,然后是開發(fā)的總體規(guī)劃,實(shí)踐規(guī)劃的目標(biāo),我們每一步都穩(wěn)扎穩(wěn)打,對開發(fā)中的方法有了一個(gè)具體的框架和結(jié)構(gòu)。做開發(fā)設(shè)計(jì)和構(gòu)思很重要,要有友好的
117、人機(jī)界面,這樣對于使用者來說更方便更快捷。在開發(fā)的過程中經(jīng)常要使用到按鈕和文本框等的結(jié)合使用。我在做關(guān)卡連接時(shí)遇到的問題我至今還印象深刻,最后通過在Activity中調(diào)用另一個(gè)Activity,將欲傳遞的數(shù)據(jù)或參數(shù),通過Bundle來傳遞不同Intent之間的數(shù)據(jù)來實(shí)現(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ò)工程是一門課,倒不如說是一個(gè)實(shí)踐的戰(zhàn)場,把我們從理論層次帶到了實(shí)踐的列車,讓我們看到了實(shí)實(shí)在在的東西。在項(xiàng)目沒有開始做之前,因?yàn)槲沂菍W(xué)java的,所以我信心滿滿,覺得會輕松一些,但開始做后,我發(fā)現(xiàn),完全不是那么回事,一切都要從頭學(xué)起,做起來也很吃
119、力,從一開始的界面搭建,到學(xué)習(xí)系統(tǒng)框架的建立,到嘗試添加一些小的組件(一個(gè)按鈕或一個(gè)文本框或一段話),再到后來的項(xiàng)目開發(fā)。這些都是基于代碼的閱讀,在閱讀完代碼后,對代碼進(jìn)行部分修改、調(diào)試,真是讓我體會到牽一發(fā)動全身的感覺了。為了代碼的實(shí)現(xiàn),我不斷的摸索,不斷的查閱資料,不斷的修改、調(diào)試,有時(shí)甚至?xí)驗(yàn)橐粋€(gè)小小的錯(cuò)誤而把程序改得面目全非??梢哉f,為了這個(gè)游戲的實(shí)現(xiàn),我們是歷盡了千辛萬苦。為了這個(gè)開發(fā)項(xiàng)目,我們每周都會拿出一天多的時(shí)間學(xué)習(xí)探
120、究關(guān)于Android的知識,在不斷的學(xué)習(xí)探究中進(jìn)行實(shí)踐。</p><p> 終于黃天不負(fù)有心人,我和我們組令一名同學(xué)一起完成了游戲的第一關(guān)的開發(fā),在這一關(guān)中我們實(shí)現(xiàn)了游戲整體背景和牌面背景的設(shè)置、選牌功能、按鈕確定功能、根據(jù)相應(yīng)答案顯示不同圖片的功能、鍵盤綁定功能。我覺得在這些功能的實(shí)現(xiàn)中,最讓我覺得有困難的就是鍵盤綁定功能,查閱很多資料發(fā)現(xiàn),都是給每個(gè)按鍵添加監(jiān)聽者,但我又決定那樣很麻煩,而且那些代碼讀起來也
121、很難理解,當(dāng)時(shí)我感到絕望,對自己沒有了信息。但是,在我一次調(diào)試過程中,偶然發(fā)現(xiàn)按鈕是可以被鍵盤控制的,我便想到了獎牌面放到按鈕上的想法,我便這樣做了,結(jié)果真的讓我很是興奮,鍵盤綁定功能真的實(shí)現(xiàn)了,那是我體會到了絕處逢生的感覺。這幾周的開發(fā)過程,真是讓我的心情跌宕起伏。</p><p> 在學(xué)這門課之前,我沒料想到自己會在這門課上花這么多心思,但我現(xiàn)在覺得,之前所做的一切都是值得的。因?yàn)槲也粌H學(xué)到了很多知識,充實(shí)
122、了自己,還深刻體會到團(tuán)隊(duì)精神,團(tuán)隊(duì)的力量。在這里,我要感謝這門課,是這門課讓我了解到,原來逆境是可以幫助我們成長的;感謝小組里的每一位成員,是當(dāng)家的共同努力,才有了今天的成果!</p><p><b> ——陳艷艷</b></p><p> 為期幾周的Google Android應(yīng)用編程終于完成了!通過這幾周對Google Android 編程的接觸,雖說沒能對其
123、有全面細(xì)致的了解,但是對于大致的開發(fā)框架還是有了初步的了解。包括開發(fā)環(huán)境、文件結(jié)構(gòu)、程序運(yùn)行模式、JAVA語言等,相信這些在以后的學(xué)習(xí)和工作中對我會有幫助。</p><p> 其實(shí),我認(rèn)為對于完成的這個(gè)小的項(xiàng)目來說,重點(diǎn)并不是我學(xué)到了多少知識,因?yàn)橐晕业募夹g(shù)水平和客觀條件講,想要短期掌握一個(gè)相對比較新奇的編程技術(shù)是很難的;重點(diǎn)是我以這個(gè)機(jī)會為平臺,開闊了自身的眼界,了解了當(dāng)下最新的技術(shù),不再拘泥于課本上的知識,
124、另外,通過這次機(jī)會,也鍛煉了我的自學(xué)能力。因?yàn)镚oogle Android 應(yīng)用開發(fā)是近兩年才出現(xiàn)的編程技術(shù),圖書館里關(guān)于這方面的書幾乎沒有,只能到網(wǎng)上去尋找,過濾掉大量無用的文章,提煉到有價(jià)值的信息。此外,由于我本身學(xué)的是C++,所以還要抓緊學(xué)習(xí)JAVA編程,這對于時(shí)間緊迫的我來說是個(gè)不小的挑戰(zhàn)。最后,當(dāng)我和同組的組員一起編寫出能夠流暢運(yùn)行的程序時(shí),自己很有成就感,這也算是一次小小的成功吧。通過這次自主學(xué)習(xí),我認(rèn)識到了一個(gè)人能力的大小
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)專業(yè)畢業(yè)論文(考勤系統(tǒng)軟件設(shè)計(jì))
- 塞曼效應(yīng)計(jì)算機(jī)輔助軟件設(shè)計(jì)論文
- 計(jì)算機(jī)軟件設(shè)計(jì)技術(shù)
- 基于android的背單詞軟件設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)畢業(yè)論文
- 計(jì)算機(jī)軟件設(shè)計(jì)方案模板
- 面向城軌信號系統(tǒng)的安全計(jì)算機(jī)平臺軟件設(shè)計(jì).pdf
- 基于Linux系統(tǒng)的鐵路信號計(jì)算機(jī)聯(lián)鎖安全平臺軟件設(shè)計(jì).pdf
- 計(jì)算機(jī)波形顯示軟件設(shè)計(jì)微機(jī)原理
- 計(jì)算機(jī)核心課程群綜合教學(xué)平臺的軟件設(shè)計(jì)與實(shí)現(xiàn).pdf
- 通風(fēng)機(jī)計(jì)算機(jī)選型軟件設(shè)計(jì).pdf
- 計(jì)算機(jī)軟件工程專業(yè)畢業(yè)論文---基于android平臺的語音朗讀器
- 計(jì)算機(jī)軟件設(shè)計(jì)畢業(yè)論文--企業(yè)管理系統(tǒng)
- 計(jì)算機(jī)光學(xué)元件的混合編程軟件設(shè)計(jì).pdf
- 微型機(jī)械液晶引流計(jì)算機(jī)輔助計(jì)算軟件設(shè)計(jì)本科畢業(yè)設(shè)計(jì)論文
- 計(jì)算機(jī)軟件技術(shù)專業(yè)畢業(yè)論文
- 計(jì)算機(jī)軟件 設(shè)計(jì)論文(范文) (新)
- 計(jì)算機(jī)專業(yè)導(dǎo)論論文
- 基于CBIR技術(shù)的計(jì)算機(jī)拼圖教育軟件平臺設(shè)計(jì).pdf
- 嵌入式實(shí)時(shí)軟件在計(jì)算機(jī)軟件設(shè)計(jì)中的應(yīng)用
- 嵌入式實(shí)時(shí)軟件在計(jì)算機(jī)軟件設(shè)計(jì)中的運(yùn)用
評論
0/150
提交評論