2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  基于Android的日歷系統(tǒng)的設(shè)計與實現(xiàn) </p><p><b>  摘要</b></p><p>  Android系統(tǒng)憑借其良好的用戶體驗、低廉的成本及高開放性產(chǎn)生了巨大的應(yīng)用量和廣闊的應(yīng)用面。如今,基于Android系統(tǒng)的應(yīng)用極為豐富,從輸入法到影音播放器,從系統(tǒng)工具到網(wǎng)頁瀏覽器,從社交網(wǎng)絡(luò)客戶端到學(xué)習(xí)辦公助手工具,以及形式繁多的游戲應(yīng)用

2、,都有力體現(xiàn)了Android平臺的強大的適應(yīng)性和發(fā)展?jié)摿Α?lt;/p><p>  而日歷應(yīng)用作為智能終端的出廠必備控件,更是Android系統(tǒng)中不可或缺的一部分。而應(yīng)用開發(fā)商力求為客戶帶來更好的用戶體驗,將日歷這一原本普通的生活用品打造成植于移動終端中的生活助手,且界面風(fēng)格迥異,功能也是趨于多樣化和一體化。</p><p>  本文通過論述對基于Android的日歷系統(tǒng)的開發(fā)的全過程,研究了

3、Android系統(tǒng)的開發(fā)環(huán)境、核心構(gòu)架、主要組件,展示了開發(fā)移動應(yīng)用的一般過程,并對Android平臺的背景、現(xiàn)狀和發(fā)展前景進行了討論。本次項目所實現(xiàn)的日歷系統(tǒng),除了最基本的日期信息查詢功能外,還具備了公歷轉(zhuǎn)換農(nóng)歷功能、指定日期跳轉(zhuǎn)功能、當(dāng)天日期定位功能和日程管理功能。通過轉(zhuǎn)換功能,用戶可將希望查詢的公歷日期轉(zhuǎn)為農(nóng)歷日期;如果用戶想知道某一天或某個月有什么節(jié)日,可以使用跳轉(zhuǎn)功能;在主界面沒有顯示當(dāng)月日期時,用戶可通過定位功能回到當(dāng)天日期

4、;而日程管理功能則為用戶提供了類似備忘錄的平臺。</p><p>  關(guān)鍵詞;Android;移動終端;手機日歷;移動應(yīng)用開發(fā)</p><p>  THE DESIGN AND IMPLEMENTATION OF CALENDER BASED ON ANDROID SYSTEM</p><p><b>  Abstract</b></p&

5、gt;<p>  Android system has been achieved a great number of users because of its excellent user experience,low cost and high openness.Nowadays,there are plenty of smartphone applications based on android system su

6、ch as input methods,audio/video players,system tools,web browsers,social networks,school/office softwares,games,etc,which show great adaptation and development potential of Android.</p><p>  Calender has bec

7、ome a necessary widget in intelligent terminals and also a quite important part of Android system.App developers strive to improve the user experience so that they change the calender,a commonplace articles for daily use

8、,into a kind of assistant for users,with different kinds of interface.And its function becomes more and more diversified and incorporate.</p><p>  This article is about the whole development process of calen

9、der based on Android system, the development environment,the core framework and the main module of Android.Also,we will discuss the background,the current situation and the development potential.The Calendar we enforce i

10、n this project contains functions not only the most basic date information inquire,but also other functions such as gregorian-lunar transformer,current date locator,events manager.Users are able to transform gregorian da

11、</p><p>  Keywords: Android; The mobile terminal; Smart mobile Calender;Mobile application development </p><p><b>  目 錄</b></p><p><b>  摘要I</b></p>

12、<p>  AbstractII</p><p><b>  目 錄1</b></p><p><b>  1緒論1</b></p><p><b>  1.1課題背景1</b></p><p>  1.2 發(fā)展現(xiàn)狀1</p><

13、;p>  1.2.1 Android SDK發(fā)布里程碑1</p><p>  1.2.2 Android市場發(fā)展軌跡3</p><p>  1.3 Android系統(tǒng)的發(fā)展前景3</p><p>  1.4 課題研究意義3</p><p>  1.5 本文主要結(jié)構(gòu)5</p><p>  2 Androi

14、d系統(tǒng)核心技術(shù)概述6</p><p>  2.1 Android的體系結(jié)構(gòu)6</p><p>  2.2 Android系統(tǒng)組件8</p><p>  2.3 Android主要控件9</p><p>  2.4 本章小結(jié)11</p><p>  3 基于Android的日歷系統(tǒng)12</p>

15、<p>  3.1需求分析12</p><p>  3.1.1 系統(tǒng)目標(biāo)12</p><p>  3.1.2 功能需求描述12</p><p>  3.1.3 界面需求分析12</p><p>  3.1.4 運行需求分析12</p><p>  3.2 系統(tǒng)概要設(shè)計12</p>&

16、lt;p>  3.2.1 系統(tǒng)功能結(jié)構(gòu)12</p><p>  3.2.2 系統(tǒng)界面布局13</p><p>  3.3 主要算法與核心代碼實現(xiàn)14</p><p>  3.3.1 主界面14</p><p>  3.3.2 菜單項目操作16</p><p>  3.3.3 日程管理功能實現(xiàn)18<

17、;/p><p>  3.3.4 農(nóng)歷、閏年、節(jié)日算法18</p><p>  3.4 軟件測試19</p><p>  3.4.1測試平臺20</p><p>  3.4.2 軟件安裝20</p><p>  3.4.3 程序運行情況21</p><p>  3.5 本章小結(jié)23<

18、/p><p><b>  4 總結(jié)24</b></p><p>  4.1 論文工作總結(jié)24</p><p>  4.2 問題與展望24</p><p><b>  參考文獻26</b></p><p><b>  致謝27</b></p&g

19、t;<p><b>  1緒論</b></p><p><b>  1.1課題背景</b></p><p>  Android一詞最早出現(xiàn)在法國作家威利耶德利爾·亞當(dāng)?shù)目苹眯≌f中,作者將外表像人的機器稱為“Android”[1]。它由四部分構(gòu)成,分別如下;</p><p>  生命系統(tǒng)(平衡、步行、

20、發(fā)聲等)</p><p>  造型解質(zhì)(關(guān)節(jié)能自由活動的金屬覆蓋體)</p><p>  人造肌肉(有肌肉、靜脈等人體特征)</p><p>  人造皮膚(含有膚色、毛發(fā)等)</p><p>  Andy Rubin創(chuàng)立了兩個手機操作系統(tǒng)公司,分別是Danger和Android。Danger在2008年以5億美元賣給Microsoft;And

21、roid與2005年賣給了Google。因此,Android系統(tǒng)一開始并不是由Google研發(fā)出來的。</p><p>  2007年11月5日,Google正式發(fā)行了這款名為Android基于Linux平臺的開源移動操作系統(tǒng)平臺,并且在當(dāng)天與34家手機制造商、軟件開發(fā)商、電信運營商以及芯片制造商組成開放手持設(shè)備聯(lián)盟(Open Handset Alliance)。該聯(lián)盟將共同研發(fā)Android系統(tǒng)及其應(yīng)用軟件并生

22、產(chǎn)Android系統(tǒng)的智能手機。而后,Google發(fā)布了第一個面向開發(fā)者的軟件開發(fā)包(SDK)Android 1.0 beta,Android平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動軟件平臺[2]。</p><p>  至此,Android進入世人的視野,也開始了一場移動互聯(lián)網(wǎng)的偉大革命。</p><p><b>  1.2

23、發(fā)展現(xiàn)狀</b></p><p>  作為當(dāng)前最熱門的移動應(yīng)用操作系統(tǒng)之一,Android早在2012年就已經(jīng)占據(jù)歐美市場超過50%的市場份額。而在國內(nèi),市場上采用Android系統(tǒng)的智能終端也在不斷增多。</p><p>  1.2.1 Android SDK發(fā)布里程碑</p><p>  Android1.1</p><p>

24、  2008 年9月發(fā)布的Android第一版</p><p>  Android1.5 Cupcake(紙杯蛋糕)</p><p>  2009年4月30日,官方1.5版本(Cupcake:紙杯蛋糕)的Android發(fā)布。主要的更新如下;拍攝/播放影片,并支持上傳到Y(jié)outube;支持立體聲藍牙耳機,同時改善自動配對性能;最新的采用WebKit技術(shù)的瀏覽器,支持復(fù)制/貼上和頁面中搜索性能

25、大大提高;提供屏幕虛擬鍵盤;主屏幕增加音樂播放器和相框widgets;應(yīng)用程序自動隨著手機旋轉(zhuǎn);短信、Gmail、日歷,瀏覽器的用戶接口大幅改進,如Gmail可以批量刪除郵件;相機啟動速度加快,拍攝圖片可以直接上傳到Picasa;來電照片顯示;支持中文。</p><p>  Android1.6 Donut(甜甜圈)</p><p>  2009年9月15日,1.6(Donut;甜甜圈)版

26、本軟件開發(fā)工具包發(fā)布。主要的更新如下;重新設(shè)計的Android;Market手勢;支持支持CDMA網(wǎng)絡(luò);文字轉(zhuǎn)語音系統(tǒng)(Text-to-Speech);快速搜索框;全新的拍照接口;查看應(yīng)用程序耗電;支持虛擬私人網(wǎng)絡(luò)(VPN);支持更多屏幕分辨率,支持OpenCore2媒體引擎;新增面向視覺或聽覺困難人群的易用性插件。</p><p>  Android2.0/2.0.1/2.1 Eclair(松餅)</p&

27、gt;<p>  2009年10月26日,2.0(Eclair 松餅)版本軟件開發(fā)工具包發(fā)布。主要的更新如下;優(yōu)化硬件速度;"Car;Home"程序;支持更多的屏幕分辨率;改良的用戶界面;新的瀏覽器的用戶接口和支持HTML5;新的聯(lián)系人名單;更好的白色/黑色背景比率;改進Google;Maps;3.1.2;支持Microsoft;Exchange;支持內(nèi)置相機閃光燈;支持數(shù)碼變焦;改進的虛擬鍵盤;支持藍

28、牙2.1;支持動態(tài)桌面的設(shè)計。</p><p>  Android2.2/2.2.1 Froyo(凍酸奶)</p><p>  2010年5月20日,2.2(Froyo 凍酸奶)版本軟件開發(fā)工具包發(fā)布。整體性能大幅度的提升;3G網(wǎng)絡(luò)共享功能;Flash的支持;App2sd功能;全新的軟件商店;更多的Web應(yīng)用API接口的開發(fā)。</p><p>  Android2.

29、3 Gingerbread(姜餅)</p><p>  2011年2月2日, 3.0(Honeycomb 蜂巢)優(yōu)化針對平板;全新設(shè)計的UI增強網(wǎng)頁瀏覽功能;n-app purchases功能</p><p>  Android3.1 Honeycomb(蜂巢)</p><p>  2011年5月11日在Google I/O開發(fā)者大會宣布發(fā)布,Honeycomb 蜂

30、巢(改進3.0BUG) 經(jīng)過優(yōu)化的Gmail電子郵箱;全面支持GoogleMaps Android手機系統(tǒng)跟平板系統(tǒng)再次合并從而方便開發(fā)者。任務(wù)管理器可滾動,支持USB 輸入設(shè)備(鍵盤、鼠標(biāo)等)。支持 Google TV.可以支持XBOX 360無線手柄 widget支持的變化,能更加容易的定制屏幕widget插件。</p><p>  Android3.2 Honeycomb(蜂巢)</p>&

31、lt;p>  2011年7月13日發(fā)布,支持7英寸設(shè)備;引入了應(yīng)用顯示縮放功能。</p><p>  Android4.0 Ice Cream Sandwich(冰激凌三明治)</p><p>  2011年10月19日 在香港發(fā)布,4.0(Ice Cream Sandwich 冰激凌三明治)版本主要更新;藍色主題;接近于桌面版的Chrome;Lite瀏覽器,有離線閱讀,同步Chro

32、me書簽,新的標(biāo)簽樣式等;截圖功能;更強大的圖片編輯功能;自帶照片應(yīng)用堪比Instagram,可以加濾鏡、加相框,進行360度全景拍攝,照片還能根據(jù)地點來排序;Gmail加入手勢、離線搜索功能,UI更強大。新增流量管理工具,可具體查看每個應(yīng)用產(chǎn)生的流量。正在運行的程序可以像電腦一樣的互相切換;人臉識別功能;系統(tǒng)優(yōu)化、速度更快;支持虛擬按鍵,手機可以不再擁有任何按鍵;專為3D優(yōu)化的驅(qū)動;平板電腦和智能手機通用。</p>&l

33、t;p>  Android 4.1/4.2 Jelly Bean(果凍豆)</p><p>  2012年6月28日發(fā)布。添加了基于時間和位置的語音搜索;Google Now;增加離線語音輸入,即不需要聯(lián)網(wǎng)也能夠語音輸入;增強通知中心;Google Play增加內(nèi)容訂閱購買功能;新的安卓彩蛋。</p><p>  Android 4.2;完整的Chrome瀏覽器。全新的手機風(fēng)景模式;

34、全新的文件管理器;Android Key Lime Pie精簡版;具有開關(guān)切換的用戶界面;全新的電源管理系統(tǒng);全新的鎖屏界面;全新的時鐘界面[3]。</p><p>  1.2.2 Android市場發(fā)展軌跡</p><p>  蘋果公司推出的iPhone開啟了智能手機的革命,并很快獲得了消費者的青睞。但Andro id平臺正以更快的速度蔓延世界。從第一臺Android設(shè)備T-Mobile

35、 G1于2008年10月22日在美國上市以來,在不到四年的時間里,Android成長為移動操作系統(tǒng)的霸主。截止2012年第二季度占據(jù)全球52.6%的市場份額,較7月多了0.4%,與同年5月相比有1.7%的增長。</p><p>  Android操作系統(tǒng)超過稱霸數(shù)以十年的諾基亞Symbian OS系統(tǒng),在目前,使用Android系統(tǒng)的手機廠商主要包括;Sony Ericsson、宏達電子-HTC、三星-Samsu

36、ng、Motorola與LG。至今,Android已經(jīng)成為全世界最為歡迎的智能手機平臺,且平板電腦也大多應(yīng)用此系統(tǒng)[4]。</p><p><b>  市場表現(xiàn);</b></p><p><b>  (1) 中國市場</b></p><p>  Android開始在國內(nèi)占據(jù)手機操作系統(tǒng)競爭的上風(fēng)。據(jù)艾媒咨詢發(fā)布的《2011

37、年中國Android用戶調(diào)研報告》數(shù)據(jù)顯示,2011年中國Android智能手機用戶使用品牌調(diào)查中,國內(nèi)品牌華為、中興、酷派占比分別為11.4%、9.8%、9.2%。</p><p><b>  (2) 美國市場</b></p><p>  2010年8月3日早間消息稱,尼爾森公司最新數(shù)據(jù)顯示,Android手機在美國市場的銷售量首次超過蘋果iPhone,達到27%。

38、</p><p><b>  (3) 其他國家</b></p><p>  據(jù)國外媒體消息稱,Kantar WorldPanel ComTech最新數(shù)據(jù)顯示,Android智能手機主宰了歐洲主要市場的銷售,在英國、法國、意大利、西班牙及德國等五大國家的整體市場占有率從去年5月的38.8%上升到今年5月的60%。</p><p>  隨著iOS新

39、版本的不斷推出,以及Microsoft已經(jīng)推出的Windows Phone系統(tǒng)不斷完善,再加上RIM即將推出的全新操作系統(tǒng)BlackBerry 10做最后一搏,手機智能系統(tǒng)的競爭愈加激烈,但就目前來說,Android手機的統(tǒng)治地位還是無法改變的[5]。</p><p>  1.3 Android系統(tǒng)的發(fā)展前景</p><p>  就目前而言,智能設(shè)備主要是三大玩家、七大公司所引領(lǐng)。三大玩家

40、指Apple、Microsoft和Google;七大公司指的是Amazon、Samsung、Sony Ellison、HTC、聯(lián)想和華為。就目前看,智能設(shè)備上,蘋果三星暫時領(lǐng)先,Amazon最有潛力。</p><p>  智能設(shè)備的未來不是由硬件決定的,是由第三方軟件和渠道來決定。第三方軟件上,蘋果領(lǐng)先,谷歌其次,微軟第三;渠道上蘋果領(lǐng)先,亞馬遜其次,微軟最次。由于蘋果全面控制了操作系統(tǒng)和硬件,導(dǎo)致其他公司大部分

41、只能依靠安卓。類似PC戰(zhàn)勝Mac一樣,隨著iPhone潮流隨喬布斯而去,眾多公司合力之下,Android占據(jù)智能手機主流將是發(fā)展趨勢[6]。</p><p>  1.4 課題研究意義</p><p>  隨著科技的發(fā)展,智能手機已經(jīng)開始逐步取代傳統(tǒng)PC滲透進入了人們娛樂、生活的各個方面。從2011年開始,我們的生活開始步入移動互聯(lián)網(wǎng)時代,微博和微信已經(jīng)占據(jù)了大多數(shù)人的社交圈。而作為它們的載

42、體——智能手機,時至今日也對我們的生活造成了顛覆性的影響。手機從過去單一的通話功能,到今天集通話、短信、攝影、上網(wǎng)、聽歌、電子書于一身,不僅極大地滿足了人們的通訊需求,也滿足了人們的娛樂需求。 手機上網(wǎng),將信息整合使人們隨身攜帶的手機成了互聯(lián)網(wǎng)的終端機,手機與電腦相比,具有體積小、便于攜帶、價格便宜等優(yōu)點,而且手機上網(wǎng)相比有著移動性的優(yōu)勢,從而能夠迅速、及時得滿足人們的信息需求。手機信息載體比報紙、廣播、電視信息在信息傳遞上更方便、直接

43、、快速。</p><p>  而作為智能手機平臺中的霸主,Android平臺憑借其優(yōu)勢,得到了廣闊的普及面。</p><p><b> ?。?)開放性</b></p><p>  在優(yōu)勢方面,Android平臺首先就是其開發(fā)性,開發(fā)的平臺允許任何移動終端廠商加入到Android聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益

44、豐富,一個嶄新的平臺也將很快走向成熟。開發(fā)性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,最大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。</p><p><b> ?。?)不受束縛</b></p><p>  在過去很長的一段時間,特別是在歐美地區(qū),手機應(yīng)用往往

45、受到運營商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運營商的控制。自從2007年iPhone上市后,用戶可以更加方便地連接網(wǎng)絡(luò),運營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網(wǎng)絡(luò)的逐步過渡和提升,手機隨意接入網(wǎng)絡(luò)已不是運營商口中的笑談。</p><p><b> ?。?)豐富的硬件</b></p><p>  這一點還是與Android平臺的開放性相關(guān),

46、由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容,如同從諾基亞Symbian風(fēng)格手機一下改用蘋果iPhone,同時還可將Symbian中優(yōu)秀的軟件帶到iPhone上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移。</p><p><b>  (4)方便開發(fā)</b></p><p>  Andr

47、oid平臺提供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境,不會受到各種條條框框的阻擾,可想而知,會有多少新穎別致的軟件會誕生。但也有其兩面性,血腥、暴力、情色方面的程序和游戲如何控制正是留給Android難題之一。</p><p>  (5)Google應(yīng)用</p><p>  在互聯(lián)網(wǎng)的Google已經(jīng)走過10年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索等已經(jīng)成

48、為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺手機將無縫結(jié)合這些優(yōu)秀的Google服務(wù)[7]。</p><p>  綜上所述,Android系統(tǒng)的發(fā)展與成熟時大勢所趨,精通基于Android平臺上應(yīng)用軟件的開發(fā)技術(shù),也是緊隨時代發(fā)展腳步的當(dāng)務(wù)之急。</p><p>  1.5 本文主要結(jié)構(gòu)</p><p>  本篇文章共分為四個章節(jié),從開端到結(jié)尾循序漸進地論述了

49、基于Android平臺開發(fā)應(yīng)用軟件的過程。各個章節(jié)涵蓋內(nèi)容如下。</p><p>  :緒論。向讀者展示了Android的由來和歷史,列舉了從發(fā)布至今Android SDK各個版本及其新特性,引用數(shù)據(jù)說明了Android的現(xiàn)狀及前景,討論了這類課題的研究意義。</p><p> ?。航榻B了Android系統(tǒng)的架構(gòu),Android的四大組件,以及開發(fā)常用的一些控件。</p>&

50、lt;p>  :對日歷系統(tǒng)進行需求分析,根據(jù)需求設(shè)計系統(tǒng)功能,例舉其中的核心代碼介紹系統(tǒng)是如何實現(xiàn)的,實現(xiàn)后對日歷系統(tǒng)進行了測試。</p><p> ?。簩φ麄€論文的工作過程進行了總結(jié),討論了Android的不足,并對其發(fā)展趨勢進行展望。</p><p>  2 Android系統(tǒng)核心技術(shù)概述</p><p>  2.1 Android的體系結(jié)構(gòu)</p&

51、gt;<p>  在Android操作系統(tǒng)中,將體系結(jié)構(gòu)劃分為四層;應(yīng)用層(Application)、應(yīng)用框架層(Application Framework)、系統(tǒng)運行庫層(Libraries)以及Linux內(nèi)核層(Linux Kernel)。這四層架構(gòu)如圖2-1所示[8]。 </p><p>  圖1-6 Android的體系結(jié)構(gòu)</p><p> ?。?)應(yīng)用層(Appl

52、ication)</p><p>  應(yīng)用層是和用戶交互的一個層次,用戶可以看得見的一些應(yīng)用,用戶可以操作。這類應(yīng)用基本都是通過Java語言編寫的獨立的能夠完成某些功能的應(yīng)用程序。Android本身提供了桌面(Home),聯(lián)系人(Contacts),撥打電話(Phone),瀏覽器(Browsers)等很多基本的應(yīng)用程序。開發(fā)人員可以使用應(yīng)用框架提供的API編寫自己的應(yīng)用程序,普通開發(fā)人員要做的事情就是開應(yīng)用層的程

53、序提供該廣大消費者使用。</p><p>  (2)應(yīng)用框架層(Application Framework)</p><p>  普通開發(fā)者可以使用Android基本應(yīng)用程序使用的系統(tǒng)API,android 應(yīng)用框架中的各個模塊都可以被復(fù)用,各種服務(wù)也可以被復(fù)用,理解了這個機制,開發(fā)人員可以更好的更輕松的開發(fā)出優(yōu)秀的android應(yīng)用。開發(fā)過程中常用到的基本框架組件如下;</p>

54、;<p>  1)一組View(UI 組件),這些UI組件包括Button(按鈕),EidtView(文本框),TextView(標(biāo)簽),List(列表)等等,靈活運用這些組件可以快速方便的創(chuàng)建良好的用戶交互界面。</p><p>  2) Content Providers(內(nèi)容提供者),聽起來有點抽象,通俗的理解Content Provider 就是提供一種服務(wù),通過這種服務(wù)應(yīng)用程序之間可以實現(xiàn)

55、數(shù)據(jù)的互相訪問和共享,比如通訊錄的存儲就使用了這種服務(wù),其它應(yīng)用也可以訪問通訊錄中存儲的聯(lián)系人信息。</p><p>  3) Resource Manager 顧名思義就是資源管理,android中的資源很多包括圖片,用戶界面(Layout xml),字體,顏色,UI組件的ID等等都可以稱之為資源,這些豐富的資源,都是通過Resource Manager來統(tǒng)一進行管理。</p><p>

56、  4) Notification Manager(消息通知管理),它在不影響用戶正常操作和使用設(shè)備的時候在狀態(tài)欄上提供消息的提示。比如有短信來的時候,android自動會將這個消息提示在狀態(tài)欄上,用戶可以及時的看到。</p><p>  5) Activity Manager(活動管理),Activity管理著應(yīng)用程序的生命周期,并且控制著應(yīng)用的導(dǎo)航,扮演控制器的角色。每個Activity類似于Windows應(yīng)

57、用中的一個wendow。一般的應(yīng)用都是通過一個個Activity交互構(gòu)成的。</p><p>  6) Window Manager(窗口管理),管理所有啟動的窗口。</p><p>  7) Location Manager(位置管理),用來管理地圖服務(wù)的相關(guān)功能。</p><p>  8) Telephoney Manager(電話管理),用來管理有關(guān)的電話的相

58、關(guān)功能。</p><p>  9) Package Manager(包管理),管理所有的安裝在android系統(tǒng)內(nèi)的應(yīng)用程序。</p><p> ?。?)系統(tǒng)運行庫層(Libraries)</p><p>  這部分內(nèi)容開始涉及底層,開發(fā)普通的應(yīng)用不會直接對這個層進行操作。這層中包含了一組類庫(Libraries)和運行時(RunTime)。</p>

59、<p>  1)系統(tǒng)C庫(libc),一個從BSD集成來的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫(libc)它是專門為基于嵌入式Linux的設(shè)備定制的。</p><p>  2)媒體庫(Media Framework),基于PackeVideo OpenCore,該庫支持多種常用的音頻,視頻格式以及回放和錄制,同時支持靜態(tài)圖像文件。編碼格式包括;MPEG4、H.264,MP3、AAC、AMR、JPG、PNG。(3)Surfa

60、ce Manager 對顯示子系統(tǒng)的管理,并且為多個應(yīng)用提供2D,3D圖層的無縫融合。 </p><p>  4)WebKit,一個最新的web瀏覽器引擎,用來支持Andiroid瀏覽器或者嵌入的web視圖。 </p><p>  5)SGL 底層的2D圖形引擎。 </p><p>  6)OPENGL|ES,基于OpenGL ES 1.0 APIs實現(xiàn),該庫可以使

61、用硬件3D加速或者使用高度優(yōu)化的3D軟加速。</p><p>  7)FreeType,位圖(bitmap)和適量(vector)字圖顯示支持。 </p><p>  8)SQLite,一個對所有應(yīng)用程序可用,功能強大的輕量級關(guān)系型數(shù)據(jù)庫引擎。</p><p>  9)Core Libraries 該核心庫提供了Java編程語言核心庫的大多數(shù)功能。</p>

62、;<p>  10)Dalvik VM,android平臺的一個虛擬機,它相當(dāng)于PC中Java的虛擬機JVM。</p><p> ?。?)Linux內(nèi)核層(Linux Kernel)Android 的核心系統(tǒng)服務(wù)依賴于Linux 2.6 內(nèi)核,操作系統(tǒng)為Android提供的服務(wù)包括; </p><p>  1)安全性(Security)。 </p><p&

63、gt;  2)內(nèi)存管理(Memory Management) </p><p>  3)進程管理(Process Management) </p><p>  4)網(wǎng)絡(luò)堆棧(Network Stack)</p><p>  5)驅(qū)動程序模型(Driver Model)</p><p>  對android的整體框架有一定的了解后對與理解and

64、roid的一些機制和應(yīng)用開發(fā)有很大的幫助,只有了解了android框架才能更好的使用android提供的功能和服務(wù)。從而使學(xué)習(xí)android應(yīng)用開發(fā)少走彎路[9]。</p><p>  2.2 Android系統(tǒng)組件</p><p>  一般情況下,有四種組件組成Android應(yīng)用程序;活動--Activity、廣播接收器--Broadcast Intent Receiver、服務(wù)--Se

65、rvice和內(nèi)容提供器--Content Provider。應(yīng)該重視的是,并非每個Android程序都需要構(gòu)建該4個組件,確定要應(yīng)用的組件,應(yīng)該在AndroidMani-fest.xml中列出,它是XML配置文件,可定義程序中的組件的必要條件及功能。最基本的組件就是活動,每個活動往往是一個單獨的屏幕,每個活動均被實現(xiàn)為獨立的類,還由活動基類中繼承過來?;顒宇惪梢燥@示通過視圖控件構(gòu)成的用戶接口,同時就事件發(fā)出響應(yīng);廣播接收器能夠使應(yīng)用程序

66、就外部事件發(fā)出響應(yīng),服務(wù)在Android中擁有比較長的生命周期;內(nèi)容提供器是對外提供數(shù)據(jù)的一個借口, 類似于普通Web運用的Web service借口,根據(jù)標(biāo)準(zhǔn)開放出接口,使另外的應(yīng)用取得數(shù)據(jù)。 </p><p>  (1) Activity 簡介</p><p>  在Android系統(tǒng)中Activity提供可視化的用戶界面,一個Android應(yīng)用通常由多個Activ

67、ity組成。多個Activity組成了Activity棧(Stack),當(dāng)前活動的Activity處于棧頂。Activity有自己的生命周期,由Android系統(tǒng)來控制。</p><p>  (2) Service 簡介</p><p>  顧名思義Service就是運行在后臺的一種服務(wù)程序,一般很少和用戶交互,因此沒有可視化界面定義一個Service類比較簡單,只要繼承Service類,

68、實現(xiàn)其生命周期中的方法就可以了。一個定義好的Service必須在AndroidManifest.xml配置文件注冊,通過<service>元素聲明才能使用.Service有自己的生命周期,我們可以調(diào)用startService()啟動一個Service或者bindService()方法來綁定一個存在的Service </p><p>  (3) Broadcast Receiver 簡介</p&g

69、t;<p>  Broadcast Receiver 顧名思義廣播接收器,它和事件處理機制類似,只不過事件處理機制是程序組件級別的(例如,某個按鈕的單擊事件),而廣播事件處理機制是系統(tǒng)級別的。到目前為止我們可以使用Intent來啟動一個程序組件,我們還可以通過使用sendBroadcast()方法來發(fā)起一個系統(tǒng)級別的事件廣播來傳遞消息。我們可以在你的應(yīng)用程序中實現(xiàn)Broadcast Receiver來監(jiān)聽和響應(yīng)這些廣播的I

70、ntent </p><p>  (4) ContentProvider簡介</p><p>  Content Provider 用來保存和檢索數(shù)據(jù),并且使應(yīng)用程序之間相互訪問數(shù)據(jù)成為可能。它是跨應(yīng)用程序共享數(shù)據(jù)的唯一方法。</p><p>  Android 為常用的數(shù)據(jù)類型(如;音視頻、圖片和聯(lián)系方式等)提供了大量的Content Provider。它們被定義

71、在android.provider包下面。通過這樣定義好的ContentProvider 我們可以方便的進行數(shù)據(jù)操作。當(dāng)然我們必須擁有適當(dāng)?shù)臋?quán)限。我們也可以自己來定ContentProvider共享我們的數(shù)據(jù),方便用戶的訪問[10]。</p><p>  2.3 Android主要控件</p><p> ?。?) EditText</p><p><b>

72、  主要函數(shù):</b></p><p>  setText/getText 設(shè)置/獲取文本內(nèi)容</p><p>  setHint 設(shè)置缺省顯示內(nèi)容</p><p> ?。?) RadioGroup,RadioButton</p><p>  RadioButton的isChecked()判斷是否被選中</p>&l

73、t;p>  獲取選中RadioButon的ID:設(shè)置RadioGroup.setOnCheckedChangeListener方法</p><p>  public onCheckedChanged(RadioGroup group,int checkedId)//checkedId是選中RadioButton的ID。</p><p>  (3)CheckBox</p>

74、<p>  isChecked()判斷是否被選中</p><p>  setOnCheckedChangeListener方法監(jiān)視選中狀態(tài)改變情況</p><p> ?。?)Spinner</p><p><b>  a,顯示數(shù)據(jù)</b></p><p>  b,設(shè)置下拉列表的風(fēng)格(可選)</p>

75、<p>  adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);</p><p>  c,監(jiān)聽選項選擇變更事件</p><p>  setOnItemSelectedListener設(shè)置監(jiān)聽去</p><p>  Spinner.OnItemSel

76、ectedListener類須實現(xiàn)以下兩個方法</p><p>  public void onItemSelected (AdapterView<?> parent, View view, int position, long id)//view 選中項實例,position選擇項在adapter中的位置</p><p>  public void onNothingSele

77、cted(AdapterView<?> arg0)</p><p><b>  d,設(shè)置選中項</b></p><p>  Spinner.setSelection(position)//索引從0開始</p><p>  getSelectedItemPosition ()</p><p>  getSele

78、ctedItem () //該值toString()則為選中內(nèi)容的字符串</p><p>  getSelectedItemId ()</p><p>  getSelectedView ()</p><p> ?。?)AutoCompleteTextView</p><p>  setAdapter設(shè)置數(shù)據(jù)adapter</p>

79、<p>  設(shè)置輸入多少個字符顯示提示AutoCompleteTextView.setThreshold(int threshold)</p><p> ?。?)DatePicker,TimePicker</p><p>  a,DatePicker</p><p>  b,TimePicker</p><p>  c,獲取系統(tǒng)

80、當(dāng)期時間和日期</p><p>  Calendar.getInstance()返回Calendar</p><p>  Calendar.get (int field) ---field 可以為Calendar.YEAR/ Calendar.MONTH/ Calendar.DAY_OF_MONTH/ Calendar.HOUR_OF_DAY/ Calendar.MINUTE</p

81、><p> ?。?)ImageView/ImageButton</p><p><b>  主要方法</b></p><p>  setImageResource 設(shè)置顯示圖片</p><p>  setAlpha 設(shè)置Alpha</p><p>  invalidate 強制更新</p>

82、<p>  setScaleType( ScaleType st) 設(shè)置圖片顯示方式,st是一枚舉</p><p>  setAdjustViewBounds 設(shè)置是否調(diào)整控件適應(yīng)圖片大小</p><p>  setBackgroundResource 設(shè)置背景</p><p> ?。?)GridView(表格顯示一系列圖片)</p>&

83、lt;p><b>  顯示數(shù)據(jù)</b></p><p>  setAdapter(ListAdapter adapter)設(shè)置數(shù)據(jù)適配器.</p><p>  數(shù)據(jù)適配器可以繼承自BaseAdapter,該類 public View getView(int position, View convertView, ViewGroup parent) 返回當(dāng)前選擇的

84、視圖(ImageView)</p><p>  選項選中監(jiān)聽setOnItemSelectedListener</p><p>  getSelectedView()返回當(dāng)前選中的視圖</p><p>  (9)ListView</p><p>  a.顯示數(shù)據(jù)setAdapter(ListAdapter adapter)</p>

85、<p>  adapter可為new SimpleCursorAdapter/SimpleAdapter(Context context, int layout, Cursor c, String[] from, int[] to)</p><p>  layout 用來顯示數(shù)據(jù)的模板.顯示一列可用android.R.layout.simple_list_item_1 兩列可用android.R.l

86、ayout.simple_list_item_2</p><p>  多列則需要自己實現(xiàn)xml視圖布局文件</p><p><b>  b. 動態(tài)增刪數(shù)據(jù)</b></p><p>  adapter.notifyDataSetChanged()</p><p>  c.數(shù)據(jù)(可用ArrayList構(gòu)造數(shù)據(jù))</p&

87、gt;<p><b>  from ':</b></p><p>  to 用來顯示對應(yīng)列的空件id</p><p><b>  d.設(shè)置背景色</b></p><p>  setBackGroudRource[11]</p><p><b>  2.4 本章小結(jié)&l

88、t;/b></p><p>  本章節(jié)簡要介紹了Android系統(tǒng)的內(nèi)核結(jié)構(gòu),對其系統(tǒng)構(gòu)架進行了一定的闡述。分別介紹了Activity、Intent、Service及Content Provider四大組件,并列舉了Android SDK中較為常用的一些開發(fā)控件?;诒菊聝?nèi)容,對Android系統(tǒng)底層有了一定程度的理解。</p><p>  3 基于Android的日歷系統(tǒng)</

89、p><p><b>  3.1需求分析</b></p><p>  3.1.1 系統(tǒng)目標(biāo)</p><p>  設(shè)計并實現(xiàn)一款基于Android平臺的日歷系統(tǒng),具備基本的日期顯示功能;能夠顯示公歷、農(nóng)歷、星期、節(jié)日等;并提供日程記事本功能。要求該系統(tǒng)能夠在真機上順利安裝并運行。</p><p>  3.1.2 功能需求描述&l

90、t;/p><p>  該系統(tǒng)除實現(xiàn)基本的日歷功能之外,還有附加的插件以滿足用戶需求。</p><p>  可以使用戶查看當(dāng)天日期為何年何月何日、當(dāng)天是星期幾、陰歷日期為多少。</p><p>  可滿足用戶對于是否閏年、閏幾月、生肖年、干支年的查詢需求。</p><p>  用戶能夠獲的具體日期的節(jié)日信息,包括國際節(jié)日與中國傳統(tǒng)節(jié)日。</p

91、><p>  為用戶提供日程管理功能,允許在指定日期下添加、查詢、刪除、修改提醒事件。</p><p>  可快速將用戶指定的公歷日期轉(zhuǎn)換為農(nóng)歷日期。</p><p>  可快速跳轉(zhuǎn)到用戶想要查看的日期。</p><p>  提供當(dāng)天日期定位功能。</p><p>  3.1.3 界面需求分析</p><

92、;p>  用戶界面(User Interface,簡稱UI)是軟件的重要部分。用戶通過UI來得到服務(wù),后臺的代碼結(jié)構(gòu)往往與用戶的直觀體驗關(guān)系不大,故用戶界面的成功與否直接關(guān)系到用戶軟件的滿意度[12]。</p><p>  界面應(yīng)布局合理,簡潔大方,使用戶對于日期信息一目了然.</p><p>  當(dāng)天日期應(yīng)特殊顯示,使用戶能夠方便快捷地得知當(dāng)天信息。</p><

93、p>  本月日期與非本月日期應(yīng)區(qū)別顯示。</p><p>  允許用戶左右滑動屏幕來跨月查詢。</p><p>  3.1.4 運行需求分析</p><p>  該系統(tǒng)應(yīng)能夠在虛擬機上和真機上順利安裝、運行、卸載;應(yīng)保證運行流暢,不卡機不死機;能夠適應(yīng)不同智能終端的多種設(shè)備屏幕。</p><p>  3.2 系統(tǒng)概要設(shè)計</p&g

94、t;<p>  3.2.1 系統(tǒng)功能結(jié)構(gòu)</p><p>  該日歷系統(tǒng)以顯示當(dāng)月日期及年月日等信息的主界面為主,通過Intent觸發(fā)日程管理界面、公農(nóng)歷轉(zhuǎn)換控件、當(dāng)天日期定位菜單、日期跳轉(zhuǎn)項。功能結(jié)構(gòu)如圖3-1所示。</p><p>  圖3-1 日歷系統(tǒng)功能結(jié)構(gòu)</p><p>  3.2.2 系統(tǒng)界面布局</p><p>

95、  本日歷系統(tǒng)的主界面采用線性布局(Linear Layout)與列表視圖(GridView)相結(jié)合的界面構(gòu)造。圖3-2為主界面的簡要布局示意[13]。</p><p>  圖3-2 主界面的布局示意圖</p><p>  3.3 主要算法與核心代碼實現(xiàn)</p><p><b>  3.3.1 主界面</b></p><p&

96、gt;  主界面提供日期信息顯示,允許呼出菜單欄,并支持左右滑動。</p><p>  主界面顯示Activity</p><p>  public void addTextToTopTextView(TextView view){</p><p>  StringBuffer textDate = new StringBuffer();</p>&l

97、t;p>  draw = getResources().getDrawable(R.drawable.top_day);</p><p>  view.setBackgroundDrawable(draw);</p><p>  textDate.append(calV.getShowYear()).append("年").append(</p>&

98、lt;p>  calV.getShowMonth()).append("月").append("\t");</p><p>  if (!calV.getLeapMonth().equals("") && calV.getLeapMonth() != null) {</p><p>  textDate.ap

99、pend("閏").append(calV.getLeapMonth()).append("月")</p><p>  .append("\t");</p><p><b>  } </b></p><p>  gridView = new GridView(this);</

100、p><p>  gridView.setNumColumns(7);</p><p>  gridView.setColumnWidth(46);</p><p>  if(Width == 480 && Height == 800){</p><p>  gridView.setColumnWidth(69);</p>

101、;<p><b>  }</b></p><p>  gridView.setGravity(Gravity.CENTER_VERTICAL);</p><p>  gridView.setSelector(new ColorDrawable(Color.TRANSPARENT)); gridView.setVerticalSpacing(1);&l

102、t;/p><p>  gridView.setHorizontalSpacing(1);</p><p>  gridView.setBackgroundResource(R.drawable.gridview_bk);</p><p><b> ?。?)創(chuàng)建菜單</b></p><p>  public boolean o

103、nCreateOptionsMenu(Menu menu) {</p><p>  menu.add(0, menu.FIRST, menu.FIRST, "今天");</p><p>  menu.add(0, menu.FIRST+1, menu.FIRST+1, "跳轉(zhuǎn)");</p><p>  menu.add(0,

104、menu.FIRST+2, menu.FIRST+2, "日程");</p><p>  menu.add(0, menu.FIRST+3, menu.FIRST+3, "日期轉(zhuǎn)換");</p><p>  return super.onCreateOptionsMenu(menu);</p><p><b>  }

105、</b></p><p><b>  左右滑動屏幕</b></p><p>  public class CalendarActivity extends Activity implements OnGestureListener {</p><p><b>  @Override</b></p>

106、<p>  public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,</p><p>  float velocityY) {</p><p>  int gvFlag = 0; //每次添加gridview到viewflipper中時給的標(biāo)記</p><p

107、>  if (e1.getX() - e2.getX() > 120) {</p><p><b>  //像左滑動</b></p><p>  addGridView(); //添加一個gridView</p><p>  jumpMonth++; //下一個月</p><p>  calV =

108、 new CalendarView(this, getResources(),jumpMonth,jumpYear,year_c,month_c,day_c);</p><p>  gridView.setAdapter(calV);</p><p>  //flipper.addView(gridView);</p><p>  addTextToTopTextV

109、iew(topText);</p><p><b>  gvFlag++;</b></p><p>  flipper.addView(gridView, gvFlag);</p><p>  this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_le

110、ft_in));</p><p>  this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_out));</p><p>  this.flipper.showNext();</p><p>  flipper.removeViewAt(0);</p>

111、;<p>  return true;</p><p>  } else if (e1.getX() - e2.getX() < -120) {</p><p><b>  //向右滑動</b></p><p>  addGridView(); //添加一個gridView</p><p>  j

112、umpMonth--; //上一個月</p><p>  calV = new CalendarView(this, getResources(),jumpMonth,jumpYear,year_c,month_c,day_c);</p><p>  gridView.setAdapter(calV);</p><p><b>  gvFlag++

113、;</b></p><p>  return true;</p><p><b>  }</b></p><p>  return false;</p><p><b>  }</b></p><p>  3.3.2 菜單項目操作</p><p

114、>  菜單欄包含四項功能操作;當(dāng)今日期定位、指定日期跳轉(zhuǎn)、日程管理以及公農(nóng)歷轉(zhuǎn)化。</p><p><b>  定位至今天日期</b></p><p>  public boolean onMenuItemSelected(int featureId, MenuItem item) {</p><p>  switch (item.get

溫馨提示

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

最新文檔

評論

0/150

提交評論