基于安卓的多功能時鐘APP設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于安卓的多功能時鐘APP設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于安卓的多功能時鐘APP設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于安卓的多功能時鐘APP設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于安卓的多功能時鐘APP設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于安卓的多功能時鐘APP基于安卓的多功能時鐘APP設(shè)計(jì)與實(shí)現(xiàn)目 錄摘 要 1ABSTRACT 2第1章緒論 3開發(fā)背景 3研究現(xiàn)狀 5本文的主要工作 6論文的組織結(jié)構(gòu) 6第2章安卓相關(guān)介紹 7安卓系統(tǒng)介紹 7安卓技術(shù)簡介 7安卓應(yīng)用程序組件 8AndroidStudio簡介 10架構(gòu)組成 10主要功能 10第3章需求分析 12多功能時鐘的功能需求 12多功能時鐘的性能需求 13第4章多功能時鐘的架構(gòu)設(shè)計(jì) 14多功能時鐘設(shè)計(jì)目標(biāo)和原則 14多功能時鐘的架構(gòu)設(shè)計(jì) 14多功能時鐘的功能設(shè)計(jì) 15第5章多功能時鐘的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 18界面設(shè)計(jì) 18多功能時鐘的功能設(shè)計(jì) 19顯示時間功能 19鬧鐘功能 21計(jì)時器功能 27秒表功能 29第6章多功能時鐘的實(shí)現(xiàn)與測試 32多功能時鐘的架構(gòu)實(shí)現(xiàn)與測試 32多功能時鐘的模塊實(shí)現(xiàn)與測試 32結(jié)論 33致謝 34參考文獻(xiàn) 35附錄 36附錄1英文原文 36附錄2中文譯文 41應(yīng)用程序基礎(chǔ)AndroidDevelopers 41基于安卓的多功能時鐘APP基于安卓的多功能時鐘APP設(shè)計(jì)與實(shí)現(xiàn)摘 要隨著移動通訊技術(shù)的快速發(fā)展逐漸趨于成熟以及手機(jī)、平板等各類智能設(shè)備用戶數(shù)量的增長,應(yīng)用逐漸趨向移動化,移動應(yīng)用取得突飛猛進(jìn)地發(fā)展,極大地改變了人們的日常生活。隨著移動用戶數(shù)量的增長,移動應(yīng)用的開發(fā)與更新速度逐漸加快,移動應(yīng)用也為各類智能終端用戶提供了更方便、舒適和豐富多彩的生活。java隨著移動通訊技術(shù)的快速發(fā)展逐漸趨于成熟以及手機(jī)、平板等各類智能設(shè)備用戶數(shù)量的增長,應(yīng)用逐漸趨向移動化,移動應(yīng)用取得突飛猛進(jìn)地發(fā)展,極大地改變了人們的日常生活。隨著移動用戶數(shù)量的增長,移動應(yīng)用的開發(fā)與更新速度逐漸加快,移動應(yīng)用也為各類智能終端用戶提供了更方便、舒適和豐富多彩的生活。javaAndroidAndroidStudio。本應(yīng)用主要包括顯示時鐘功能,可以顯示當(dāng)前時間;鬧鐘功能,可以進(jìn)行鬧鐘的添加和刪除;計(jì)時器功能,可以添加倒計(jì)時時間、開始、暫停、繼續(xù)和重置;秒表功能,可以開始、暫停、繼續(xù)、記錄、重置。首先,本文討論了移動應(yīng)用的開發(fā)背景、現(xiàn)狀,接著進(jìn)行了相關(guān)技術(shù)的介首先,本文討論了移動應(yīng)用的開發(fā)背景、現(xiàn)狀,接著進(jìn)行了相關(guān)技術(shù)的介APPAPPAPPAPPAPP化。關(guān)鍵字:安卓;移動應(yīng)用;多功能;時鐘。ABSTRACTWiththerapiddevelopmentofmobilecommunicationtechnologyisgraduallymatureandsmartdevicesofvarioustypes,suchasmobilephones,tabletthegrowthofthenumberofusers,applicationgraduallyinclinetomobile,mobileapplicationdevelopmentbyleapsandbounds,greatlychangedPeople'sDailylife.Asthegrowthofthenumberofmobileusers,mobileapplicationdevelopmentandupdatespeedgraduallyspeedingup,themobileapplicationalsoprovidesallkindsofintelligentterminaluserswithmoreconvenient,comfortableandcolorfullife.This application is multi-functional clock mobile applications, the use oflanguageistheJavaprogramminglanguage,developmentplatformwasdevelopedbyGoogleAndroiddevelopmentenvironmentAndroidStudio.Thisapplicationismainlyincludingshowingtheclockfunction,itcandisplaythecurrenttime.Thealarmclockfunction,and youcanmakethe alarmclocktoaddanddelete;Timerfunction, you can add the countdown time, start, pause, continue, and Stopwatchfunction,youcanstart,pause,continue,records,reset.First,thispaperdiscussesthedevelopmentofmobileapplicationbackground,presentsituation,thenhascarriedontherelatedtechnologyisintroduced,andthenanalyzesthefunctionsofmulti-functionalclockAPPandperformancerequirements.Onthebasisofdemandanalysis,hascarriedonthemulti-functionalclockAPParchitecturedesignandimplementation.ThenAPPinthedetaileddesign,codingareintroducedindetail.OnthebasisofthedetaileddesignandtherealizationoftheAPP,testing,adjustingandoptimizingimprovement.Keyword:android,mobileapplication,multi-function,clock1開發(fā)背景1021將逐步演化成社會發(fā)展和前進(jìn)的不可缺少的工具。目前移動通信技術(shù)的發(fā)展分為第一代移動通信技術(shù)(1G)、第二代移動通信技術(shù)(2G)、第三代移動通信技術(shù)(3G)、第四代移動通信及其技術(shù)(4G)。1G2.4kbit/s。2G、支持最佳路由、立即計(jì)費(fèi)、與全速率完全兼容的增強(qiáng)型話音編解碼技術(shù)等,通話聲音的質(zhì)量得到了質(zhì)的改變,115/384kbit/s。3G4G3G并且可以進(jìn)行高質(zhì)量視頻圖像的傳輸。4G100Mbps,也可20Mbps智能手機(jī),其具有獨(dú)立的操作系統(tǒng)和運(yùn)行空間,用戶可以自行安裝第三方服務(wù)商提供的程序(軟件、游戲、導(dǎo)航等),并且能夠通過移動通訊網(wǎng)絡(luò)來實(shí)現(xiàn)無線網(wǎng)絡(luò)接入手機(jī)的類型。智能手機(jī)的使用范圍已經(jīng)遍布整個世界,但并不是每個人都知道、熟悉和使用。因?yàn)橹悄苁謾C(jī)具有優(yōu)秀的操作系統(tǒng)、可以自由地安裝各類軟件(僅限安卓系統(tǒng))、完全大屏的全觸屏式操作感這三大特性,(Google(HTC蘋果、諾基亞這五大品牌在全世界最被大眾所知道,而華為(HUAWEI)、聯(lián)想、等品牌在中國備受關(guān)注。智能手機(jī)支持多種操作系統(tǒng),如:谷歌的Android(/安致,全球第一大智能操作系統(tǒng),占據(jù)全球智能手機(jī)操作系統(tǒng)市場79%左右的份額),全球第二大智能操作系統(tǒng)),微軟公司的WindowsPhone(球第三大智能操作系統(tǒng)),RIM公司的黑莓(Blackberry,全球第四大智能操作系統(tǒng)全球第五大智能操作系統(tǒng)(全球第六大智能操作系統(tǒng)),魅族公司的FlymeOS系統(tǒng)等。智能手機(jī)具有六大特點(diǎn):①具備無線接入互聯(lián)網(wǎng)的能力:即需要支持GSMGPRSCDMACDMA1X3G(WCDMA、CDMA-2000、TD-CDMA)4G(HSPA+、FDD-LTE、TDD-LTE)PDAPIM(個人信息管理)、日程記事、任務(wù)安排、多媒體應(yīng)用、瀏覽網(wǎng)頁。③具有開放性的操作系統(tǒng):擁有獨(dú)立的核心處理器程序,使智能手機(jī)的功能可以得到無限擴(kuò)展。④人性化:可以根據(jù)個人需要擴(kuò)展機(jī)器功能。根據(jù)個人需要,實(shí)時擴(kuò)展機(jī)器內(nèi)置功能,以及軟件升級,智能識(CPU)發(fā)展迅速,使智能手機(jī)在運(yùn)行方面越來越極速。安卓平板電腦(AndroidAndroid還可實(shí)現(xiàn)移動商務(wù)辦公,隨時隨地可以使用無線上網(wǎng),系統(tǒng)反應(yīng)速度快,畫面清晰細(xì)膩,觸感輕柔敏銳,機(jī)身細(xì)薄,小巧玲瓏,便于隨身攜帶,比手提電腦AndroidLinuxGoogleAndroidAndyRubinAndroidGoogle2007115Linux2007115Android并且在這天谷歌宣布建立一個全球性的聯(lián)盟組織。201182手機(jī)已占據(jù)全球智能機(jī)市場48%的份額,并在亞太地區(qū)市場占據(jù)統(tǒng)治地位,終Symbian(塞班系統(tǒng))的霸主地位,躍居全球第一。Android系統(tǒng)目前已經(jīng)布滿我們生活的各個方面,如:手機(jī)、平板電腦、Android安卓應(yīng)用如雨后春筍般出現(xiàn),現(xiàn)實(shí)生活中需要很多物品才能實(shí)現(xiàn)的多個功能僅鬧鐘等功能于一體,使其簡單、方便、實(shí)用。研究現(xiàn)狀A(yù)ndroid系統(tǒng)自從出現(xiàn)以來,就以其開放性、豐富的硬件、便于開發(fā)等優(yōu)勢逐漸擴(kuò)大自己的市場份額,尤其在國外,其呼聲日高,正處于迅速發(fā)展的開2012Android28%IPhoneAndroidAndroid終端設(shè)備的人越來越多,人們對智能手機(jī)或設(shè)備的功能需求會越來越高,人們從應(yīng)用商店里下載應(yīng)用,同時對移動應(yīng)用的功能的要求也會越來越高。安卓平臺具有開發(fā)性,開發(fā)的平臺允許任何移動終端廠商加入到安卓聯(lián)盟中來,顯著的開放性可以使其擁有更多的開發(fā)者;安卓具有開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。安卓平臺提供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境,不會受到各種條條框框的阻擾,可想而知,會有多少新穎別致的軟件會誕生。當(dāng)前國內(nèi)手機(jī)市場正在快速向智能手機(jī)推進(jìn),而安卓系統(tǒng)無疑是最大的市場需求。各種安卓應(yīng)用商店的不斷出現(xiàn)、發(fā)展和開發(fā)者的涌入,安卓平臺的應(yīng)用資源優(yōu)勢不斷擴(kuò)大。隨著移動設(shè)備的制造和信息技術(shù)的不斷發(fā)展,智能手機(jī)或者無線終端設(shè)備越來越普遍,各種各樣的安卓應(yīng)用的用戶也越來越多。多功能時鐘作為擁有一個簡單而實(shí)用功能的安卓移動應(yīng)用必將為人們的生活帶來許許多多的便利。顯示時間功能可以讓你隨時知道時間;鬧鐘功能可以提醒人們注意一些容易忽略的時間,可以讓人們養(yǎng)成良好的作息習(xí)慣,可以提醒、通知等;計(jì)時器功能可以進(jìn)行較短時間內(nèi)的提醒鞥;秒表功能可以測量做某件事情的時間等。本文的主要工作Android當(dāng)安裝后點(diǎn)擊進(jìn)入應(yīng)用時,出現(xiàn)的是一個時鐘界面,在界面中間顯示的是當(dāng)前設(shè)備的時間,精確到秒。在界面的上方,有“時鐘”、“鬧鐘”、“計(jì)時器”、“秒表”功能。點(diǎn)擊“鬧鐘”,此時界面中間是空白,下方有“添加鬧鐘”功能;點(diǎn)擊“添加鬧鐘”,會出現(xiàn)一個時鐘界面,上方的時間是當(dāng)前的時通過旋轉(zhuǎn)時鐘上的指針來選擇“分”,“確定”或“取消”;添加之后,長按添加的鬧鐘后,會提示“刪除”,或取消。點(diǎn)擊“計(jì)時器”,會出現(xiàn)00”,依次點(diǎn)擊,輸入數(shù)字進(jìn)行設(shè)定,精確到秒,點(diǎn)擊“開始”進(jìn)行倒計(jì)時,0:0:0:0”,擊“開始”進(jìn)行計(jì)時,“記錄”記錄時間,“暫停”、“繼續(xù)”或“重置”。本文是對這幾個功能開發(fā)的詳細(xì)介紹。論文的組織結(jié)構(gòu)1統(tǒng)智能手機(jī)和平板電腦的發(fā)展現(xiàn)狀。第2章,安卓相關(guān)介紹。介紹了安卓技術(shù)、安卓應(yīng)用程序組件、AndroidStudio的架構(gòu)組成和主要功能。3計(jì)做準(zhǔn)備。4介紹了多功能時鐘的架構(gòu)設(shè)計(jì)和功能設(shè)計(jì),為詳細(xì)設(shè)計(jì)提供參考。5各個功能的設(shè)計(jì)與實(shí)現(xiàn)。6現(xiàn)、測試與調(diào)試,并對出現(xiàn)的問題進(jìn)行分析說明。2安卓系統(tǒng)介紹安卓技術(shù)簡介AndroidLinuxGoogleAndroid的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。從架構(gòu)圖看,Android分為四個層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和Linux內(nèi)核層。1、應(yīng)用程序?qū)覣ndroid會同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編寫的。2、應(yīng)用程序框架API(不過得遵循框架的安全性。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。隱藏在每個應(yīng)(Views),內(nèi)容提供器(ContentProviders),資源管理器(ResourceManager理器(NotificationManager),活動管理器(ActivityManager)。應(yīng)用程序框架呢可以說是一個應(yīng)用程序的核心,是所有參與開發(fā)的程序員共同使用和遵守的約定,大家在其約定上進(jìn)行必要的擴(kuò)展,但程序始終保持主體結(jié)構(gòu)的一致性。其作用是讓程序保持清晰和一目了然,在滿足不同需求的同時又不互Android是應(yīng)用框架層。3、系統(tǒng)運(yùn)行庫Android包含一些C/C++AndroidAndroidC(BSDCLibc(PacketVideoOpenCORE),SurfaceManager(2D3D,LibWebCor(webAndroidweb)4、Linux內(nèi)核層AndroidLinux2.6管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型等都依賴于該內(nèi)核。Linux內(nèi)核同時也作為硬件和軟件棧之間的抽象層,它可隱藏具體硬件細(xì)節(jié)而為上層提供統(tǒng)一的服務(wù)。安卓應(yīng)用程序組件Android你的應(yīng)用程序的不同入口點(diǎn)。不是所有的組件對于用戶都是實(shí)際上的入口點(diǎn),有些是互相依賴的,但是每個組件都有特定的作用——每個都是唯一的構(gòu)建單元,這些構(gòu)建單元定義你應(yīng)用程序的全部行為。有四種不同類型的應(yīng)用程序組件。每種都有不同的用處并且有不同的生命周期。生命周期定義了他們是怎樣被創(chuàng)建和銷毀的。Android開發(fā)四大組件分別是:活動(Activity):用于表現(xiàn)功能。服務(wù)(Service):后臺運(yùn)行服務(wù),不提供界面呈現(xiàn)。廣播接收器(BroadcastReceiver):用于接收廣播。內(nèi)容提供商(ContentProvider):支持在多個應(yīng)用中存儲和讀取數(shù)據(jù),相當(dāng)于數(shù)據(jù)庫。1、ActivitiyAndroidActivityActivity,ActivityAndroid當(dāng)中ActivityActivity,一個編寫郵件Activity,ActivityActivityActivity。Activity當(dāng)中可以添加一些Button、Checkbox等控件??梢钥吹?Activity概念和網(wǎng)頁的概念相當(dāng)類似。一個Activity是由Activity類的子類來實(shí)現(xiàn)的。2、ServiceServiceandroidActivity的級別差不多,ServiceServiceServiceServiceActivity其他的組件,比如一個Activity,可以啟動一個ServiceService是由Service的子類來實(shí)現(xiàn)的。3、BroadcastReceiverAndroid中,Broadcast機(jī)制。而BroadcastReceiverBroadcastBroadcastReceiver應(yīng)。大量的廣播都是由系統(tǒng)產(chǎn)生的。例如屏幕關(guān)閉的廣播,電量不足的廣播,拍了一張相片的廣播。應(yīng)用程序也可以發(fā)出廣播,例如讓其他應(yīng)用程序知道一receiverreceiverBroadcastReceiverIntent4、ContentProviderContentProvider是Android提供的第三方應(yīng)用數(shù)據(jù)的訪問方案。一個Contentprovider管理一組共享的應(yīng)用程序數(shù)據(jù)。你可以把這些數(shù)據(jù)存儲到SQLiteContentprovider(Contentprovider)Android理聯(lián)系人信息的Contentprovider。因此,任何一個應(yīng)用程序在擁有相應(yīng)權(quán)限的情況下都可以訪問這個Contentprovider管理的數(shù)據(jù)(ContactsContract.Data)provider用于管理應(yīng)用程序不與其他程序共享的的私有數(shù)據(jù)也是非常有用的。一個ContentProviderContentProviderAPI。AndroidStudio架構(gòu)組成IDEA,AndroidStudio基于Gradle的構(gòu)建支持;Android專屬的重構(gòu)和快速修復(fù);提示工具以捕獲性能、可用性、版本兼容性等問題;支持ProGuard和應(yīng)用簽名;基于模板的向?qū)砩沙S玫腁ndroid應(yīng)用設(shè)計(jì)和組件;功能強(qiáng)大的布局編輯器,可以讓你拖拉UI控件并進(jìn)行效果預(yù)覽。主要功能2013516I/OAndroidAndroidStudio,并對開發(fā)者控制臺進(jìn)行了改進(jìn),增加了五個新的功能。AndroidStudioAndroid程序的同時看到自己的應(yīng)用在不同尺寸屏幕中的樣子。應(yīng)用翻譯服務(wù)、推薦跟蹤、營收曲線圖、用版測試和階段性展示。1為你的應(yīng)用開發(fā)平板電腦版本。2、應(yīng)用翻譯服務(wù):允許開發(fā)者直接在開發(fā)主體中獲得專業(yè)的翻譯。上傳你的需求,選擇翻譯,其會顯示翻譯方和價格,并在一周內(nèi)發(fā)回譯本。3、推薦跟蹤:允許開發(fā)者找出最有效的廣告。4、營收曲線圖:向開發(fā)者展示其應(yīng)用營收,以國家進(jìn)行劃分。5、試用版測試和階段性展示:開發(fā)者可以對應(yīng)用進(jìn)行測試,然后向測試用戶推出,測試結(jié)果不會對外公布。當(dāng)一個版本的測試結(jié)束,開發(fā)者可以向特定比例用戶推出。AndroidStudio這款開發(fā)工具被首次公布,這也是為了方便開發(fā)者基于Android開發(fā)。首先解決的一個問題是多分辨率。Android設(shè)備擁有大量不同尺寸的屏幕和分辨率,根據(jù)新的Studio,開發(fā)者可以很方便的調(diào)整在各個分辨率設(shè)備上的應(yīng)用。Studio(但是沒有中文版本)譯都讓開發(fā)者更適應(yīng)全球開發(fā)環(huán)境。StudioBetaStudioBetaTesting,開發(fā)者很方便試運(yùn)行。2015529I/OAndroidStudioC++編輯和查錯功能。AndroidStudio1.3C++編輯和查錯功能。3多功能時鐘的功能需求對于應(yīng)用的設(shè)計(jì)目標(biāo),首要原則是以用戶為本,宗旨是滿足用戶的需求。從用戶的需求出發(fā),多功能時鐘這款基于安卓的移動應(yīng)用應(yīng)當(dāng)包含日常生活中時鐘的最基本的功能,能夠顯示當(dāng)前時間,能夠添加和刪除鬧鐘,能夠進(jìn)行倒計(jì)時和能夠進(jìn)行秒表計(jì)時等。多功能時鐘的設(shè)計(jì)需要根據(jù)系統(tǒng)功能的不同對應(yīng)用進(jìn)行模塊劃分,不同的功能獨(dú)立出來形成一個模塊,這樣能夠使我們更好的根據(jù)不同的模塊不同特點(diǎn)有針對性地進(jìn)行代碼編寫。根據(jù)應(yīng)用的總體描述,這款應(yīng)用的功能需求大致分為以下四部分。1、查看時間的功能需求查看時間對于每個時鐘應(yīng)用來說是一個最基本的功能,在設(shè)計(jì)多功能時鐘的時候,為了方便用戶查看時間,設(shè)計(jì)以數(shù)字來顯示時間,簡單明了。2、添加和刪除鬧鐘的功能需求會出現(xiàn)一個界面。界面下方是一個時鐘,界面上方顯示的是當(dāng)前的時間。點(diǎn)擊1260選擇“分”。在此界面還應(yīng)有“確定”和“取消”兩個按鈕。此外還應(yīng)有刪除鬧鐘的功能,因此可以這樣設(shè)計(jì):添加鬧鐘之后,長按添加的鬧鐘,會彈出一個提示,提示“刪除”或者“取消”。3、計(jì)時器的功能需求倒計(jì)時被人們廣泛用于事件提醒。當(dāng)你有事情需要在特定的時間完成或者到某個時間點(diǎn)要完成某件事情的時候。計(jì)時器功能可以提醒你按時完成所需要完成的工作。界面上方顯示為“00:00:00”,可以輸入數(shù)字進(jìn)行設(shè)定,應(yīng)可以精確到秒,界面下方應(yīng)有一個“開始”按鈕,點(diǎn)擊“開始”進(jìn)行倒計(jì)時,之按鈕,計(jì)時器應(yīng)可以進(jìn)行倒計(jì)時。4、秒表的功能需求秒表具有測量時間的功能,秒表的功能需求來源于需要精確計(jì)時的人群,人們可以用秒表測試自己的跑步速度,可以用秒表計(jì)算完成一項(xiàng)任務(wù)所需要的0:0”,應(yīng)可以精確到毫秒,界面下方應(yīng)有一個“開始”按鈕,點(diǎn)擊“開始”進(jìn)行計(jì)時,之后應(yīng)有“暫停”和“記錄”按鈕,“記錄”可以記錄時間,點(diǎn)擊“暫?!焙?,兩個按鈕應(yīng)分別變?yōu)椤袄^續(xù)”和“重置”按鈕。多功能時鐘的性能需求手機(jī)應(yīng)用要有好的發(fā)展空間,就需要能給用戶提供良好的體驗(yàn),而良好的用戶體驗(yàn)是基于應(yīng)用的性能的,一般從界面、操作、提示和響應(yīng)速度等來評價應(yīng)用的性能的。3014多功能時鐘設(shè)計(jì)目標(biāo)和原則1、實(shí)現(xiàn)時鐘的基本功能,可以顯示當(dāng)前時間。2、多功能性,實(shí)現(xiàn)鬧鐘、計(jì)時器、秒表功能。3、易用性,界面良好,操作簡單,容易上手。4、可靠性,響應(yīng)速度快,有一定的容錯能力。多功能時鐘的架構(gòu)設(shè)計(jì)iosandroid4-1多圖4-1圖4-1多功能時鐘架構(gòu)圖圖4-2多功能時鐘開發(fā)流程多功能時鐘的功能設(shè)計(jì)因?yàn)槎喙δ軙r鐘的各個功能之間是單獨(dú)運(yùn)行的,所以多功能時鐘的每個功能都需要單獨(dú)進(jìn)行設(shè)計(jì)。已經(jīng)確定架構(gòu)設(shè)計(jì)后,對各個功能進(jìn)行詳細(xì)的設(shè)計(jì)。1、時鐘4-3時鐘功能結(jié)構(gòu)模型對于時鐘沒有什么太大的要求,只要能顯示當(dāng)前時間就行了。當(dāng)點(diǎn)擊多功APP4-3時鐘功能結(jié)構(gòu)模型2、鬧鐘點(diǎn)擊界面上方的“鬧鐘”按鈕后,進(jìn)入鬧鐘界面,當(dāng)前鬧鐘界面是不存在鬧鐘的,在界面下方設(shè)置一個“添加鬧鐘”按鈕,可以進(jìn)行添加鬧鐘,點(diǎn)擊后會出現(xiàn)一個稍微小一點(diǎn)的界面。界面下方設(shè)置為一個時鐘,界面上方設(shè)計(jì)為鬧鐘顯示的是當(dāng)前的時間。設(shè)計(jì)為點(diǎn)擊上方時間的“時”,下方時鐘的指針設(shè)計(jì)為跳轉(zhuǎn)到時的界面里(默認(rèn)當(dāng)前是在“時”的界面里);設(shè)計(jì)時鐘有兩圈,外1-12,13-00;設(shè)計(jì)為通過旋轉(zhuǎn)時鐘上的指針來選擇“時”。設(shè)計(jì)為點(diǎn)擊上方時間的“分”,下方時鐘的指針是跳轉(zhuǎn)到分的界面里;設(shè)計(jì)時鐘為60應(yīng)有“確定”和“取消”兩個按鈕。此外還應(yīng)有刪除鬧鐘的功能,因此可以這4-4鬧鐘功能結(jié)構(gòu)模型。4-4鬧鐘功能結(jié)構(gòu)模型3、計(jì)時器4-5計(jì)時器功能結(jié)構(gòu)模型4-5計(jì)時器功能結(jié)構(gòu)模型4、秒表4-6秒表功能結(jié)構(gòu)模型4-6秒表功能結(jié)構(gòu)模型5界面設(shè)計(jì)5-1主界面布局5-2安裝界面5-15-1主界面布局5-2安裝界面5-1示。android:id=android:id="@+id/tabTime"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">android:id="@+id/tabAlarm"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">android:id="@+id/tabTimer"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">android:id=android:id="@+id/tabStopWatch"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">tabHosttab5-2tabHost=(TabHost)findViewById(android.R.id.tabHost=(TabHost)findViewById(android.R.id.tabhost);tabHost.setup();tabHost.addTab(tabHost.newTabSpec("tabTime").setIndicator("時鐘").setContent(R.id.tabTime));").setContent(R.id.tabAlarm));").setContent(R.id.tabTimer));tabHost.addTab(tabHost.newTabSpec("tabStopWatch").setIndicator("秒表").setContent(R.id.tabStopWatch));多功能時鐘的功能設(shè)計(jì)顯示時間功能多功能時鐘的顯示時間功能如圖5-3所示。5-3顯示時間功能timerHandlertimerHandler.sendEmptyMessage(0);TimeView,style5-3publicTimeView(Contextcontext,AttributeSetattrs,publicTimeView(Contextcontext,AttributeSetattrs,intdefStyle){super(context,attrs,defStyle);}publicTimeView(Contextcontext,AttributeSetattrs){super(context,attrs);}publicTimeView(Contextcontext){super(context);}換成自己定義的類,在內(nèi)部寫一個TextView,指定它的id和textAppearance。代碼如表5-4所示。<TextView<TextViewandroid:id="@+id/tvTime"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:textAppearance="?android:attr/textAppearanceLarge"/></com.example.administrator.myapplication.TimeView>TextView5-5protectedvoidonFinishInflate(){protectedvoidonFinishInflate(){super.onFinishInflate();tvTime=(TextView)findViewById(R.id.tvTime);tvTime.setText("Hello");}protectedvoidonVisibilityChanged(ViewchangedView,intvisibility){super.onVisibilityChanged(changedView,visibility);if(visibility==View.VISIBLE){timerHandler.sendEmptyMessage(0);}else{timerHandler.removeMessages(0);privateTextViewtvTime;sendEmptyMessage5-65-6設(shè)置刷新時間間隔privatevoidprivatevoidrefreshTime(){Calendarc=Calendar.getInstance();tvTime.setText(String.format("%d:%d:%d",c.get(Calendar.HOUR_OF_DAY),c.get(Calendar.MINUTE),c.get(Calendar.SECOND)));}protectedvoidonFinishInflate(){super.onFinishInflate();tvTime=(TextView)findViewById(R.tectedvoidonFinishInflate(){super.onFinishInflate();tvTime=(TextView)findViewById(R.id.tvTime);tvTime.setText("Hello");timerHandler.sendEmptyMessage(0);}protectedvoidonVisibilityChanged(ViewchangedView,intvisibility){super.onVisibilityChanged(changedView,visibility);if(visibility==View.VISIBLE){timerHandler.sendEmptyMessage(0);}else{timerHandler.removeMessages(0);}}呈現(xiàn)的為時間。代碼如表5-8所示。Calendarc=Calendar.getInstanceCalendarc=Calendar.getInstance();tvTime.setText(String.format("%d:%d:%d",c.get(Calendar.HOUR_OF_DAY),c.get(Calendar.MINUTE),c.get(Calendar.SECOND)));鬧鐘功能5-45-55-6,5-75-8圖圖5-4鬧鐘設(shè)置界面(時)圖5-5鬧鐘設(shè)置界面(分)圖5-6添加鬧鐘后圖5-7鬧鐘的刪除界面圖5-8鬧鐘播放音樂新建一個類,添加構(gòu)造方法。代碼如表5-9所示。publicAlarmView(Contextcontext,AttributeSetattrs,intdefStyle){super(context,attrs,defStyle);publicpublicAlarmView(Contextcontext,AttributeSetattrs,intdefStyle){super(context,attrs,defStyle);publicAlarmView(Contextcontext,AttributeSetattrs){super(context,attrs);init();}publicAlarmView(Contextcontext){super(context);init();換成自己定義的類,在內(nèi)部寫一個ListView,可以呈現(xiàn)添加的按鈕,添加文字為AddAlarm,提取到字符串中,指定id。代碼如表5-10所示。<ListView<ListViewandroid:id="@+id/lvAlarmList"android:layout_width="fill_parent"android:layout_height="0dp"android:layout_weight="1"></ListView><Buttonandroid:id="@+id/btnAddAlarm"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/add_alarm"/></com.example.administrator.myapplication.AlarmView>findViewById5-11protectedvoidonFinishInflate(){protectedvoidonFinishInflate(){super.onFinishInflate();btnAddAlarm=(Button)findViewById(R.id.btnAddAlarm);lvAlarmList=(ListView)findViewById(R.id.lvAlarmList);adapter=newArrayAdapter<AlarmView.AlarmData>(getContext(),android.R.layout.simple_list_item_1);lvAlarmList.setAdapter(adapter);readSavedAlarmList();btnAddAlarm.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewv){addAlarm();addAlarm();}});privateButtonbtnAddAlarm;privateListViewlvAlarmList;data5-12privatestaticclassAlarmData{privatestaticclassAlarmData{publicAlarmData(longtime){this.time=time;date=Calendar.getInstance();date.setTimeInMillis(time);timeLabel=String.format("%d月%d%d:%d",date.get(Calendar.MONTH)+1,date.get(Calendar.DAY_OF_MONTH),date.get(Calendar.HOUR_OF_DAY),date.get(Calendar.MINUTE));}設(shè)置鬧鐘的時間,設(shè)置鬧鐘時間判斷,如果設(shè)置時間小于等于當(dāng)前時間,直接加一天。鬧鐘可以顯示月,日,時,分。代碼如表5-13所示。Calendarcalendar=Calendar.getInstanceCalendarcalendar=Calendar.getInstance();calendar.set(Calendar.HOUR_OF_DAY,hourOfDay);calendar.set(Calendar.MINUTE,minute);calendar.set(Calendar.SECOND,0);calendar.set(Calendar.MILLISECOND,0);CalendarcurrentTime=Calendar.getInstance();if(calendar.getTimeInMillis()<=currentTime.getTimeInMillis()){calendar.setTimeInMillis(calendar.getTimeInMillis()+24*60*60*1000);}AlarmDataad=newAlarmData(calendar.getTimeInMillis());adapter.add(ad);alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,ad.getTime(),5*60*1000,PendingIntent.getBroadcast(getContext(),ad.getId(),newIntent(getContext(),AlarmReceiver.class),0));saveAlarmList();實(shí)現(xiàn)鬧鐘列表的存儲,能夠存儲數(shù)據(jù)。代碼如表5-14所示。StringBuffersb=newStringBuffersb=newStringBuffer();for(inti=0;i<adapter.getCount();i++){sb.append(adapter.getItem(i).getTime()).append(",");}if(sb.length()>1){Stringcontent=sb.toString().substring(0,sb.length()-1);editor.putString(KEY_ALARM_LIST,content);System.out.println(content);}else{editor.putString(KEY_ALARM_LIST,null);}實(shí)現(xiàn)鬧鐘列表的讀取,能夠讀取存儲的數(shù)據(jù)。代碼如表5-15所示。privatevoidreadSavedAlarmList(){privatevoidreadSavedAlarmList(){SharedPreferencessp=getContext().getSharedPreferences(AlarmView.class.getName(),Context.MODE_PRIVATE);Stringcontent=sp.getString(KEY_ALARM_LIST,null);if(content!=null){String[]timeStrings=content.split(",");for(Stringstring:timeStrings){adapter.add(newAlarmData(Long.parseLong(string)));}}}實(shí)現(xiàn)刪除鬧鐘功能,能夠進(jìn)行鬧鐘的刪除。代碼如表5-16所示。AlarmDataad=newAlarmDataad=newAlarmData(calendar.getTimeInMillis());adapter.add(ad);publicStringtoString(){returngetTimeLabel();}publicintgetId(){return(int)(getTime()/1000/60);}AlarmManageram=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);am.cancel(PendingIntent.getBroadcast(context,getResultCode(),newIntent(context,AlarmReceiver.class),0));實(shí)現(xiàn)鬧鐘時間到了之后,音樂的播放。代碼如表5-17所示。表5-17播放音樂界面protectedvoidprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.alarm_player_aty);mp=MediaPlayer.creat(ethis,R.raw.music);mp.start();}protectedvoidonPause(){super.onPause();finish();}protectedvoidonDestroy(){super.onDestroy();mp.stop();mp.release();}設(shè)計(jì)鬧鐘音樂播放界面的布局。代碼如表5-18所示。android:textAppearance=android:textAppearance="?android:attr/textAppearanceLarge"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"android:text="@string/play_sound"/>對播放進(jìn)行注冊和啟動。代碼如表5-19所示。android:allowBackup=android:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme"><activityandroid:name="com.example.administrator.myapplication.MainActivity"android:label="@string/app_name"><intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></intent-filter></activity><receiverandroid:name="AlarmReceiver"></receiver><activityandroid:name="PlayAlarmAty"android:screenOrientation="portrait"></activity></application>Intenti=newIntent(context,PlayAlarmAty.class);context.startActivity(i););計(jì)時器功能5-9計(jì)時器初始界面5-10設(shè)置時間5-95-105-115-9計(jì)時器初始界面5-10設(shè)置時間ButtonButtonandroid:id="@+id/btnStart"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"5-11計(jì)時器暫停界面5-12計(jì)時結(jié)束界面在界面上呈現(xiàn)出“時”,分和秒類似。代碼如表5-20所示。<EditTextandroid<EditTextandroid:id="@+id/etHour"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:inputType="number"android:singleLine="true"android:textAppearance="?android:attr/textAppearanceLarge"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text=":"android:textAppearance="?android:attr/textAppearanceLarge"/>5-215-21按鈕的設(shè)置androidandroid:text="@string/start"/>初始化的操作,顯示出“00:00:00”。代碼如表5-22所示。publicvoidonClick(Viewv){publicvoidonClick(Viewv){stopTimer();etHour.setText("0");etMin.setText("0");etSec.setText("0");btnReset.setVisibility(View.GONE);btnResume.setVisibility(View.GONE);btnPause.setVisibility(View.GONE);btnStart.setVisibility(View.VISIBLE);}對四個按鈕的功能進(jìn)行設(shè)置。代碼如表5-23所示。btnPause=(Button)findViewById(R.id.btnPause=(Button)findViewById(R.id.btnPause);btnPause.setOnClickListener(newView.OnClickListener(){btnReset=(Button)findViewById(R.id.btnReset);btnReset.setOnClickListener(newView.OnClickListener(){btnResume=(Button)findViewById(R.id.btnResume);btnResume.setOnClickListener(newView.OnClickListener(){btnStart=(Button)findViewById(R.id.btnStart);btnStart.setOnClickListener(newView.OnClickListener(){計(jì)時結(jié)束時彈出的界面設(shè)計(jì)。代碼如表5-24所示。privateHandlerprivateHandlerhandler=newHandler(){publicvoidhandleMessage(android.os.Messagemsg){switch(msg.what){caseMSG_WHAT_TIME_TICK:inthour=allTimerCount/60/60;intmin=intsec=allTimerCount%60;etHour.setText(hour+"");etMin.setText(min+"");etSec.setText(sec+"");秒表功能秒表功能的初始界面如圖5-13所示。開始計(jì)時的界面如圖5-14所示。記圖5圖5-13秒表初始界面圖5-14開始計(jì)時圖5-15記錄時間圖5-16暫停界面5-25示。<TextView<TextViewandroidandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text=":"android:textAppearance="?android:attr/textAppearanceLarge"/>初始化的操作,顯示“00:00:00:00”代碼如表5-26所示。tvHour=(TextView)findViewById(R.id.timeHourtvHour=(TextView)findViewById(R.id.timeHour);tvHour.setText("0");tvMin=(TextView)findViewById(R.id.timeMin);tvMin.setText("0");tvSec=(TextView)findViewById(R.id.timeSec);tvSec.setText("0");tvMSec=(TextView)findViewById(R.id.timeMSec);tvMSec.setText("0");對暫停按鈕的進(jìn)行設(shè)置,開始、、繼續(xù)、重置、記錄的設(shè)置與其類似。代碼如表5-27所示。btnPause=(Button)findViewById(R.id.btnPause=(Button)findViewById(R.id.btnSWPause);btnPause.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewv){stopTimer();btnResume.setVisibility(View.VISIBLE);btnLap.setVisibility(View.GONE);btnReset.setVisibility(View.VISIBLE);}}6多功能時鐘的架構(gòu)實(shí)現(xiàn)與測試對于多功能時鐘的架構(gòu)實(shí)現(xiàn),主要體現(xiàn)在各個功能之間的切換。進(jìn)入應(yīng)用時,反應(yīng)速度比較快,比較良好。在各個功能之間切換時,反應(yīng)速度快,響應(yīng)良好。對于快捷方式的圖標(biāo),選擇了可以直接看出應(yīng)用主要功能的圖標(biāo),方便用戶尋找。對于界面的布局,比較簡單、大眾化,但可能有點(diǎn)單調(diào)。操作上還是比較簡單的,用戶可以快速的了解各個功能,達(dá)到了直觀簡便、操作簡單、功能使用的應(yīng)用設(shè)計(jì)的基本要求。多功能時鐘的模塊實(shí)現(xiàn)與測試對于顯示時間功能的實(shí)現(xiàn),結(jié)果基本達(dá)到要求。進(jìn)入應(yīng)用時,處在時鐘界面上,可以正確顯示當(dāng)前的時間,讓用戶能夠直接看到當(dāng)前時間,方便用戶。需要改進(jìn)的地方是此功能只能顯示的當(dāng)前所用設(shè)備的時間,不能進(jìn)行時區(qū)的選擇,這一點(diǎn)稍顯不足,需要繼續(xù)研究進(jìn)行調(diào)整。對于鬧鐘功能的實(shí)現(xiàn),整體效果比較好,可以進(jìn)行鬧鐘的添加和刪除,而且添加鬧鐘界面會顯示一個時鐘,比較新穎,能吸引用戶。采用的刪除方式是而且使畫面看起來比較簡約,可以存儲鬧鐘數(shù)據(jù)。需要改進(jìn)的地方是進(jìn)行鬧鐘時間提示時,無法采用設(shè)備上的音樂,但整體效果還行。對于計(jì)時器功能的實(shí)現(xiàn),效果比較好。可以進(jìn)行時間的設(shè)定,倒計(jì)時、暫停、繼續(xù)和重置。時間到了,會彈出提示。需要改進(jìn)的地方是美觀度不足。對于秒表功能的實(shí)現(xiàn),結(jié)果基本令人滿意。可以進(jìn)行計(jì)時,精確到毫秒,暫停、繼續(xù)、重置和記錄時間。需要改進(jìn)的地方是美觀度不足。結(jié)論APP它的實(shí)用性是比較強(qiáng)的,基本上是每種設(shè)備必帶的應(yīng)用。在時鐘顯示時間的功能的基礎(chǔ)上,添加了鬧鐘、計(jì)時器和秒表功能。雖然有些功能并不完美,但是還是能給用戶帶來比較良好的體驗(yàn),使得用戶能夠節(jié)省時間,簡單操作?;A(chǔ)移動應(yīng)用通常被人們所忽視,是因?yàn)橐徊糠只A(chǔ)移動應(yīng)用的實(shí)用性比較低,而且有可能受使用場合的限制,最主要的是基礎(chǔ)移動應(yīng)用的功能一般般,視覺效果并不是很好,并不能吸引用戶的眼球,但我們不能忽視基礎(chǔ)移動應(yīng)用給用戶帶來的便利之處。我們要把基礎(chǔ)移動應(yīng)用進(jìn)行改動調(diào)整,使其能夠吸引用戶的眼球,即使現(xiàn)在用戶的注意力大多集中在社交軟件、圖書軟件和游戲軟件等。我們要使這些基礎(chǔ)移動應(yīng)用更好地為用戶服務(wù),豐富用戶地生活。多功能時鐘APP的開發(fā)使我得到了一個很好的學(xué)習(xí)安卓系統(tǒng)、應(yīng)用開發(fā)的機(jī)會,通過學(xué)習(xí)和使用編程進(jìn)行應(yīng)用開發(fā),對出現(xiàn)問題的解決,我受益匪淺。多功能時鐘是一個可以方便用戶生活的移動應(yīng)用,我開發(fā)的這個應(yīng)用還不是很完美,存在如:可以進(jìn)行時區(qū)的選擇等有待改進(jìn)的地方。解決這些不足,需要進(jìn)一步學(xué)習(xí),規(guī)范和改進(jìn)代碼。致謝在本文即將完成之際,回想本科階段的學(xué)習(xí)生活和為畢業(yè)設(shè)計(jì)努力奮斗的這段時光,我衷心感謝我的指導(dǎo)老師楊公平教授。在完成畢業(yè)設(shè)計(jì)和畢業(yè)論文的這段時光里,楊公平老師對我們的問題有問必答,關(guān)心我們的完成進(jìn)度,盡職盡責(zé),信心指導(dǎo)我們在畢業(yè)設(shè)計(jì)和畢業(yè)論文中出現(xiàn)的問題,幫助我們改正并且完善畢業(yè)設(shè)計(jì)。楊老師平易近人,和藹可親,而且學(xué)識豐富,他深厚的理論素養(yǎng)、淵博的知識、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、無私奉獻(xiàn)的敬業(yè)精神,極大地感染了我們,我想這一切都會讓我們感動銘記和受益終身的。楊老師對我的課程學(xué)習(xí)、課題研究、論文選題和撰寫都給與了極大的關(guān)注和悉心指導(dǎo),在此謹(jǐn)致以誠摯的敬意和衷心的感謝,并祝所有的老師培養(yǎng)出越來越多的優(yōu)秀人才,桃李滿天下!深深地感謝呵護(hù)我成長的父母。每當(dāng)我遇到困難的時候,父母總是第一個20上和物質(zhì)上的無私支持,堅(jiān)定了我追求人生理想的信念。父母的愛是天下最無私的最寬厚的愛。大恩無以言報,惟有以永無止境的奮斗,期待將來輝煌的事業(yè)讓父母為之驕傲。我亦相信自己能達(dá)到目標(biāo)。助下,我順利的解決了生活中遇到的各種困難。感謝我的同學(xué)們,他們無私的幫助,幫助我解決了許多問題。最后,感謝在我成長的過程中給予我?guī)椭乃欣蠋?、家人、朋友和同學(xué)們。參考文獻(xiàn)高洪巖.Android,2012。李興華.Java,2009.[3]李興華.Android[4][美]羅杰等.Android蓋索林.GoogleAndroid,2009.靳巖,姚尚朗.Android,2009.GoogleAndroidSDK2)[M].2010:6-6.[8](美)MarkMurphy(李雪飛、吳明暉譯).BeginningAndroid2[M].人民郵電出版社,2010.[9]李剛.瘋狂Android講義.北京:電子工業(yè)出版社,2015.[10]郭志宏.Android[M].北京:電子工業(yè)出版社,2010.[11Android.北京:機(jī)械工業(yè)出版社,2011.[12Android,2012.[13]BruceEckel.Thinkinginjava(java2011.[14](美)CayS.Horstmann,Gary,2014.KathySierra,BertBates(O'Reilly公司譯).HeadFirst,2007.KathySierra,BertBates.HeadFirstJava.2nded.版社,2005.RyanCohen,TaoWang.Androidapplicationdevelopmentfortheplatform.[Berkeley,CA]:Apress,2014.附錄附錄1英文原文Application Fundamentals/guide/topics/fundamentals.htmlAndroidapplicationsarewrittenintheJavaprogramminglanguage.ThecompiledJavacode—alongwithanydataandresourcefilesrequiredbytheapplication —isbundledbytheaapttoolintoan Androidpackage,anarchivefilemarkedbyan.apksuffix.Thisfileisthevehiclefordistributingtheapplicationandinstallingitmobiledevices;it'sthefileusersdownloadtotheirdevices.Allthecodeinasingle.apkfileisconsideredtobeoneapplication.Inmanyways,eachAndroidapplicationlivesinitsownworld:Bydefault,everyapplicationrunsinitsownLinuxprocess.Androidstartstheprocesswhenanyoftheapplication'scodeneedstobeexecuted,andshutsdowntheprocesswhenit'snolongerneededandsystemresourcesarerequiredbyapplications.Eachprocesshasitsownvirtualmachine(VM),soapplicationcoderunsinisolationfromthecodeofallotherapplications.Bydefault,eachapplicationisassignedauniqueLinuxuserID.Permissionsareset so that the application'sfiles arevisible onlyto that userandonlyto applicationitself—althoughtherearewaystoexportthemtootherapplicationsaswell.It'spossibletoarrangefortwoapplicationstosharethesameuserID,inwhichtheywillbeabletoseeeachother'sfiles.Toconservesystemresources,applicationswiththesameIDcanalsoarrangetoruninthesameLinuxprocess,sharingthesameVM.ApplicationComponentsAcentralfeatureofAndroidisthatoneapplicationcanmakeuseofelementsofother applications (provided those applications permit it). For example, if yourapplicationneedstodisplayascrollinglistofimagesandanotherapplicationhasdevelopedasuitablescrollerandmadeitavailabletoothers,youcancallupon scrollertodothework,ratherthandevelopyourown.Yourapplicationdoesn'tincorporatethecodeoftheotherapplicationorlinktoit.Rather,itsimplystartsupthatpieceoftheotherapplicationwhentheneedarises.Forthistowork,thesystemmustbeabletostartanapplicationprocesswhenanypartofitisneeded,andinstantiatetheJavaobjectsforthatpart.Therefore,unlikeapplicationsonmostothersystems,Androidapplicationsdon'thaveasingleentrypointforeverythingintheapplication(nomain()function,forexample).Rather,theyhaveessentialcomponentsthatthesystemcaninstantiateandrunasneeded.Therearefourtypesofcomponents:ActivitiesAnactivitypresentsavisualuserinterfaceforonefocusedendeavortheusercanundertake.Forexample,anactivitymightpresentalistofmenuitemsuserscanchoosefromor it might displayphotographs alongwith their captions. A messagingapplicationmighthaveoneactivitythatshowsalistofcontactstosendmessagesto,asecondactivitytowritethemessagetothechosencontact,andotheractivitiestoreviewoldmessagesorchangesettings.Thoughtheyworktogethertoformacohesiveuserinterface,eachactivityisindependentoftheothers.EachoneisimplementedasasubclassoftheActivitybaseclass.Anapplicationmightconsist ofjustoneactivityor,likethetext messagingapplicationjustmentioned,itmaycontainseveral.Whattheactivitiesare,andhowmanytherearedepends,ofcourse,ontheapplicationanditsdesign.Typically,oneoftheactivitiesismarkedasthefirstonethatshouldbepresentedtotheuserwhentheapplicationislaunched.Movingfromoneactivitytoanotherisaccomplishedbyhavingthecurrentactivitystartthenextone.Eachactivityisgivenadefaultwindowtodrawin.Typically,thewindowfillsthescreen,butitmightbesmallerthanthescreenandfloatontopofotherwindows.Anactivitycanalsomakeuseofadditionalwindows—forexample,apop-updialogthatcallsforauserresponseinthemidstoftheactivity,orawindowthatpresentsusersw

溫馨提示

  • 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

提交評論