基于Android計算器功能的實現畢業設計.doc_第1頁
基于Android計算器功能的實現畢業設計.doc_第2頁
基于Android計算器功能的實現畢業設計.doc_第3頁
基于Android計算器功能的實現畢業設計.doc_第4頁
基于Android計算器功能的實現畢業設計.doc_第5頁
已閱讀5頁,還剩44頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論