




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、.基于Google android 平臺的軟件設(shè)計目錄1認(rèn)識Google Android41.1什么是Google Android41.2Google Android 的發(fā)展歷程41.3Google Android 的優(yōu)勢42開發(fā)環(huán)境的搭建52.1安裝JDK52.2安裝Eclipse52.3加載ADT62.4添加SDK62.5創(chuàng)建模擬器73Android 系統(tǒng)構(gòu)架83.1Android平臺的核心應(yīng)用程序93.2應(yīng)用程序框架93.3系統(tǒng)庫93.3.1Android運(yùn)行時103.3.2Linux內(nèi)核104創(chuàng)建新工程以及對Android相關(guān)組件的了解104.1.工程結(jié)構(gòu)介紹104.2對相關(guān)組件的了解
2、124.2.1AndroidManifest文件124.2.2Res文件夾124.2.3Assets文件夾124.2.4Src和gen文件夾125界面以及相關(guān)組件的學(xué)習(xí)125.1文本框及按鈕的顯示125.1.1核心代碼125.1.2運(yùn)行結(jié)果135.2Andriod ListView 常用方法135.2.1核心代碼135.2.2運(yùn)行結(jié)果145.3在文本框中輸入數(shù)據(jù),點(diǎn)擊按鈕做出相應(yīng)計算以及顯示提示信息155.3.1核心代碼155.3.2運(yùn)行結(jié)果165.4實現(xiàn)多個activity的用戶界面設(shè)計165.4.1核心代碼165.4.2構(gòu)建UI層175.4.3運(yùn)行結(jié)果176游戲開發(fā)成果展示及相關(guān)技術(shù)說明1
3、86.1進(jìn)入游戲界面186.2關(guān)卡的選擇:196.2.1功能描述:196.2.2技術(shù)實現(xiàn):196.2.3成果展示:196.3第一關(guān)206.3.1功能描述:206.3.2技術(shù)實現(xiàn)(鍵盤綁定)206.3.3成果展示:206.4第二關(guān)226.4.1功能描述:226.4.2技術(shù)實現(xiàn)226.4.3成果展示226.5添加音效246.5.1技術(shù)實現(xiàn)246.6核心功能技術(shù)實現(xiàn)總結(jié)246.6.1不同activity之間的切換246.6.2添加背景音樂246.6.3游戲?qū)崿F(xiàn)用到的其他函數(shù)257體會感受268附錄:階段總結(jié)29*;首都師范大學(xué)信息工程學(xué)院08級1班【摘要】Android是Google公司于2007年
4、11月5日發(fā)布的一個基于Linux 核心的開源手機(jī)平臺作業(yè)系統(tǒng)。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序,這些是移動電話工作所需的全部軟件,是首個為移動終端打造的真正開發(fā)和完整的移動軟件。同時,Android在中國的前景十分廣闊,行業(yè)需求量也很大。此外,Android系統(tǒng)的高級編程語言是Java,對于我們并不陌生?;诖耍覀冞x擇了對Android進(jìn)行研究開發(fā),包括以下幾方面:Android開發(fā)平臺的搭建、其系統(tǒng)構(gòu)架、工程組件以及界面設(shè)計的相關(guān)例子。為了更好的介紹基于該平臺的軟件設(shè)計的原理和開發(fā)過程,我們設(shè)計了一個關(guān)于紙牌游戲的軟件。【關(guān)鍵詞】Android、平臺搭建、系統(tǒng)構(gòu)架、紙牌游戲1 認(rèn)識Go
5、ogle Android1.1 什么是Google AndroidAndroid是一個基于Linux 核心的開源手機(jī)平臺作業(yè)系統(tǒng)。與Windows Mobile、Symbian 等手機(jī)作業(yè)系統(tǒng)處在同一級別。該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件等組成,號稱是首個為移動終端打造的真正開放的移動開發(fā)平臺。從不同角度來說,Android 代表著一個嶄新的開放原始碼作業(yè)系統(tǒng)平臺、一個友善的免費(fèi)應(yīng)用程式開發(fā)環(huán)境、一個與世界各地的程式開發(fā)者,站在相同起跑點(diǎn)上的公平競爭機(jī)會。1.2 Google Android 的發(fā)展歷程Google于2007年11月5日發(fā)布了基于Linux平臺的開源手機(jī)操作系統(tǒng)An
6、droid;2008年9月22日,美國運(yùn)營商T-Mobile USA 在紐約正式發(fā)布第一款使用Android 操作系統(tǒng)的Google 手機(jī)T-Mobile G1;Google 與開放手機(jī)聯(lián)盟合作開發(fā)了Android 移動開發(fā)平臺;Google Android 平臺演變出的OMS 是一種更適合中國手機(jī)用戶群的智能手機(jī)操作系統(tǒng),相信它的市場前景會相當(dāng)樂觀。1.3 Google Android 的優(yōu)勢開放性在優(yōu)勢方面,Android平臺首先就是其開發(fā)性,開發(fā)的平臺允許任何移動終端廠商加入到Android聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個嶄新的平臺也將很快走
7、向成熟。開放性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費(fèi)者和廠商,而對于消費(fèi)者來講,隨大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費(fèi)者將可以用更低的價位購得心儀的手機(jī)。掙脫運(yùn)營商的束縛在過去很長的一段時間,特別是在歐美地區(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終端天生就有網(wǎng)絡(luò)特色,將讓用戶離互聯(lián)網(wǎng)
8、更近。豐富的硬件選擇這一點(diǎn)還是與Android平臺的開放性相關(guān),由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容。不受任何限制的開發(fā)商Android平臺提供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境,不會受到各種條條框框的阻擾,可想而知,會有多少新穎別致的軟件會誕生。無縫結(jié)合的Google應(yīng)用如今叱咤互聯(lián)網(wǎng)的Google已經(jīng)走過10年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺手機(jī)將無縫結(jié)合這些優(yōu)秀的Google服務(wù)。2 開發(fā)環(huán)
9、境的搭建我們從校園網(wǎng)技術(shù)支持平臺ftp:/ 入門與實戰(zhàn)中獲得到了搭建Android開發(fā)環(huán)境所需要的軟件(Java 6 update 16、eclipse java、ADT 0.9.3、Android SDK),完成了環(huán)境的搭建工作。2.1 安裝JDKJDK 是整個Java的核心,包括了Java運(yùn)行環(huán)境、Java工具和Java基礎(chǔ)類庫。JDK是學(xué)好Java的第一步。有可能會有人用到JRE,這里使用的JDK是除了包括JRE的全部內(nèi)容外,還包含編譯、調(diào)試、文檔生成等工具。圖2-1JDK 的安裝與普通軟件的安裝方式相同,這里不再贅述。2.2 安裝EclipseEclipse 是一個開放源代碼的、基于
10、Java 的可擴(kuò)展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。Eclipse 是一個綠色軟件,解壓后可直接使用。雙擊圖標(biāo),進(jìn)入Eclipse。但要注意工作空間存儲位置的選擇。圖2-22.3 加載ADTADT是Android在Eclipse上的開發(fā)工具。圖2-3選擇HelpInstall New Software ,在彈出的對話框上選擇ADD ,再在彈出的對話框中選擇Archive ,瀏覽選擇ADT-0.9.3.zip ,在返回到的Install 對話框中勾選Developer Tools 點(diǎn)擊next至finish。這時彈出“是否重啟Eclipse 的對話框
11、”,選擇YES。2.4 添加SDKSDK(Software Development Kit, 即軟件開發(fā)工具包 )一般是一些被軟件工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。先將SDK包解壓,在重啟后的Eclipse 中選擇重啟后選擇Window preferencesAndroid ,這時會彈出警告。這是因為我們還沒有設(shè)置SDK的原因,點(diǎn)擊OK。選擇Browse 指定到SDK的所在路徑,點(diǎn)擊Apply。這里需要等待SDK 列表的出現(xiàn)才可點(diǎn)擊OK,否則會報錯。2.5 創(chuàng)建模擬器在Eclipse 里選擇WindowAndroid SDK and AVD
12、Manager。圖2-4點(diǎn)擊New 。圖2-5輸入相關(guān)參數(shù),點(diǎn)擊Create AVD 來完成模擬器的創(chuàng)建?;氐缴弦粋€界面之后選中創(chuàng)建的模擬器,點(diǎn)擊Start 來運(yùn)行模擬器。此時會出現(xiàn)如下模擬界面。圖2-6模擬器的啟動時間較長,啟動完全之后模擬界面如下圖:圖2-73 Android 系統(tǒng)構(gòu)架Android作為移動設(shè)備的開發(fā)平臺,其軟件層次結(jié)構(gòu)包括了一個操作系統(tǒng),中間件和應(yīng)用程序。Android平臺由應(yīng)用程序、應(yīng)用程序框架、Android運(yùn)行時、庫以及Linux內(nèi)核共5部分組成,如下圖所示:圖3-13.1 Android平臺的核心應(yīng)用程序Android的發(fā)布時會協(xié)同一些應(yīng)用程序發(fā)布,諸如Home、
13、聯(lián)系人、電話、瀏覽器等等,這些應(yīng)用程序都是以java程序語言編寫,也可以用自己編寫的程序來替代。3.2 應(yīng)用程序框架圖3-2該應(yīng)用程序架構(gòu)是為簡化元件重用而設(shè)計,應(yīng)用程序可以發(fā)布它的功能塊并可以被其他任何應(yīng)用程序所使用,使用者用同樣的機(jī)制來置換元件。3.3 系統(tǒng)庫Android 包含一組系統(tǒng)元件使用的C/C+函數(shù)庫,使用者透過應(yīng)用程序框架使用這些功能。部分函數(shù)庫如下:圖3-33.3.1 Android運(yùn)行時Android運(yùn)行時由核心庫和Dalvik虛擬機(jī)兩部分組成。每一個Android應(yīng)用程序執(zhí)行獨(dú)立的Dalvik虛擬機(jī)。3.3.2 Linux內(nèi)核圖3-44 創(chuàng)建新工程以及對Android相關(guān)
14、組件的了解4.1 .工程結(jié)構(gòu)介紹為了更清楚各個部分的命名,做了如下試驗,工程文件的配置如下:Project name 設(shè)置為project nameApplication name 設(shè)置為applicationnamePackage name 設(shè)置為 Create Activity 設(shè)置為createactivity這樣設(shè)置的目的在于跟蹤各個配置的去向。圖4-1由上圖可見Package name分屬于src和gen文件之下,分別包含createactivity.java文件和R.java文件。R.Java文件下文會對其內(nèi)容作出講解,而createactivity.java文件是用戶自己創(chuàng)建的文
15、件,它是Activity的Activity子類,用戶可以在其中添加或修改代碼。另外我們創(chuàng)建的applicationname文件可以在模擬器視圖中找到。如下圖所示:圖4-2同樣用戶所創(chuàng)建的新的activity子類名稱也會出現(xiàn)在新的應(yīng)用程序之中。圖4-34.2 對相關(guān)組件的了解4.2.1 AndroidManifest文件AndroidManifest.xml是每個Android程序中所必需的,它位于Android工程的根目錄中,描述了package中的全局?jǐn)?shù)據(jù),包括package中的組件(Activities、Services等)以及他們各自的實現(xiàn)類,各種能被處理的數(shù)據(jù)和啟動位置等。Manife
16、st文件的主要功能是聲明應(yīng)用程序的組件。例如:一個Activity必須要有一個<Activity>標(biāo)記對應(yīng),無論它是供外部使用還是只是用于自己的包中。如果一個Activity沒有標(biāo)記對應(yīng),它將不能運(yùn)行。<activity android:name=".createactivity" android:label="string/app_name">上述兩個語句就是Activity聲明。Name屬性指定了實現(xiàn)這個Activity的Activity子類。Label屬性值指向此Activity要展示給用戶的標(biāo)簽資源。注意事項:幾乎所有的A
17、ndroidManifest.xml文件都會在其第一個元素中包含一個命名空間的聲明xmlns:android=4.2.2 Res文件夾Res文件夾包含的是整個應(yīng)用可以使用的資源,它包含3個子文件夾,分別為drawable、layout和values。Drawable文件夾包括本應(yīng)用所需的圖片文件和所需圖片文件的引用。Layout文件夾下目前僅僅有一個xml文件(main.xml),再編寫應(yīng)用界面的布局時引用此文件的內(nèi)容。根據(jù)應(yīng)用程序的需要還可以在layout中加入各種view。Values文件夾下存儲了一個xml文件(srings.xml),這個文件的作用是存儲本工程使用的string類型全局
18、變量。4.2.3 Assets文件夾用來存放音頻、視頻等多媒體資源文件。我們希望能在以后對它有更多的了解。4.2.4 Src和gen文件夾圖4-4這兩個文件夾中包含了工程的所有java代碼資源,至少要包含2個文件,一個是activity的java 文件,另一個是R.java文件。R.java是Android-Eclipse自動生成的。這個文件包含了drawable、layout、values文件夾中的資源信息,以資源id的形式具體展現(xiàn)。我們不能對它進(jìn)行修改。5 界面以及相關(guān)組件的學(xué)習(xí)5.1 文本框及按鈕的顯示5.1.1 核心代碼<EditText 設(shè)置文本區(qū) android:layout
19、_width="fill_parent" 設(shè)置寬度和高度 android:layout_height="wrap_content" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="確定" />為按鈕設(shè)置名稱,屏幕上的確定按鈕<Buttonandroid:layout_width="wrap_content"andr
20、oid:layout_height="wrap_content"android:text="取消" />為按鈕設(shè)置名稱,屏幕上的取消按鈕</LinearLayout><EditText android:text="請輸入姓名學(xué)號,以#鍵結(jié)束"設(shè)置EditText現(xiàn)實的內(nèi)容 android:id="+id/EditText01" android:layout_width="fill_parent" android:layout_height="wrap_conte
21、nt"></EditText></LinearLayout>5.1.2 運(yùn)行結(jié)果圖5-15.2 Andriod ListView 常用方法5.2.1 核心代碼Xml代碼<ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="+id/ListView01" /> 定義ListView每個條目的Layout,用RelativeLayout實現(xiàn)在Activi
22、ty里面調(diào)用和加入Listener,具體見注釋:Java部分代碼list.setAdapter(listItemAdapter); /添加并且顯示list.setOnItemClickListener(new OnItemClickListener() public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) setTitle("點(diǎn)擊第"+arg2+"個項目"); );/添加點(diǎn)擊 /添加長按點(diǎn)擊 list.setOnCreateContextMen
23、uListener(new OnCreateContextMenuListener() public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) menu.setHeaderTitle("長按菜單-ContextMenu"); menu.add(0, 0, 0, "彈出長按菜單0"); menu.add(0, 1, 0, "彈出長按菜單1"); ); 5.2.2 運(yùn)行結(jié)果圖5-2圖5-35.3 在文本框中輸入數(shù)據(jù),點(diǎn)擊按鈕做出相
24、應(yīng)計算以及顯示提示信息5.3.1 核心代碼public class Bmi extends Activity public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main); /按鈕監(jiān)聽者Button = (Button)findViewById(R.id.submit);button.setOnClickListener(calcBMI); /強(qiáng)制將取得的資源型別設(shè)成"button"型別 private OnCl
25、ickListener calcBMI = new OnClickListener()public void onClick(View v) DecimalFormat nf = new DecimalFormat("0.00"); EditText fieldheight = (EditText)findViewById(R.id.height); EditText fieldweight = (EditText)findViewById(R.id.weight); /透過findViewById 方法,從資源檔中取得對應(yīng)的文字欄位元件double BMI = weigh
26、t / (height * height);/計算BMI值TextView result = (TextView)findViewById(R.id.result);/將結(jié)果顯示到屏幕上result.setText("Your BMI is "+nf.format(BMI);TextView fieldsuggest = (TextView)findViewById(R.id.suggest);/給出建議<EditText android:id="+id/height"android:layout_width="fill_parent&q
27、uot;android:layout_height="wrap_content"android:numeric="integer" 僅允許輸入整數(shù)數(shù)字android:text="" /> 指定EditText 界面元件預(yù)設(shè)顯示的文字(數(shù)字)。Strings.xml源程序<string name="app_name">BMI</string><string name="height">身高(cm)</string><string name
28、="weight">體重(kg)</string><string name="bmi_btn">計算BMI 值</string><string name="bmi_result">你的BMI 值是</string></resources>在values下創(chuàng)建advice文件,氣源程序為 <string name="advice_light">你該多吃點(diǎn)</string><string name="a
29、dvice_average">體型很棒喔</string><string name="advice_heavy">你該節(jié)食了</string>5.3.2 運(yùn)行結(jié)果圖5-45.4 實現(xiàn)多個activity的用戶界面設(shè)計5.4.1 核心代碼通過Intent這個類能夠使我們從本頁面跳轉(zhuǎn)到ActivityRelativeLayout這個類里面Intent intent1 =new Intent(ActivityMain.this,ActivityRelativeLayout.class); startActivity(intent
30、1); public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); button0 = (Button) findViewById(R.id.button0); button0.setOnClickListener(listener0); /新建一個跳轉(zhuǎn)到的activity public class ActivityRelativeLayout extends Activity public void onCreate(Bun
31、dle savedInstanceState) super.onCreate(savedInstanceState); /通過這個方法顯示:relative_layout.xml配置的界面 setContentView(R.layout.relative_layout); 5.4.2 構(gòu)建UI層main.xml中配置<Button android:id="+id/button0" android:layout_width="wrap_content" android:layout_height="wrap_content" an
32、droid:text="我來了" /> 效果是:一個按鈕,按鈕上面文字是:“我來了”配置需要轉(zhuǎn)到的頁面的xml配置文件 <TextView android:id="+id/label" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="請輸入用戶名:" /> 將兩個界面的Actity的java類都添加到android系統(tǒng)中配置一下默認(rèn)的一個文件:Androi
33、dManifest.xml<activity android:name="ActivityMain"android:label="string/app_name"><intent-filter><action android:name="ent.action.MAIN" /><category android:name="ent.category.LAUNCHER" /></intent-filter></
34、activity><activity android:name="ActivityRelativeLayout"></activity>5.4.3 運(yùn)行結(jié)果圖5-5圖5-66 游戲開發(fā)成果展示及相關(guān)技術(shù)說明6.1 進(jìn)入游戲界面圖6-16.2 關(guān)卡的選擇:6.2.1 功能描述:關(guān)卡選擇為進(jìn)入系統(tǒng)的主界面,在這個界面中用戶可以進(jìn)行關(guān)卡選擇,系統(tǒng)共分為兩關(guān)。6.2.2 技術(shù)實現(xiàn):在這個模塊中界面上的兩個按鈕和另外的兩個java文件進(jìn)行連接。6.2.3 成果展示:圖6-2圖6-36.3 第一關(guān)6.3.1 功能描述:猜猜哪張是紅桃A,每次游戲有三張紙牌,
35、隨機(jī)排列,用戶點(diǎn)擊紙牌進(jìn)行翻牌,顯示答案,對于用戶選擇的答案進(jìn)行高亮顯示,系統(tǒng)會提示用戶選擇正確或錯誤,當(dāng)用戶選擇正確是,提示笑臉,錯誤提示哭臉。6.3.2 技術(shù)實現(xiàn)(鍵盤綁定)將牌面的圖片用ImageButton.setImageResource()方法來實現(xiàn),減少了代碼的復(fù)雜性,增加了可讀性。6.3.3 成果展示:圖6-4圖6-5圖6-66.4 第二關(guān)6.4.1 功能描述:系統(tǒng)從牌庫中隨機(jī)抽取六張撲克牌,用戶點(diǎn)擊紙牌猜牌面大小。對于答案用高亮現(xiàn)實,系統(tǒng)提示用戶答案是否正確。首先在界面設(shè)計時添加了一個靜態(tài)文本視圖,6個圖片視圖,1個按鈕。6.4.2 技術(shù)實現(xiàn)對應(yīng)于類中就有6個圖片視圖的私有成
36、員和一個按鈕的私有成員,另外還有一個int類型的圖片管理集的私有成員和一個用于判斷的int 型變量a等。然后通過onCreate函數(shù)將圖片視圖和按鈕與界面變量進(jìn)行結(jié)合。其中調(diào)用了一個Randon()函數(shù)將紙牌順序進(jìn)行隨機(jī)排列。之后設(shè)置了一個界面監(jiān)聽函數(shù),并通過一個switch對用戶選擇的所有可能情況進(jìn)行設(shè)置。6.4.3 成果展示圖6-7圖6-8圖6-96.5 添加音效6.5.1 技術(shù)實現(xiàn)先添加一個基于service的類,在該類內(nèi)添加音效文件和開始、結(jié)束的條件預(yù)定。然后注意在AndroidManifest.xml文件中添加新建項的相關(guān)內(nèi)容。這些工作都完成之后就可以在需要音效的地方“開啟服務(wù)”。語
37、言如下:private Intent intent = new Intent("com.angel.Android.MUSIC");startService(intent);6.6 核心功能技術(shù)實現(xiàn)總結(jié)6.6.1 不同activity之間的切換Intent intent = new Intent(); intent.setClass(CardGame.this, game_1.class); startActivity(intent); /調(diào)用一個新的ActivityCardGame.this.finish();/關(guān)閉原本的Activity6.6.2 添加背景音樂定義一個基
38、于服務(wù)的類,用于管理音樂文件。/ R.drawable.music是資源文件,MP3格式的mediaPlayer = MediaPlayer.create(this, R.drawable.music);mediaPlayer.setLooping(false);/是否循環(huán)播放mediaPlayer.start();在需要調(diào)用音樂的地方添加如下代碼:private Intent intent = new Intent("com.angel.Android.MUSIC");startService(intent);6.6.3 游戲?qū)崿F(xiàn)用到的其他函數(shù)Switch-case在游戲
39、的實現(xiàn)中主要用了點(diǎn)擊監(jiān)聽的函數(shù),并用switch-case語句判斷點(diǎn)擊的目標(biāo)。switch (v.getId() case R.id.mImage11:SetImage(0,ImageButton1);break;case R.id.mImage12:SetImage(1,ImageButton2);break;case R.id.mImage13:SetImage(2,ImageButton3);break;default:break;SetImageSetImage()函數(shù)則是一個響應(yīng)函數(shù),主要利用if語句來判斷響應(yīng)的方式。if(myImagetemp=R.drawable.d14)/是否
40、與預(yù)定值相同myImageView4.setImageResource(frame); /相同,裝載笑臉并提示正確Toast.makeText(game_1.this,"恭喜你猜對了",Toast.LENGTH_SHORT).show();myImageView4.setAlpha(255);elsemyImageView4.setImageResource(frame1); /不相同,裝載哭臉并提示錯誤Toast.makeText(game_1.this,"對不起你猜錯了",Toast.LENGTH_SHORT).show();myImageView4
41、.setAlpha(255);Randon()函數(shù)Randon()函數(shù)用來隨機(jī)變換牌的位置的。private void Randon() for(int i=0;i<3;i+) int temp=myImagei;/記錄當(dāng)前myImagei的值 int s=(int)(Math.random()*2);/在myImage中產(chǎn)生隨機(jī)數(shù) myImagei=myImages; myImages=temp; /將產(chǎn)生的隨機(jī)數(shù)對應(yīng)的值與原值交換本隨機(jī)函數(shù)并不是我們平常想象的產(chǎn)生隨機(jī)數(shù),得到隨機(jī)牌的思路。而是利用產(chǎn)生的隨機(jī)數(shù),交換牌,讓每次猜牌之前都不是之前的牌序的思路。AndroidManifes
42、t.xml文件配置最后不要忘記在AndroidManifest.xml文件中添加如下代碼:/添加MusicServer的內(nèi)容<service android:name=".MusicServer"><intent-filter><action android:name="com.angel.Android.MUSIC"/><category android:name="ent.category.default" /></intent-filter><
43、;/service>/添加第一關(guān)游戲的類的內(nèi)容<activity android:name="testGame"></activity>/添加第二關(guān)游戲的類的內(nèi)容<activity android:name="game_1"></activity>7 體會感受上文所展示的是我們組的學(xué)習(xí)過程,從不同的方面對Android的研究,最終形成了我們的小游戲。游戲雖小,但是凝聚了我們六個人不懈的學(xué)習(xí)與探索的精神。由于時間的限制,對于Android的學(xué)習(xí),我們還不是很深入,但是在這個學(xué)習(xí)過程中,我們學(xué)到的不僅是A
44、ndroid的知識本身,更認(rèn)識到團(tuán)隊合作的重要性,同時每個人解決問題的能力也提高了。下面是我們每一個人的收獲體會。一個多月的合作即將進(jìn)入尾聲,老實說心中有些不舍,也有些不甘。索性的是我們達(dá)到了既定的目標(biāo),可喜的是不管在Google Android 的探索方面,還是在團(tuán)隊合作方面我們都有了很大的進(jìn)步。接下來我想就這兩個方面說說我的體會。在剛拿到這個題目的時候,我們有些茫然。因為在這之前根本沒有聽說過這個詞,當(dāng)然這只能說我們的信息太閉塞了。于是我開始從三個渠道去慢慢接近Android :1、網(wǎng)絡(luò)。我從網(wǎng)絡(luò)中了解到Android 的發(fā)布是在2007年底,而現(xiàn)在已是2010年底。它的發(fā)展已經(jīng)有了近3年
45、的時間,想必有很多的資料,再一次感到自己消息的閉塞。2、書籍。我到學(xué)校的圖書館轉(zhuǎn)了一圈,令我很詫異的是關(guān)于Android 的書籍還屬于新書區(qū),借閱相當(dāng)麻煩。3、學(xué)長、學(xué)姐們的論文。在了解了Android 近些年來的發(fā)展之后,我們開始著手平臺的搭建。由于學(xué)長、學(xué)姐們論文的幫助,我們的平臺搭建并沒有遇到太大的困難。然后我們開始進(jìn)一步地去了解 Android 的系統(tǒng)框架和他的文件構(gòu)成,為后面的開發(fā)打好基礎(chǔ)。我們使用的方法是通過不同的命名方式跟蹤文件命名去向,借助資料了解它的工作機(jī)制。在這些工作完成之后,我們就開始動手添加代碼,更改界面,去實現(xiàn)一個個小的功能。準(zhǔn)備工作結(jié)束之后,我們就著手開始實際的設(shè)計
46、。圍繞我們設(shè)計的主題,我們將一個個小的功能進(jìn)行糅合、修改,達(dá)到了我們既定的設(shè)計目標(biāo)。很抱歉,啰啰嗦嗦說了很多,但是這就是我們真實得開發(fā)過程。然后我想說說我們這個團(tuán)隊。從一開始組隊,就注定了隊里沒有一個人是可以躲避任務(wù)的。所有的人都從零開始,把學(xué)到的與大家一起交流,把不懂的與大家一起討論。在合作的過程中有摩擦、有不快,這都是再正常不過的事兒。但我們卻從中學(xué)會了反思,學(xué)會了體諒。首先我想說說在這段時間里我發(fā)現(xiàn)的自己的缺點(diǎn)。1、一開始有些親力親為,會讓對方產(chǎn)生失落感。開始的階段論文,我是讓組員們寫,然后我再從頭到尾改。往往改出的論文已經(jīng)沒有了當(dāng)初的模樣,這樣會讓他們覺得沒有被認(rèn)同,會有失落。2、交流
47、的目的不明確,白費(fèi)功夫。在交代任務(wù)時,有些含糊不清,導(dǎo)致結(jié)果的不正確,浪費(fèi)了大家的時間。3、三分鐘熱情。這是最不能有的,但是在一小段時間里我確實失去了興趣,還好有組員們的督促??偨Y(jié)完我的缺點(diǎn)之后我還有夸夸我的組員們。他們非常的努力,非常的有合作意識。就像我之前在文檔中寫的一樣:“我有這么努力、這么不分你我的組員,我真的很高興,也很幸福。也許我們做出來的東西很稚嫩,也許我們還有很多需要改進(jìn)的地方,但是作為一個臨時成立的團(tuán)隊,我們做到了團(tuán)隊協(xié)作,做到了共同進(jìn)步。沒有比這個更加可貴的了。”最后感謝這段時間來大家的配合,感謝這段時間來大家的不離不棄,感謝最后一次說話,說得有點(diǎn)兒多,但都是真心話。李玲經(jīng)
48、過七周的Google Android的學(xué)習(xí),我收獲了很多。首先是知識上的學(xué)習(xí)。對于Google Android,最初對它很陌生,甚至不知道該從何處開始研究。但是,通過在網(wǎng)上查找的資料以及借閱的圖書,使我發(fā)現(xiàn),它就在我們的生活中,而且是未來發(fā)展前景很不錯的一個領(lǐng)域。人只有不斷探索未知領(lǐng)域,才能提高自己的能力。所以,從零開始,腳踏實地,逐步研究。從搭建實驗環(huán)境到添加一個按鈕、一個文本框再到最終可以實現(xiàn)我們小組的小游戲,這七周的學(xué)習(xí)在我的腦海里留下的不僅僅是關(guān)于Google Android的知識,更多的是對新知識的研究與思考的這個過程。只有自己解決的問題才印象深刻,這句話說得很對,這次的學(xué)習(xí)中,雖然
49、遇到了些困難,但是,只要自己肯仔細(xì)思考,多花些時間研究,就一定能解決問題,并且對這樣的問題會隨時留意。在Android的學(xué)習(xí)中,除了知識的豐富,眼界的拓寬,也使我對團(tuán)隊合作有了更深的體會。在一個團(tuán)隊中,要學(xué)會站在他人的角度上看問題,進(jìn)而才能從多方面理解問題;在一個團(tuán)隊中,成員要多溝通,才能合作的更融洽,更有利于項目的進(jìn)展。再大的困難,除以一個團(tuán)隊,也是小問題;在小的成就,乘以一個團(tuán)隊,就是大進(jìn)步。團(tuán)隊的合作不僅可以使自己看到他人身上的閃光點(diǎn),進(jìn)行學(xué)習(xí),而且還能看到自己的不足,在比較中學(xué)習(xí),才能取得更大的進(jìn)步??傊?,這次的學(xué)習(xí),不但充實了新知識,同時也激發(fā)了自己對新事物的興趣,以及提高了自己對新
50、東西的學(xué)習(xí)研究能力。陳艷玲從確定題目,到現(xiàn)在的成果展示,我歷經(jīng)了七周時間的開發(fā)過程。在這個過程中我遇到了很多的困難和問題,現(xiàn)在回想起來感覺這是一個成長的過程,當(dāng)問題解決時的那種成就感讓人難忘。在這個過程中我不斷的發(fā)現(xiàn)問題,不斷的解決問題,隨時對項目進(jìn)行規(guī)劃和設(shè)計,和同組人交流合作,使我迅速的成長。做Google Android代碼開發(fā),我是從零開始起步的,由最開始的了解Google Android具體是什么,到安裝軟件,搭建平臺,再到后來的下載視頻進(jìn)行開發(fā)的前期準(zhǔn)備,然后是開發(fā)的總體規(guī)劃,實踐規(guī)劃的目標(biāo),我們每一步都穩(wěn)扎穩(wěn)打,對開發(fā)中的方法有了一個具體的框架和結(jié)構(gòu)。做開發(fā)設(shè)計和構(gòu)思很重要,要有
51、友好的人機(jī)界面,這樣對于使用者來說更方便更快捷。在開發(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ā)效果的界面更成熟。通過做這個項目我不僅僅是擴(kuò)展了知識,更重要的是我對自己有了新的認(rèn)識,我看到了另外的一個自己,同時做事情更有信心了,我想這對我今后的發(fā)展是尤為重要的。陳卓一學(xué)
52、期的課程已經(jīng)結(jié)束了,通過這學(xué)期的學(xué)習(xí),讓我有很多感慨。我覺得,與其說網(wǎng)絡(luò)工程是一門課,倒不如說是一個實踐的戰(zhàn)場,把我們從理論層次帶到了實踐的列車,讓我們看到了實實在在的東西。在項目沒有開始做之前,因為我是學(xué)java的,所以我信心滿滿,覺得會輕松一些,但開始做后,我發(fā)現(xiàn),完全不是那么回事,一切都要從頭學(xué)起,做起來也很吃力,從一開始的界面搭建,到學(xué)習(xí)系統(tǒng)框架的建立,到嘗試添加一些小的組件(一個按鈕或一個文本框或一段話),再到后來的項目開發(fā)。這些都是基于代碼的閱讀,在閱讀完代碼后,對代碼進(jìn)行部分修改、調(diào)試,真是讓我體會到牽一發(fā)動全身的感覺了。為了代碼的實現(xiàn),我不斷的摸索,不斷的查閱資料,不斷的修改、
53、調(diào)試,有時甚至?xí)驗橐粋€小小的錯誤而把程序改得面目全非??梢哉f,為了這個游戲的實現(xiàn),我們是歷盡了千辛萬苦。為了這個開發(fā)項目,我們每周都會拿出一天多的時間學(xué)習(xí)探究關(guān)于Android的知識,在不斷的學(xué)習(xí)探究中進(jìn)行實踐。終于黃天不負(fù)有心人,我和我們組令一名同學(xué)一起完成了游戲的第一關(guān)的開發(fā),在這一關(guān)中我們實現(xiàn)了游戲整體背景和牌面背景的設(shè)置、選牌功能、按鈕確定功能、根據(jù)相應(yīng)答案顯示不同圖片的功能、鍵盤綁定功能。我覺得在這些功能的實現(xiàn)中,最讓我覺得有困難的就是鍵盤綁定功能,查閱很多資料發(fā)現(xiàn),都是給每個按鍵添加監(jiān)聽者,但我又決定那樣很麻煩,而且那些代碼讀起來也很難理解,當(dāng)時我感到絕望,對自己沒有了信息。但是
54、,在我一次調(diào)試過程中,偶然發(fā)現(xiàn)按鈕是可以被鍵盤控制的,我便想到了獎牌面放到按鈕上的想法,我便這樣做了,結(jié)果真的讓我很是興奮,鍵盤綁定功能真的實現(xiàn)了,那是我體會到了絕處逢生的感覺。這幾周的開發(fā)過程,真是讓我的心情跌宕起伏。在學(xué)這門課之前,我沒料想到自己會在這門課上花這么多心思,但我現(xiàn)在覺得,之前所做的一切都是值得的。因為我不僅學(xué)到了很多知識,充實了自己,還深刻體會到團(tuán)隊精神,團(tuán)隊的力量。在這里,我要感謝這門課,是這門課讓我了解到,原來逆境是可以幫助我們成長的;感謝小組里的每一位成員,是當(dāng)家的共同努力,才有了今天的成果!陳艷艷為期幾周的Google Android應(yīng)用編程終于完成了!通過這幾周對G
55、oogle Android 編程的接觸,雖說沒能對其有全面細(xì)致的了解,但是對于大致的開發(fā)框架還是有了初步的了解。包括開發(fā)環(huán)境、文件結(jié)構(gòu)、程序運(yùn)行模式、JAVA語言等,相信這些在以后的學(xué)習(xí)和工作中對我會有幫助。其實,我認(rèn)為對于完成的這個小的項目來說,重點(diǎn)并不是我學(xué)到了多少知識,因為以我的技術(shù)水平和客觀條件講,想要短期掌握一個相對比較新奇的編程技術(shù)是很難的;重點(diǎn)是我以這個機(jī)會為平臺,開闊了自身的眼界,了解了當(dāng)下最新的技術(shù),不再拘泥于課本上的知識,另外,通過這次機(jī)會,也鍛煉了我的自學(xué)能力。因為Google Android 應(yīng)用開發(fā)是近兩年才出現(xiàn)的編程技術(shù),圖書館里關(guān)于這方面的書幾乎沒有,只能到網(wǎng)上去
56、尋找,過濾掉大量無用的文章,提煉到有價值的信息。此外,由于我本身學(xué)的是C+,所以還要抓緊學(xué)習(xí)JAVA編程,這對于時間緊迫的我來說是個不小的挑戰(zhàn)。最后,當(dāng)我和同組的組員一起編寫出能夠流暢運(yùn)行的程序時,自己很有成就感,這也算是一次小小的成功吧。通過這次自主學(xué)習(xí),我認(rèn)識到了一個人能力的大小不在于有多少知識,而在于堅忍不拔的意志和對知識的渴望,自身的努力是最重要的。在網(wǎng)上對Android編程的大量搜索,我發(fā)現(xiàn)Android的編程有著相當(dāng)光明的前景,應(yīng)用的范圍也很廣,覺得這是一個不錯的發(fā)展方向。以后打算對Android編程再進(jìn)行更細(xì)致深入的研究,爭取能成為自己的熟練技能。吳雄飛時間總是在不經(jīng)意間溜走,不
57、知不覺,這個學(xué)期已經(jīng)快要結(jié)束了,網(wǎng)絡(luò)工程實踐這門課也要結(jié)束了,而這份總結(jié)也是我們最后一次上交的個人總結(jié)了。一個多月的時間不算是長,卻給我留下了非常深刻的記憶。在這一個多月的時間里,我們小組成員之間共同協(xié)作,共同討論,互相鼓勵,對Android進(jìn)行了深入的探索,并且完成了我們設(shè)計的手機(jī)游戲的開發(fā)。我們最初對Android的認(rèn)識只是知道開發(fā)語言是JAVA語言,等到安裝好開發(fā)環(huán)境之后才發(fā)現(xiàn)和我們以前用到的JAVA還是有很大的差別的,最主要的是布局文件并不寫到JAVA類中,而是通過ID進(jìn)行連接的,在開發(fā)階段最常間的錯誤就是兩個文件不能連接成功,導(dǎo)致整個程序都不能運(yùn)行,其次就是Android中大量的源文件給我們的設(shè)計帶來了很大的困難,我們查閱書籍,找了很多相關(guān)資料才弄明白每種文件的作用。通過查閱書籍我也發(fā)現(xiàn),Android目前還算是一種比較新的知識,包括圖書館里的資料也都是屬于新書范圍。所以我們能供我們研究的資料并不是特別多,而且很多的資料都是介紹性的,并沒有對Android進(jìn)行深入的研究。為此,我們只有自己探索,每周,小組人員都要開會,共同討論總結(jié),每個人都在這個題目上付出了很多心血。終于我們的辛苦得到了回報,我們成功的完成了一個有兩個個關(guān)卡的手機(jī)游戲,我小組的另外
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高一第3章數(shù)學(xué)試卷
- 汾陽6年級數(shù)學(xué)試卷
- 肋骨骨折術(shù)后護(hù)理
- 2024年11月浙江海鹽湖商村鎮(zhèn)銀行股份有限公司招考人員筆試歷年參考題庫附帶答案詳解
- 2025至2030乘用車行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2024年南充市順慶區(qū)和平路街道社區(qū)衛(wèi)生服務(wù)中心招聘筆試真題
- 2025至2030草藥和有機(jī)睫毛膏行業(yè)市場深度研究與戰(zhàn)略咨詢分析報告
- 福清市初三數(shù)學(xué)試卷
- 分?jǐn)?shù)乘法五下數(shù)學(xué)試卷
- 高考新教材數(shù)學(xué)試卷
- 社會語言學(xué)視角下網(wǎng)絡(luò)流行用語研究
- 《拍賣概論》考試題庫(精煉版)
- DL-T5434-2021電力建設(shè)工程監(jiān)理規(guī)范
- 設(shè)計投標(biāo)服務(wù)方案
- “一帶一路”倡議與國際合作課件
- 貨物供應(yīng)方案及運(yùn)輸方案
- 中醫(yī)養(yǎng)生健康小妙招的課件
- 拉鏈采購合同
- 紀(jì)檢監(jiān)察大數(shù)據(jù)平臺建設(shè)方案
- 09J202-1 坡屋面建筑構(gòu)造(一)-2
- 2024年山東兗礦能源集團(tuán)股份有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論