基于Android計算器功能的實現(xiàn)畢業(yè)設(shè)計.doc_第1頁
基于Android計算器功能的實現(xiàn)畢業(yè)設(shè)計.doc_第2頁
基于Android計算器功能的實現(xiàn)畢業(yè)設(shè)計.doc_第3頁
基于Android計算器功能的實現(xiàn)畢業(yè)設(shè)計.doc_第4頁
基于Android計算器功能的實現(xiàn)畢業(yè)設(shè)計.doc_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于Android計算器功能的實現(xiàn)摘要隨著移動通信技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,手機(jī)系統(tǒng)發(fā)生了巨大的變化,從進(jìn)行簡單通話功能的非智能手機(jī)到現(xiàn)在集上網(wǎng)、聊天、收發(fā)郵件、視屏電話會議等各種服務(wù)于娛樂為一身的智能手機(jī)系統(tǒng)。由Google公司牽頭眾多實力雄厚的軟硬件廠商加盟成立了OMS聯(lián)盟,并推出的Android平臺手機(jī)系統(tǒng)。作為時代的新生兒,Android手機(jī)操作平臺有著得天獨厚的優(yōu)勢廣闊的發(fā)展前景。本文正是基于Android平臺開發(fā)的計算器。論文主要闡述以面向?qū)ο蟮某绦蜷_發(fā)語言eclipse為開發(fā)工具, 設(shè)計并實現(xiàn)基于Android的計算器。論文首先介紹了Android開發(fā)平臺和環(huán)境以及Android 工程的重要部分,其次對計算器系統(tǒng)和程序進(jìn)行了分析和設(shè)計,再次對計算器進(jìn)行了系統(tǒng)的實現(xiàn),并對系統(tǒng)進(jìn)行了嚴(yán)格的驗證,最后本文對所做工作進(jìn)行了總結(jié)。關(guān)鍵詞:手機(jī),Android,用戶界面,計算器 THE CALCULATOR FUNCTION REALIZATION BASED ON ANDROIDABSTRACTWith the development of mobile communication technology and network technology, great changes have taken place on the mobile phone system. The original mobile phone only has the functions of communication and Smartphone has the functions of internet, chat, video conferencing and other services and entertainment. Android mobile phone platform which was developed by Google Company and many equipment manufacturers of hardware and software vendors, as the era of neonatal has a unique advantage and prospects for development. This article is based on the Android platform calculator. The thesis describes object-oriented programming language eclipse development tools, design and implement a calculator based on the Android. The paper first introduces the Android development platform and environment as well as an important part of the Android project, followed by the calculator systems and procedures analysis and design, the realization of the system once again the calculator, and strict verification, Finally, a summary of the work done.Key words: mobile phone, Android, UI, calculator畢業(yè)設(shè)計(論文)原創(chuàng)性聲明和使用授權(quán)說明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設(shè)計(論文),是我個人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別加以標(biāo)注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過的研究成果,也不包含我為獲得 及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過的材料。對本研究提供過幫助和做出過貢獻(xiàn)的個人或集體,均已在文中作了明確的說明并表示了謝意。作 者 簽 名: 日 期: 指導(dǎo)教師簽名: 日期: 使用授權(quán)說明本人完全了解 大學(xué)關(guān)于收集、保存、使用畢業(yè)設(shè)計(論文)的規(guī)定,即:按照學(xué)校要求提交畢業(yè)設(shè)計(論文)的印刷本和電子版本;學(xué)校有權(quán)保存畢業(yè)設(shè)計(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學(xué)校可以采用影印、縮印、數(shù)字化或其它復(fù)制手段保存論文;在不以贏利為目的前提下,學(xué)??梢怨颊撐牡牟糠只蛉績?nèi)容。作者簽名: 日 期: 學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻(xiàn)的個人和集體,均已在文中以明確方式標(biāo)明。本人完全意識到本聲明的法律后果由本人承擔(dān)。作者簽名: 日期: 年 月 日學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán) 大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。涉密論文按學(xué)校規(guī)定處理。作者簽名:日期: 年 月 日導(dǎo)師簽名: 日期: 年 月 日目 錄1 引言11.1 課題背景及意義11.1.1 課題背景11.1.2 課題意義11.2 智能手機(jī)平臺系統(tǒng)21.3 課題來源32 基于Android平臺計算器相關(guān)技術(shù)概述42.1 Android手機(jī)平臺52.1.1 Android起源及優(yōu)勢52.1.2 Android體系結(jié)構(gòu)52.1.3 Android平臺功能特征72.2 Android SDK介紹92.3 XML技術(shù)102.4 JNI技術(shù)113 基于Android平臺計算器設(shè)計123.1 系統(tǒng)的總體設(shè)計123.2 程序流程和系統(tǒng)功能設(shè)計133.2.1 程序流程設(shè)計133.2.2 系統(tǒng)功能設(shè)計143.3基于Android平臺系統(tǒng)具體設(shè)計153.3.1 總體模塊詳細(xì)設(shè)計153.3.2 輸入模塊詳細(xì)設(shè)計163.3.3 顯示模塊詳細(xì)設(shè)計163.3.4 計算模塊詳細(xì)設(shè)計174 計算器系統(tǒng)實現(xiàn)184.1 Android應(yīng)用程序構(gòu)成184.2 Android應(yīng)用系統(tǒng)文件結(jié)構(gòu)194.3 構(gòu)建Android應(yīng)用程序用戶界面214.3.1 Android應(yīng)用程序界面組件214.3.2 Android應(yīng)用系統(tǒng)界面組件224.3.3 Android用戶界面的實現(xiàn)244.4 計算模塊的實現(xiàn)284.5 計算器演示305 結(jié)論32謝辭33參考文獻(xiàn)34附錄1:36附錄2:38V1 引言1.1 課題背景及意義1.1.1 課題背景隨著社會的發(fā)展,經(jīng)濟(jì)水平的提高,手機(jī)越來越普及。截止到2010年,中國手機(jī)用戶數(shù)量將從2007年的5.40億增長到7.38億1。同時伴隨著移動互聯(lián)網(wǎng)技術(shù)的發(fā)展,手機(jī)的功能也變得越來越豐富。從原來只具有簡單通信功能的非智能手機(jī)到現(xiàn)在具有手機(jī)操作系統(tǒng),除通話功能以外,還集上網(wǎng)、聊天、炒股、收發(fā)郵件等功能于一身的智能手機(jī)系統(tǒng)。智能手機(jī)2具有獨立的操作系統(tǒng),像個人電腦一樣支持用戶自行安裝軟件、游戲等第三方服務(wù)商提供的程序,并通過此類程序不斷對手機(jī)的功能進(jìn)行擴(kuò)充,同時可通過移動通訊網(wǎng)絡(luò)來實現(xiàn)無線網(wǎng)絡(luò)接入。智能手機(jī)同傳統(tǒng)手機(jī)外觀和操作方式類似,不僅包含觸摸屏也包含非觸摸屏、數(shù)字鍵盤手機(jī)和全尺寸鍵盤操作的手機(jī)。但是傳統(tǒng)手機(jī)都使用的是生產(chǎn)廠商自行開發(fā)的封閉式操作系統(tǒng),所能實現(xiàn)的功能非常有限,不具備智能手機(jī)的擴(kuò)展性。從廣義上講,智能手機(jī)除了具備手機(jī)的通話功能外,還具備個人信息管理以及基于無線數(shù)據(jù)通信的瀏覽器、GPS(Global Positioning System)和電子郵件功能。智能手機(jī)為用戶提供了足夠的屏幕尺寸和帶寬,既方便隨身攜帶,又為軟件運(yùn)行和內(nèi)容服務(wù)提供個廣闊的舞臺,很多增值業(yè)務(wù)可以就此展開,如:股票、新聞、天氣、交通、商品、應(yīng)用程序下載、音樂圖片下載等等。結(jié)合3G通信網(wǎng)絡(luò)的支持,智能手機(jī)的發(fā)展,勢必將成為一個功能強(qiáng)大,集通話、短信、網(wǎng)絡(luò)接入、影視娛樂為一體的綜合性個人手持終端設(shè)備3。1.1.2 課題意義 隨著通信技術(shù)的發(fā)展,3G從制定出到現(xiàn)在越來越被人們關(guān)注。“3 G”(英語3rd-generation)或“三代”是第三代移動通信技術(shù)的簡稱,是指支持高速數(shù)據(jù)傳輸?shù)姆涓C移動通信技術(shù)4。目前3G存在四種標(biāo)準(zhǔn):CDMA2000、WCDMATD-SCDMA、WiMAX。其中TD-SCDMA(全稱Time Division-Synchronous CDMA)是由中國大陸?yīng)氉灾贫ǖ?G標(biāo)準(zhǔn)。為了推動我國的智能手機(jī)的發(fā)展,實現(xiàn)多功能的智能手機(jī),方便人們豐富多彩而又快節(jié)奏的生活。本文正是基于Android平臺開發(fā)的計算機(jī)器。論文主要闡述以面向?qū)ο蟮某绦蜷_發(fā)語言eclipse為開發(fā)工具, 基于智能手機(jī)Android之上設(shè)計一個計算器。本文的目標(biāo)就是設(shè)計并實現(xiàn)基于Android的計算器,論文首先介紹了Android開發(fā)平臺和環(huán)境以及Android 工程的重要部分,然后著重針對計算器的系統(tǒng)設(shè)計和系統(tǒng)設(shè)計的具體實現(xiàn),最后實現(xiàn)計算器的各種功能并得到了很多好的驗證。1.2 智能手機(jī)平臺系統(tǒng)智能手機(jī)(Smartphone),是指“像個人電腦一樣,具有獨立的操作系統(tǒng),可以由用戶自行安裝軟件、游戲等第三方服務(wù)商提供的程序,通過此類程序來不斷對手機(jī)的功能進(jìn)行擴(kuò)充,并可以通過移動通訊網(wǎng)絡(luò)來實現(xiàn)無線網(wǎng)絡(luò)接入的這樣一類手機(jī)的總稱”。目前全球主要的只能手機(jī)操作系統(tǒng)依次是iPhone OS、Symbian、BlackBerry OS和Android,其中Android最年輕,市場份額正迅速增加。下面簡單介紹Android以外的幾款常用的智能手機(jī)系統(tǒng)。IPhone OS是蘋果公司專門為iPhone開發(fā)的智能手機(jī)系統(tǒng)5。iPhone手機(jī)具有硬件與軟件一一綁定的特性,Apple公司采用與運(yùn)營商分成的策略。iPhone雖然開放了SDK,可是卻不能在PC上使用,這對于中國的應(yīng)用開發(fā)市場是個不曉得阻礙。但它將創(chuàng)新的移動電話、可觸摸寬屏iPod以及具有桌面級電子郵件、網(wǎng)頁瀏覽、搜索和地圖功能的突破性因特網(wǎng)通信設(shè)備這三種產(chǎn)品完美的融合為一體的特性,也吸引了無數(shù)的用戶。Symbian(中文名:塞班)6是一個實時性、多任務(wù)的純32位操作系統(tǒng),具有功耗低、內(nèi)存占用少等特點,非常適合手機(jī)等移動設(shè)備使用,經(jīng)過不斷完善,雖然在智能型手機(jī)市場取得了無比的成功,并長期居于首位,但是Symbian S60、Symbian3,UIQ等(尤其是S60)系統(tǒng)近兩年亦遭遇到顯著的發(fā)展瓶頸。最近12個月歐洲手機(jī)公司諾基亞(Nokia)在智能手機(jī)市場市占率的滑落是不爭的事實。需要注意的是,并不是所有的Symbian系統(tǒng)都是智能系統(tǒng),比如S40系統(tǒng),就不屬于智能手機(jī)系統(tǒng)。BlackBerry OS7是RIM專用的智能手機(jī)操作系統(tǒng)。BlackBerry,在美國市場占有率相對較高,BlackBerry的比較具有個性的設(shè)計就是寬大的屏幕和便于輸入的QWERTY全鍵盤,所以BlackBerry在移動電子郵件方面非常方便,由于我國手機(jī)用戶發(fā)送短信對于發(fā)送郵件,所以BlackBerry系統(tǒng)的郵件優(yōu)勢在中國不存在,目前BlackBerry OS在智能手機(jī)操作系統(tǒng)的市場份額占據(jù)第三位i,BlackBerry手機(jī)市場主要在美國8。windows mobile是微軟由于Pocket PC和Smartphone的軟件平臺9。windows mobile系統(tǒng)將大家熟悉的Windows桌面延伸到了移動設(shè)備中。windows mobile是Microsoft為手持設(shè)備推出的“Windows移動版”。受Android的沖擊,目前Windows Mobile在智能手機(jī)操作系統(tǒng)的市場下降到4%左右。Linux憑借其開放源代碼、免費的優(yōu)勢,經(jīng)過來自全球程序員的努力,再加上google、IBM等計算機(jī)巨頭的支持。Linux在手機(jī)操作系統(tǒng)市場中成為了衣服新生的力量,尤其是在許多知名廠商如摩托羅拉宣布支持Linux手機(jī)操作系統(tǒng)之后,Linux的市場份額有增加的趨勢。目前基于Linux的智能手機(jī)占有7.3%的市場份額。Palm OS由Palm公司研發(fā),是一種32位的嵌入式操作系統(tǒng),它的操作界面采用觸控式,幾乎所有的控制選項都排列在屏幕上,使用觸控筆進(jìn)行所有操作。目前基于Palm OS的智能手機(jī)占有2.3%的市場份額12。1.3 課題來源計算器作為現(xiàn)在人們?nèi)粘I钪谐S玫囊环N工具已經(jīng)可以說是人們?nèi)粘I钪斜夭豢缮俚墓ぞ吡?。但是計算器的發(fā)展經(jīng)歷了漫長的過程,凝聚無數(shù)先人的智慧,甚至連計算機(jī)的發(fā)展都可以說是源于計算器的發(fā)展。計算器和計算機(jī)一樣都能夠?qū)崿F(xiàn)數(shù)據(jù)的輸入、處理、存儲和輸出這些基本的功能,但計算器區(qū)別于計算機(jī)的地方就是,它不能自動的進(jìn)行計算,必須要求由人來操作完成計算;而計算機(jī)通過提前編寫好的程序就能夠自動的按照程序進(jìn)行處理。所以計算器和計算機(jī)的一個顯著的區(qū)別就在于是否需要人為地操作來完成運(yùn)行。這二者還有另一個本質(zhì)性的區(qū)別。計算器的處理數(shù)據(jù)的方法是生產(chǎn)時就已經(jīng)固化在系統(tǒng)中了,所以計算器只能按照系統(tǒng)中規(guī)定的處理方法來處理用戶要求的計算任務(wù);而計算機(jī)由于可以自行安裝操作系統(tǒng)和各種的相關(guān)軟件和硬件,理論上計算機(jī)擁有的可擴(kuò)展性是無窮的。所以簡單的說,計算器和計算機(jī)的本質(zhì)性區(qū)別就在于該系統(tǒng)是否存在可擴(kuò)展性。在我所了解到的知識中,最早的計算工具可以追溯到中國古代一種叫做籌策(又叫算籌)的東西上。這種計算工具在計算的時候擺成縱式和橫式兩種數(shù)字,按照縱式相間的原則表示任何自然數(shù),從而進(jìn)行加、減、乘、除、開方以及其它的代數(shù)計算。負(fù)數(shù)出現(xiàn)后,算籌分為紅和兩種,紅籌表示正數(shù),黑籌表示負(fù)數(shù)。雖然我對于這種計算的原理不是很了解,但是不得不說,這種運(yùn)算工具和運(yùn)算方法確實是當(dāng)時世界上獨一無二的。直到今天仍有一些人在使用的珠算或者叫算盤,是中國古代計算工具中的另一項偉大發(fā)明,而從明朝開始使用的算盤就已經(jīng)與現(xiàn)代的算盤幾乎完全相同了。以上介紹完了中國關(guān)于計算工具的發(fā)展,下面我們來看看西方社會中計算工具的發(fā)展情況。我通過查詢資料得知,17世紀(jì)初這個時期,西方國家的計算工具開始有了一個較大的發(fā)展,英國數(shù)學(xué)家納皮爾發(fā)明的納皮爾算籌,英國牧師奧卻德發(fā)明了圓柱型對數(shù)計算尺,這種計算尺的功能不僅僅能做加減乘除、乘方、開方運(yùn)算,甚至可以計算三角函數(shù),指數(shù)函數(shù)和對數(shù)函數(shù),這些計算工具的產(chǎn)生不單單是帶動了計算器的發(fā)展,更是為現(xiàn)代計算器的發(fā)展奠定了一個堅實的基礎(chǔ)。雖然當(dāng)時的技術(shù)水平有限,這些工具使用的不是機(jī)械或者電子作為載體,但是這些計算工具卻為了后世的計算器提供了一個良好的思路。1642年,偉大的法國科學(xué)家帕斯卡在年僅19歲的時候就利用了算盤的計算原理發(fā)明了世界上第一部機(jī)械式的計算器,在這個計算器中有一些互相咬合的齒輪,一個轉(zhuǎn)過十位的齒輪會使另一個齒輪轉(zhuǎn)過一位,靠這樣來實現(xiàn)十進(jìn)制的算法,人們可以轉(zhuǎn)動齒輪,把想要輸入的數(shù)據(jù)輸入進(jìn)去,計算結(jié)果就會出現(xiàn)在另一個窗口中,但是這個計算器只能做一些加減計算。1694年,萊布尼茲在德國將其改進(jìn),使這種計算器成為可以進(jìn)行加減乘除計算的計算器。此后,一直要到20世紀(jì)50年代末才有電子計算器的出現(xiàn)。2 基于Android平臺計算器相關(guān)技術(shù)概述本章介紹了基于Android平臺計算器相關(guān)技術(shù)。首先介紹了各種智能手機(jī)平臺系統(tǒng),并進(jìn)行分析。重點介紹了Android平臺系統(tǒng),對Android體系結(jié)構(gòu)及平臺功能進(jìn)行了介紹。同時還對本文界面開發(fā)實現(xiàn)要用的XML技術(shù)進(jìn)行了簡單的介紹,具體如下。2.1 Android手機(jī)平臺2.1.1 Android起源及優(yōu)勢Android平臺自發(fā)布以來就一直吸引著廣大開發(fā)者的目光,Android一詞的本義指“機(jī)器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機(jī)操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動軟件14。Android平臺具有以下優(yōu)點:(1)平臺的開放性允許任何廠商加入,使其擁有更多的開發(fā)者,新穎的應(yīng)用功能及創(chuàng)意可以不斷地出現(xiàn)。(2)脫離了運(yùn)營商的束縛,讓手機(jī)更加貼近互聯(lián)網(wǎng)。(3)應(yīng)用程序都是基于java開發(fā)的,java具有一次編寫、到處運(yùn)行的跨平臺性。能夠?qū)崿F(xiàn)在所有的Android設(shè)備中運(yùn)行,真正做到了硬件的無關(guān)性,降低了開發(fā)者的負(fù)擔(dān)。(4)提供了標(biāo)準(zhǔn)的API和SDK開發(fā)包,手機(jī)廠商可以根據(jù)需要自行開發(fā)或者使用已有的程序,從而打造出富有特色的Android平臺。2.1.2 Android體系結(jié)構(gòu) Android平臺架構(gòu)15從上至下包含五部分:應(yīng)用程序(Application)、應(yīng)用框架(Application Framework)、開發(fā)庫(Libraries),運(yùn)行時環(huán)境(Android Runtime)以及Linux內(nèi)核,如圖2-1所示.(1).應(yīng)用程序Android同一系列核心應(yīng)用程序包一起發(fā)布,該程序包包括email客戶端、SMS短消息程序、日歷、聯(lián)系人管理程序等。所有的應(yīng)用程序都是用Java語言編寫的。(2).應(yīng)用框架應(yīng)用框架式進(jìn)行Android開發(fā)的基礎(chǔ)。應(yīng)用程序框架層包含了視圖系統(tǒng)、內(nèi)容提供器、窗口管理器、活動管理器、通知管理器、資源管理器、電話管理器和包管管理器9大部分。圖 2-1 Android架構(gòu)圖在Android中,任何一個應(yīng)用程序都可以發(fā)布自身的功能塊,而其他應(yīng)用程序則可以使用已發(fā)布的功能塊?;谶@樣的重用機(jī)制,用戶就可以方便地替換平臺自身的各種應(yīng)用程序組件,這在Symbian和Windows Mobile平臺中都是無法實現(xiàn)的。雖然Android本身已在框架中提供了許多軟件組件,不過這并不表示所有的應(yīng)用程序一定要調(diào)用Android本身已在框架中提供了許多軟件組件,不過這并不表示所有的應(yīng)用程序一定調(diào)用Android所提供的組件,開發(fā)人員在開發(fā)Android平臺上的應(yīng)用程序時,也可以開發(fā)新的軟件組件,并將該軟件組件放入Android的應(yīng)用程序框架中。(3)開發(fā)庫(Libraries)Android包含一套C/C+開發(fā)庫,主要包括:libc、Media Framework、WebKit、SGL、OpenGL ES、FreeType、SQlite等。這些庫被應(yīng)用于Android系統(tǒng)的各種組件中,開發(fā)人員可以通過Android應(yīng)用框架調(diào)用它們。(4)運(yùn)行環(huán)境(Android Runtime)Android雖然采用Java程序語言來編寫應(yīng)用程序,但并不使用J2ME執(zhí)行Java程序,而是用Android本身自帶的Android運(yùn)行時環(huán)境。Android運(yùn)行時包括核心庫和Dalvik虛擬機(jī)兩部分,如圖2-2所示,這兩部分具體功能如下:核心庫包含兩部分內(nèi)容:一部分為絕大多數(shù)Java程序語言所需要調(diào)用的功能函數(shù),另外一部分為Android的核心庫,如、android.os、android.media等。與標(biāo)準(zhǔn)Java語言不一樣的是,每個Android應(yīng)用程序都有一個自用的進(jìn)程,即Android不是用一個Dalvik虛擬機(jī)來同時執(zhí)行多個Android應(yīng)用程序,而是每個Android應(yīng)用程序都有一個自身的Dalvik虛擬機(jī)來執(zhí)行。圖 2-2 Android 運(yùn)行時Dalvik是一種基于寄存器的Java虛擬機(jī)。Dalvik虛擬機(jī)是專門為移動設(shè)備而設(shè)計的,它在開發(fā)時就考慮到了用最少的內(nèi)存資源來執(zhí)行,以及支持前面提到的同時執(zhí)行多個虛擬機(jī)的特性。Dalvik虛擬機(jī)有許多地方參考了Java虛擬機(jī)的設(shè)計,不過Dalvik虛擬機(jī)所執(zhí)行的中間碼并非是Java虛擬機(jī)所執(zhí)行的Java字節(jié)碼,但也不直接執(zhí)行Java的類文件,而是依靠轉(zhuǎn)換工具dx將Java字節(jié)碼轉(zhuǎn)換為dex格式。(5)Linux內(nèi)核(Linux Kernel)Android的內(nèi)核系統(tǒng)服務(wù)依賴于Linux2.6內(nèi)核(如圖2-3所示),如內(nèi)存管理、進(jìn)程管理、安全性、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型。Linux內(nèi)核也同時作為硬件和軟件棧之間的抽象層,這樣應(yīng)用程序開發(fā)人員就無需關(guān)心硬件實現(xiàn)細(xì)節(jié)。圖 2-3 linux 內(nèi)核整體架構(gòu)上,Android相比其他平臺顯示出了自身的特點,例如集成了WebKit瀏覽器、Dalvik虛擬機(jī)等模塊、提供了開源的代碼、可重用和可替換組件的程序應(yīng)用框架、SQLite結(jié)構(gòu)化的數(shù)據(jù)存儲的數(shù)據(jù)庫等特點。2.1.3 Android平臺功能特征Android平臺具有很多獨特的功能特征,具體如下。應(yīng)用程序架構(gòu):在應(yīng)用程序架構(gòu)內(nèi)已經(jīng)具備了多種不同的基礎(chǔ)組件,在開發(fā)應(yīng)用程序時,可以直接調(diào)用這些組件,極大地節(jié)省了程序開發(fā)人員的時間與精力。Dalvik虛擬機(jī)器:在Android平臺上使用的java虛擬機(jī),不是Sun公司的標(biāo)準(zhǔn)java虛擬機(jī),而是Google自主開發(fā)的代碼為Dalvik的虛擬機(jī),它不但保證了JavaAPI的兼容性,同時針對移動手機(jī)進(jìn)行了大幅優(yōu)化,占用資源更少,運(yùn)行效率更高。集成的瀏覽器:集成的瀏覽器是Android內(nèi)建的瀏覽器,是以WebKit的瀏覽殷勤為基礎(chǔ)開發(fā)的。WebKit是一個開源瀏覽器網(wǎng)頁排版引擎,目前使用了WebKit引擎的瀏覽器主要有:Safari,Midori,Epiphany等。配合Android手機(jī)的功能,可以再瀏覽網(wǎng)頁時,達(dá)到更好的效果,例如:局部縮放網(wǎng)頁上的咨訊、觸控式的操作等效果。優(yōu)化的繪圖能力:在程序里可以用到的繪圖功能分為2D和3D兩個方面。在2D方面,Android提供了一套特有的類庫(SQL);而在3D方面則是使用OpenGLES1.0(OpenGL for Embedded Systems)規(guī)范的類庫。它們是一種非??斓膱D形引擎,并且支持硬件加速。SQlite數(shù)據(jù)庫:SQlite提供結(jié)構(gòu)化的數(shù)據(jù)存取。SQlite16是一款輕型的數(shù)據(jù)庫,它的書記目標(biāo)是嵌入式的,目前已經(jīng)有很多嵌入式產(chǎn)品使用了它,它占用的資源非常低。它能夠支持windows、linux、unix等主流的操作系統(tǒng),同時能夠和很多程序語言相結(jié)合,比如PHP,Java等,還有ODBC接口,與Mysql,PostgreSQL相比,它的處理速度更快,無需安裝和管理配置。它是一個儲存在單一磁盤文件中的完整數(shù)據(jù)庫,體積很小只有250KB,但所支持?jǐn)?shù)據(jù)庫大至ZTB。它雖然很小巧,但是支持的SQL語句毫不遜色于其他開源數(shù)據(jù)庫。同時它還支持事務(wù)功能和并發(fā)處理等。SQlite也是一套開發(fā)性的關(guān)聯(lián)式資料庫,其特點在于輕量性方面的設(shè)計結(jié)構(gòu),更適合在手機(jī)上使用。多媒體的支持能力:主要用于播放媒體文件。包括對音頻(如播放MP3或其他音樂文件等)和視頻(如播放從網(wǎng)上下載的視頻)的支持,并支持“播放URI地址”模式在網(wǎng)絡(luò)上直接播放的流媒體。另外支持各種通用的靜態(tài)圖像格式,例如:JPG、PNG、GIF等格式。GMS技術(shù):Global System for Mobile Communications,即全球移動通訊系統(tǒng),俗稱“全球通”,是一種起源于歐洲的移動通信技術(shù)標(biāo)準(zhǔn),是第二代移動通信技術(shù),其開發(fā)目的是讓全球各地可以共同使用一個移動電話網(wǎng)絡(luò)標(biāo)準(zhǔn),讓用戶使用一部手機(jī)就能行遍全球17。GSM技術(shù)是屬于手機(jī)硬件方面的展現(xiàn),也是在開發(fā)Android應(yīng)用程序時可以突出的特點之一。藍(lán)牙、EDGE、3G及Wi.Fi:藍(lán)牙技術(shù)是一種新型、開放、低成本、短距離的無線連接技術(shù),可取代短距離的電纜,實現(xiàn)話音和數(shù)據(jù)的無線傳輸。EDGE(Enhanced Data Rate for GSM Evolution),即增強(qiáng)型數(shù)據(jù)速率GSM演進(jìn)技術(shù)。EDGE是一種從GSM到3G的過渡技術(shù),它主要是在GSM系統(tǒng)中采用了一種新的調(diào)制方法,即最先進(jìn)的多時隙操作和8PSK調(diào)制技術(shù)18。由于8PSK可將現(xiàn)有GSM網(wǎng)絡(luò)采用的8GMSK可將現(xiàn)有GSM網(wǎng)絡(luò)采用的GMSK調(diào)制技術(shù)的信號空間從2擴(kuò)展到8,從而使每個符號所包含的信息是原來的4倍。Wi.Fi(WireleddFidelity),即無線保真技術(shù),和藍(lán)牙技術(shù)一樣,都屬于在辦公室和家庭中使用的短距離無線技術(shù)。該技術(shù)使用的是2.4GHz附近的頻段,該頻段目前尚屬沒用許可的而無線頻段。其目前可使用的標(biāo)準(zhǔn)有兩個,分別是IEEE802.11a和IEEE802.11b。這些通訊能力是屬于手機(jī)硬件方面的展現(xiàn),也是在開發(fā)android應(yīng)用程序時可以突出的特點之一。GPS:Global Positioning System,即全球定位系統(tǒng),它是一個由覆蓋全球的24顆衛(wèi)星組成的衛(wèi)星系統(tǒng)19。這個系統(tǒng)可以保證在任意的時刻和任何地點都可以同時觀測到4顆衛(wèi)星,以保證衛(wèi)星可以采集到該觀測點的經(jīng)緯度和高度,以便實現(xiàn)導(dǎo)航、定位、授時等功能。這項技術(shù)可以用來引導(dǎo)飛機(jī)、船舶、車輛以及個人。這個同樣也是屬于手機(jī)硬件方面的展現(xiàn),也是在開發(fā)Android應(yīng)用程序時可以突出的特點之一。豐富的開發(fā)環(huán)境:在Android SDK提供相當(dāng)完善的程序開發(fā)環(huán)境,其開發(fā)環(huán)境包括設(shè)備模擬器、調(diào)試工具、內(nèi)存和性能檢測等方面的評估功能,另外也可提供用于Eclipse IDE的開發(fā)插件界面。2.2 Android SDK介紹 Android SDK是Android手機(jī)操作系統(tǒng)運(yùn)行的平臺支撐,它由開發(fā)文檔、實例、編程API、開發(fā)工具集等組成20。Dosc包含了的Android開發(fā)文檔,Samples包含了Notepad、APIDemos、Snake等示例程序,Tools包括全部開發(fā)、編譯和調(diào)試工具。Emulator.exe:能啟動Android模擬器。Android模擬器用來在虛擬的Android環(huán)境下,運(yùn)行應(yīng)用程序。Adb.exe(Android debugging bridge):是Android的一個調(diào)試工具,ddms是一個在adb基礎(chǔ)上的一個圖形化工具。Adb的工作方式比較特殊,采用監(jiān)聽TCP5554等端口的方式讓IDE和Qemu通訊,默認(rèn)情況下adb會監(jiān)聽daemon相關(guān)的網(wǎng)絡(luò)端口,所以當(dāng)運(yùn)行Eclipse時adb進(jìn)程就會自動運(yùn)行。Android是一個操作系統(tǒng)平臺,啟動一個模擬器就啟動了一個操作系統(tǒng)??梢允褂肁ndroid adb連接到這個操作系統(tǒng),并運(yùn)行一些系統(tǒng)命令,就像平時大家用終端訪問一個遠(yuǎn)程linux、unix服務(wù)器,可以使用adb shell。如下進(jìn)行shell后進(jìn)行l(wèi)s命令,在該shell下可運(yùn)行l(wèi)inux下一些常用的命令。注意:adb shell默認(rèn)只啟動一個模擬器(emulator),如果需要啟動多個模擬器,則需要添加相應(yīng)的參數(shù)。如剛才使用的adb devices命令返回了兩個模擬器,如果要連續(xù)其中一個則加參數(shù)-s;使用加:adb 是emulator-5544 shell。2.3 XML技術(shù)XML(Extensible Markup Language)即可擴(kuò)展標(biāo)記語言,它與HTML一樣,都是SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語言)。XML是Internet環(huán)境中跨平臺的,依賴于內(nèi)容的技術(shù),是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。擴(kuò)展標(biāo)記語言XML是一種簡單的數(shù)據(jù)存儲語言,使用一系列簡單的標(biāo)記描述數(shù)據(jù),而這些標(biāo)記易于建立,雖然XML占用的空間比二進(jìn)制數(shù)據(jù)所占用的空間多,但XML極其簡單易于掌握和使用。XML作為一種廣泛且被各大廠商接收的語言,具有自己的優(yōu)點,其優(yōu)點主要體現(xiàn)在以下幾方面。(1)開放性XML成功的主要因素之一是它的基于規(guī)范和標(biāo)準(zhǔn)的開放性。XML技術(shù)根據(jù)標(biāo)準(zhǔn)規(guī)范,允許在任何平臺上取得和處理數(shù)據(jù)。更重要的是XML允許通過HTTP和其他傳輸協(xié)議交換XML數(shù)據(jù)。(2)可擴(kuò)展性可擴(kuò)展性是指,使用XML可以按照自己的需要制定語言。XML繼承了SGML的許多關(guān)鍵特性,首先是良好而可擴(kuò)展性。XML允許使用者創(chuàng)建和使用自己的標(biāo)記而不是HTML的有限詞匯表,用戶可以根據(jù)應(yīng)用需要定義自己的標(biāo)記語言,也可以建立一套特定行業(yè)標(biāo)記語言,作為信息共享和數(shù)據(jù)交換的基礎(chǔ)。使用XML作為表單的描述格式,可以滿足用戶對表單定制的需求。(3)XML文檔的內(nèi)容和結(jié)構(gòu)完全分離XML的形式和內(nèi)容是分離的,這樣可以讓數(shù)據(jù)的收集者專注于數(shù)據(jù)處理,相同的數(shù)據(jù)無需改動即可在不同的XSL(XML Style language)頁面呈現(xiàn)不同的風(fēng)格。同時,內(nèi)容和形式的分離使XML文檔在不同應(yīng)用系統(tǒng)之間的轉(zhuǎn)換變得非常簡單,用戶只需要將兩個不同XML文檔的DTD(Document Type Definition)或XML Schema進(jìn)行映射。2.4 JNI技術(shù)JNI是Java Native Interface的縮寫,中文為JAVA本地調(diào)用。從Java1.1開始,Java Native Interface(JNI)標(biāo)準(zhǔn)成為java平臺的一部分,它允許java代碼和其他語言編寫的代碼進(jìn)行交互。JNI的初衷是為了本地已編譯語言,尤其是為C和C+而設(shè)計的,但是它并不妨礙使用其他語言,只要符合約定且被支持就可以了。JNI設(shè)計的目的是在java應(yīng)用程序中調(diào)用其它語言編寫的功能模塊。其結(jié)構(gòu)如圖2-4所示。圖 2-4 JNI 調(diào)用關(guān)系圖標(biāo)準(zhǔn)的java類庫可能完成不了所需要的功能特性,或許已經(jīng)有了用其他語言寫成的庫或者程序,而希望在本java程序中使用它,則可通過JNI調(diào)用。如果需要用底層語言實現(xiàn)一個小型的時間敏感代碼,比如匯編,然后在java程序中調(diào)用這些功能。實現(xiàn)JNI的步驟如圖2-5所示。(1)編寫帶有native聲明的方法的java類,native所聲明的方法既是java調(diào)用但其實現(xiàn)過程是由別的語言完成的。(2)使用javac命令編譯所編寫的java類,生成可以再JVM運(yùn)行的字節(jié)碼。使用javah?jni java類名生成擴(kuò)展名為.h的頭文件。在自動生成的頭文件中將聲明有待實現(xiàn)的C函數(shù)。(3)使用C/C+實現(xiàn).h文件中所聲明的方法。(4)將C/C+程序文件編譯成動態(tài)鏈接庫文件,然后將動態(tài)庫加載到系統(tǒng)中,然后應(yīng)用程序通過native接口調(diào)用即可。圖2-5 JNI 開發(fā)流程3 基于Android平臺計算器設(shè)計設(shè)計實現(xiàn)一個成功的應(yīng)用程序,不但要有使用的功能配置,也要有有好的用戶界面,下面就是我對基于Android計算器的設(shè)計簡要介紹。3.1 系統(tǒng)的總體設(shè)計根據(jù)任務(wù)書,符合使用用戶的實際要求,系統(tǒng)應(yīng)實現(xiàn)以下功能:計算器界面友好,方便使用,顯示至少6位結(jié)果,具有基本的加、減、乘、除功能,能夠判斷用戶輸入運(yùn)算數(shù)是否正確,支持小數(shù)運(yùn)算,具有退格功能,能夠刪除最后一個輸入,具有清除功能,即C,具有結(jié)果存儲功能,能夠顯示存儲器狀態(tài),支持觸屏手機(jī)。整個程序基于android技術(shù)開發(fā),出總體模塊外主要分為輸入模塊、顯示模塊以及計算模塊(包括一些其他功能)這三大部分。在整個系統(tǒng)中總體模塊控制系統(tǒng)的生命周期,輸入模塊部分負(fù)責(zé)讀取用戶輸入的數(shù)據(jù),顯示模塊部分負(fù)責(zé)顯示用戶之前輸入的數(shù)據(jù)以及顯示最終的計算結(jié)果,計算模塊部分負(fù)責(zé)進(jìn)行數(shù)據(jù)的運(yùn)算以及一些其他的功能。下面較為詳細(xì)的做了說明。具體的說,總體模塊的作用主要是生成應(yīng)用程序的主類,控制應(yīng)用程序的生命周期。輸入模塊主要描述了計算器鍵盤以及鍵盤的監(jiān)聽即主要負(fù)責(zé)讀取用戶的鍵盤輸入以及響應(yīng)觸屏的按鍵,需要監(jiān)聽手機(jī)按鍵動作以及用指針事件處理方法處理觸屏的單擊動作(以松開按鍵為準(zhǔn))。同時提供了較為直觀的鍵盤圖形用戶界面。顯示模塊描述了計算器的顯示區(qū),即該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計算結(jié)果,同時還負(fù)責(zé)顯示一些其他的信息。計算模塊則主要描述了計算器的整體,實現(xiàn)了計算器的界面,負(fù)責(zé)計算用戶輸入數(shù)據(jù),包括加、減、乘、除、等各種計算功能,記憶數(shù)據(jù)的相關(guān)功能,退格以及清零的功能。3.2 程序流程和系統(tǒng)功能設(shè)計3.2.1 程序流程設(shè)計知道了系統(tǒng)的功能以后,我們通過main.xml來建立顯示界面,完成后系統(tǒng)開始監(jiān)聽用戶的按鍵輸入,每次輸入系統(tǒng)都會判斷一次用戶輸入的類型,是數(shù)字還是運(yùn)算符號或者是清除,判斷完后分成不同類型如數(shù)字,符號,基本運(yùn)算等等進(jìn)行進(jìn)一步的處理,根據(jù)用戶的要求繼續(xù)進(jìn)行下一步的操作,最后計算出最終結(jié)果并顯示在顯示區(qū)。系統(tǒng)流程圖如圖3-2所示:圖3-1 程序流程圖3.2.2 系統(tǒng)功能設(shè)計整個系統(tǒng)的功能比較多,比較復(fù)雜,如上所說,可以分為十多個功能模塊,但是邏輯上理解其實不算困難,系統(tǒng)包括普通計算功能,包括加減乘除,退格以及清零功能。下面就讓我們用圖3-2來表示:圖3-2 系統(tǒng)的功能圖以上就是系統(tǒng)的流程圖,不過只是一個簡單是示意流程圖,不是整個程序的完整流程圖,整個系統(tǒng)的流程圖由于模塊眾多,整個列舉不易于理解,故此就只采用簡單流程圖作為示例說明,反而更加的簡單明了。3.3基于Android平臺系統(tǒng)具體設(shè)計系統(tǒng)除了總體模塊以外主要由三大模塊來組成,即輸入模塊,顯示模塊和計算模塊。用系統(tǒng)框圖來表示即如圖3-3。圖3-3 系統(tǒng)框圖系統(tǒng)這三大模塊都各自包含什么內(nèi)容在下文的系統(tǒng)詳細(xì)設(shè)計中會有進(jìn)一步的說明,此處就暫且略過。下面就來詳細(xì)的說明一下系統(tǒng)的各個模塊都是如何設(shè)計的。3.3.1 總體模塊詳細(xì)設(shè)計總體模塊需要完成的任務(wù)主要就是系統(tǒng)的程序啟動類,需要負(fù)責(zé)整個系統(tǒng)的生命周期。同時在還要在模塊中完成菜單欄的所有功能,即退出程序,記憶數(shù)據(jù),顯示數(shù)據(jù),清除記憶數(shù)據(jù)這四個功能。總體模塊的功能圖如圖3-4:圖3-4 總體模塊功能圖3.3.2 輸入模塊詳細(xì)設(shè)計系統(tǒng)如果想完成計算器中的各種功能,首先用戶要能進(jìn)行數(shù)據(jù)輸入,由于是在觸屏手機(jī)上開發(fā)計算器程序,所以要求輸入可以直接使用觸屏進(jìn)行,所以在設(shè)計的時候就要充分的考慮要這一點。正是由于考慮到這個特殊的地方,所以在進(jìn)行模塊設(shè)計中,選擇編寫輸入模塊類的時候會特意選取使用了可以支持觸屏輸入的特殊增強(qiáng)型圖形用戶界面類。輸入模塊主要的任務(wù)是描述計算器鍵盤以及實現(xiàn)鍵盤的監(jiān)聽,即當(dāng)用戶點擊按鍵或者屏幕的時候監(jiān)聽器會去調(diào)用相應(yīng)的處理辦法,本模塊還需要為系統(tǒng)提供了一個較為直觀的鍵盤圖形用戶界面。輸入模塊的功能圖如圖3-5:圖3-5 輸入模塊功能圖3.3.3 顯示模塊詳細(xì)設(shè)計作為手機(jī)計算器系統(tǒng),顯示部分也是必不可少的一部分。沒有顯示部分就沒有辦法顯示用戶輸入的數(shù)字是否正確,甚至不能顯示計算出的結(jié)果,由此可見顯示模塊即包括輸入的部分也包括輸出的部分。顯示模塊主要要完成的任務(wù)是描述計算器的顯示區(qū),該區(qū)域用于顯示用戶輸入的數(shù)據(jù)以及最終的計算結(jié)果和一些其他信息。同時本模塊還將提供調(diào)用和設(shè)置顯示的具體方法。顯示模塊的功能圖如圖3-6:圖3-6 顯示模塊功能圖3.3.4 計算模塊詳細(xì)設(shè)計系統(tǒng)要完成整個的計算器的計算功能,那么計算模塊就是整個系統(tǒng)的重點模塊。沒有計算模塊系統(tǒng)就不能順利的完成計算,就無法達(dá)到用戶的要求。所以計算模塊的設(shè)計也是本次系統(tǒng)設(shè)計中的重點。系統(tǒng)想要能在屏幕上顯示出計算器的樣子要有整體的布局,在本模塊中要完成布局的具體設(shè)計,使用戶能夠看到整個計算器的畫面。同時系統(tǒng)想完成計算功能必須要處理用戶的輸入,當(dāng)輸入模塊的監(jiān)聽傳到計算模塊中時,計算模塊就要根據(jù)相應(yīng)的方法進(jìn)行進(jìn)一步的處理。這部分主要是對輸入進(jìn)行的邏輯判斷,基本會通過if else來實現(xiàn)邏輯判斷。計算模塊的功能圖如圖3-7:圖3-7 計算模塊功能圖4 計算器系統(tǒng)實現(xiàn)4.1 Android應(yīng)用程序構(gòu)成Android應(yīng)用程序一般是由Activity、Serviece、Content Provider、Intent、Intent Receiver、Notification六個組件構(gòu)成。但并非每一個Android應(yīng)用程序都包含這六個組件。(1)Activity(活動):應(yīng)用程序的表示層。Activity是Android的基本組件。每一個activity代表一個單獨的屏幕。每一個activity都是繼承于Activity的獨立類。這個activity類將會顯示出幾個Views控件組成的用戶接口,并對事件作出響應(yīng)。Android使用了Intent,實現(xiàn)在屏幕與屏幕之間跳轉(zhuǎn)。Activity跳轉(zhuǎn)時只需要調(diào)用startActivity(Intent myIntent)方法。然后,系統(tǒng)會在所有安裝的應(yīng)用程序中定義的IntentFilter中查找,找到最匹配myIntent的Intent對應(yīng)的activity。新的activity接收到myIntent的通知后,開始啟動運(yùn)行。當(dāng)startActivity方法被調(diào)用將觸發(fā)解析myIntent的動作,這個機(jī)制提供了兩個關(guān)鍵的好處:能夠重復(fù)利用從其他組件中以Intent的形式產(chǎn)生的一個請求和可以在任何時候被一個具有相同IntentFilter的新的startActivity取代。(2)Service(服務(wù)):Android應(yīng)用程序的后臺運(yùn)行組件。Service沒有用戶界面的程序。服務(wù)組件在后臺運(yùn)行,它們可以更新數(shù)據(jù)源和可見的Activity,并觸發(fā)Notification。它們被用來執(zhí)行一些需要在后臺持續(xù)的常規(guī)處理。例如媒體播放器這個activity會使用Context. startService()方法,連接到一個service上(如果這個service還沒有運(yùn)行將啟動它)。當(dāng)連接到一個service之后,我們還可以通過service提供的接口與它進(jìn)行通訊。(3)Content Provider(內(nèi)容提供器):用來管理和分享應(yīng)用程序數(shù)據(jù)庫。Content Provider是在應(yīng)用程序之間共享數(shù)據(jù)的首選方法。通過配置Content Provider允許其他應(yīng)用程序訪問存儲的數(shù)據(jù),也可以使用其他應(yīng)用程序提供的Content Provider來訪問它們存儲的數(shù)據(jù)。Android平臺也提供了系統(tǒng)自帶的Content Provider,如聯(lián)系人信息等。(4)Intent(意向):Activity之間的粘合劑。使用Intent,可以在系統(tǒng)范圍內(nèi)向目標(biāo)活動或者服務(wù)廣播消息,說明希望執(zhí)行某個動作的意圖。之后系統(tǒng)就會確定那些最適合執(zhí)行動作的目標(biāo)。(5)Intent Receiver(意向接收器):通過Intent Receiver實現(xiàn)應(yīng)用能夠?qū)σ粋€外部的事件作出響應(yīng),Intent Receiver在AndroidManifest.xml中注冊,但也可以在代碼中使用Context.registerReceiver()進(jìn)行注冊。當(dāng)一個intent receive被觸發(fā)時,應(yīng)用不必對請求調(diào)用intent receive,系統(tǒng)會在需要的時候啟動你的應(yīng)用。各種應(yīng)用還可以通過使用Context.broadcastIntent()將它們自己的intent receive廣播給其他應(yīng)用程序。(6)Notification(通知):一種用戶通知框架。通過允許向用戶發(fā)送信號,而不會過分吸引他們的注意力或者打斷他們當(dāng)前的活動。它們是服務(wù)或者廣播接收器吸引用戶注意的首選方法。例如,當(dāng)設(shè)備接收到一個文本消息或者來電的時候,它可以通過閃燈、發(fā)出聲音、顯示圖標(biāo)或則會顯示對話框信息的方式提示用戶。4.2 Android應(yīng)用系統(tǒng)文件結(jié)構(gòu)本文是基于Android平臺的開發(fā),采用的開發(fā)語言為JAVA。Eclipse是開源的開發(fā)工具,具有強(qiáng)大的功能及良好的用戶界面,深受廣大開發(fā)者喜愛本文采用了Eclipse+Android SDK2.1開發(fā)環(huán)境。在Eclipse建立計算器的Android項目工程,計算器的工程文件名為jisuanqi2。然后加你存放源文件、資源文件、頁面文件等各個文件夾。整個工程項目的目錄結(jié)構(gòu)如圖4-2所示。圖4-1項目的目錄結(jié)構(gòu)圖其中src和gen文件夾下是整個項目的源文件,所有的java代碼都在這兩個文件夾下。src文件夾存放的是本文中開發(fā)的所有java文件。這java文件是整個項目的代碼。gen下面的R.java文件為Eclipse自動生成的系統(tǒng)文件,此文件中包含了本文開發(fā)過程中所吸引的資源的標(biāo)示。 res是存放整個系統(tǒng)中所用到的所有資源,此文件夾包含五個文件夾。分別為anim、drawble、layout、values、values-zh-rCN。其中anim文件夾下存放的是界面動畫效果。Drawble文件夾存放的是本文開發(fā)過程中所用到的所有圖片。Drawble包括drawable-hdpi,drawable-ldpi,drawable-mdpi三個文件夾,這是Adroid2.1版本的改進(jìn),是為了適應(yīng)Android手機(jī)系統(tǒng)不同的屏幕大小而設(shè)計的。用高分辨率的屏幕時,頁面所需要的圖片在drawable-hdpi中,用地分辨率的屏幕時,則采用drawable-ldpi文件夾下的資源圖片;而普通分辨率時采用drawable-mdpi文件夾下的圖片資源。因此這種設(shè)計具有很好的版本適應(yīng)性及兼容性,大大提高了用戶體驗。AndroidManifest.xml是每個Android程序中所必需的,它位于Android工程的根目錄,描述了package中的全局?jǐn)?shù)據(jù),包括package中的組件,各自的實現(xiàn)類,各種能被處理的類和啟動位置等。Manifest文件的主要功能是聲明應(yīng)用程序的組件。例如,一個activitiy必須要有一個標(biāo)志對應(yīng),無論它是供應(yīng)外部使用還是只用于自己的package中。如果一個Activity沒有對應(yīng)的標(biāo)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論