畢業(yè)論文(設(shè)計(jì))基于安卓多功能時(shí)鐘app設(shè)計(jì)與實(shí)現(xiàn)
《畢業(yè)論文(設(shè)計(jì))基于安卓多功能時(shí)鐘app設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《畢業(yè)論文(設(shè)計(jì))基于安卓多功能時(shí)鐘app設(shè)計(jì)與實(shí)現(xiàn)(60頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、畢業(yè)論文(設(shè)計(jì))基于安卓多功能時(shí)鐘app設(shè)計(jì)與實(shí)現(xiàn) 目 錄 摘 要 1 ABSTRACT 2 第1章 緒論 3 1.1 開(kāi)發(fā)背景 3 1.2 研究現(xiàn)狀 5 1.3 本文的主要工作 6 1.4 論文的組織結(jié)構(gòu) 6 第2章 安卓相關(guān)介紹 7 2.1 安卓系統(tǒng)介紹 7 2.1.1 安卓技術(shù)簡(jiǎn)介 7 2.1.2 安卓應(yīng)用程序組件 8 2.2 Android Studio簡(jiǎn)介 10 2.2.1架構(gòu)組成 10 2.2.2主要功能 10 第3章 需求分析 12 3.1 多功能時(shí)鐘的功能需求 12 3.2 多功能時(shí)鐘的性能需求 13 第4章 多功能時(shí)鐘的架構(gòu)設(shè)計(jì) 14 4.1多功能時(shí)鐘設(shè)計(jì)目標(biāo)和原則
2、 14 4.2多功能時(shí)鐘的架構(gòu)設(shè)計(jì) 14 4.3多功能時(shí)鐘的功能設(shè)計(jì) 15 第5章 多功能時(shí)鐘的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 18 5.1 界面設(shè)計(jì) 18 5.2 多功能時(shí)鐘的功能設(shè)計(jì) 19 5.2.1顯示時(shí)間功能 19 5.2.2鬧鐘功能 21 5.2.3計(jì)時(shí)器功能 27 5.2.4秒表功能 29 第6章 多功能時(shí)鐘的實(shí)現(xiàn)與測(cè)試 32 6.1 多功能時(shí)鐘的架構(gòu)實(shí)現(xiàn)與測(cè)試 32 6.2 多功能時(shí)鐘的模塊實(shí)現(xiàn)與測(cè)試 32 結(jié)論 33 致謝 34 參考文獻(xiàn) 35 附錄 36 附錄1 英文原文 36 附錄2 中文譯文 41 應(yīng)用程序基礎(chǔ)Android Developers 41 基于安卓的多功能時(shí)鐘APP設(shè)
3、計(jì)與實(shí)現(xiàn) 摘 要 隨著移動(dòng)通訊技術(shù)的快速發(fā)展逐漸趨于成熟以及手機(jī)、平板等各類(lèi)智能設(shè)備用戶(hù)數(shù)量的增長(zhǎng),應(yīng)用逐漸趨向移動(dòng)化,移動(dòng)應(yīng)用取得突飛猛進(jìn)地發(fā)展,極大地改變了人們的日常生活。隨著移動(dòng)用戶(hù)數(shù)量的增長(zhǎng),移動(dòng)應(yīng)用的開(kāi)發(fā)與更新速度逐漸加快,移動(dòng)應(yīng)用也為各類(lèi)智能終端用戶(hù)提供了更方便、舒適和豐富多彩的生活。 本應(yīng)用是多功能時(shí)鐘手機(jī)應(yīng)用程序,使用的語(yǔ)言是java編程語(yǔ)言,開(kāi)發(fā)平臺(tái)是谷歌研發(fā)的Android開(kāi)發(fā)環(huán)境Android Studio。本應(yīng)用主要包括顯示時(shí)鐘功能,可以顯示當(dāng)前時(shí)間;鬧鐘功能,可以進(jìn)行鬧鐘的添加和刪除;計(jì)時(shí)器功能,可以添加倒計(jì)時(shí)時(shí)間、開(kāi)始、暫停、繼續(xù)和重置;秒表功能,可以開(kāi)始、暫
4、停、繼續(xù)、記錄、重置。 首先,本文討論了移動(dòng)應(yīng)用的開(kāi)發(fā)背景、現(xiàn)狀,接著進(jìn)行了相關(guān)技術(shù)的介紹,然后分析了多功能時(shí)鐘APP的功能和性能需求。在需求分析基礎(chǔ)上,進(jìn)行了多功能時(shí)鐘APP的架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)。接著進(jìn)行APP的詳細(xì)設(shè)計(jì),詳細(xì)介紹了代碼編寫(xiě)實(shí)現(xiàn)。在詳細(xì)設(shè)計(jì)的基礎(chǔ)上,給出了APP的實(shí)現(xiàn)、測(cè)試改進(jìn)、調(diào)整優(yōu)化。 關(guān)鍵字:安卓;移動(dòng)應(yīng)用;多功能;時(shí)鐘。 ABSTRACT With the rapid development of mobile communication technology is gradually mature and smart devices of va
5、rious types, such as mobile phones, tablet the growth of the number of users, application gradually incline to mobile, mobile application development by leaps and bounds, greatly changed People's Daily life. As the growth of the number of mobile users, mobile application development and update speed
6、 gradually speeding up, the mobile application also provides all kinds of intelligent terminal users with more convenient, comfortable and colorful life. This application is multi-functional clock mobile applications, the use of language is the Java programming language, development platform was dev
7、eloped by Google Android development environment Android Studio. This application is mainly including showing the clock function, it can display the current time. The alarm clock function, and you can make the alarm clock to add and delete; Timer function, you can add the countdown time, start, paus
8、e, continue, and reset; Stopwatch function, you can start, pause, continue, records, reset. First, this paper discusses the development of mobile application background, present situation, then has carried on the related technology is introduced, and then analyzes the functions of multi-functional
9、clock APP and performance requirements. On the basis of demand analysis, has carried on the multi-functional clock APP architecture design and implementation. Then APP in the detailed design, coding are introduced in detail. On the basis of the detailed design and the realization of the APP, testing
10、, adjusting and optimizing improvement. Keyword: android,mobile application,multi-function,clock 第1章 緒論 1.1 開(kāi)發(fā)背景 在以前的10年里,世界電信發(fā)生了很大的改變,移動(dòng)通信尤其是蜂窩小區(qū)的快速發(fā)展,使得用戶(hù)徹底脫離了終端設(shè)備的限制,達(dá)到了比較完美的個(gè)人移動(dòng)性,靠得住的傳輸信息手段和芯線對(duì)接方式?,F(xiàn)在進(jìn)入21世紀(jì)后,移動(dòng)通信將逐步演化成社會(huì)發(fā)展和前進(jìn)的不可缺少的工具。目前移動(dòng)通信技術(shù)的發(fā)展分為第一代移動(dòng)通信技術(shù)(1G)、第二代移動(dòng)通信技術(shù)(2G)、第三代移動(dòng)通信技術(shù)(3G)、第四代移動(dòng)通
11、信及其技術(shù)(4G)。 1G是根據(jù)模擬進(jìn)行傳輸?shù)?,它的特點(diǎn)是業(yè)務(wù)量比較小、安全性比較差、質(zhì)量比較差、速度低、沒(méi)有加密。1G的傳輸速率約2.4kbit/s。2G主要包括客戶(hù)化應(yīng)用移動(dòng)網(wǎng)絡(luò)增強(qiáng)邏輯(CMAEL)、支持最佳路由(S0)、立即計(jì)費(fèi)、與全速率完全兼容的增強(qiáng)型話(huà)音編解碼技術(shù)等,通話(huà)聲音的質(zhì)量得到了質(zhì)的改變,數(shù)據(jù)傳送速率可達(dá)115/384kbit/s。3G最基本的特征是智能信號(hào)處理技術(shù),它可以提供前兩代通信系統(tǒng)所不能提供的各種寬帶信息業(yè)務(wù)。4G是結(jié)合3G與WLAN,并且可以進(jìn)行高質(zhì)量視頻圖像的傳輸。4G系統(tǒng)下載速度可以達(dá)到100Mbps,也可以以20Mbps的速度上傳,并且可以達(dá)到絕大多數(shù)用
12、戶(hù)關(guān)于無(wú)線網(wǎng)絡(luò)服務(wù)的需求。 智能手機(jī),其具有獨(dú)立的操作系統(tǒng)和運(yùn)行空間,用戶(hù)可以自行安裝第三方服務(wù)商提供的程序(軟件、游戲、導(dǎo)航等),并且能夠通過(guò)移動(dòng)通訊網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)無(wú)線網(wǎng)絡(luò)接入手機(jī)的類(lèi)型。智能手機(jī)的使用范圍已經(jīng)遍布整個(gè)世界,但并不是每個(gè)人都知道、熟悉和使用。因?yàn)橹悄苁謾C(jī)具有優(yōu)秀的操作系統(tǒng)、可以自由地安裝各類(lèi)軟件(僅限安卓系統(tǒng))、完全大屏的全觸屏式操作感這三大特性,所以完全終結(jié)了前幾年的鍵盤(pán)式手機(jī)。其中谷歌(Google)、三星、宏達(dá)電(HTC)、蘋(píng)果、諾基亞這五大品牌在全世界最被大眾所知道,而華為(HUAWEI)、聯(lián)想(Lenovo)、小米(MI)、魅族(MEIZU)、酷派(Coolpad)、
13、金立(GIONEE)、中興(ZTE)、一加手機(jī)(oneplus)、天宇(K-Touch)等品牌在中國(guó)備受關(guān)注。 智能手機(jī)支持多種操作系統(tǒng),如:谷歌的Android(中文:安卓/安致,全球第一大智能操作系統(tǒng),占據(jù)全球智能手機(jī)操作系統(tǒng)市場(chǎng)79%左右的份額),蘋(píng)果公司的IOS(全球第二大智能操作系統(tǒng)),微軟公司的Windows Phone(全球第三大智能操作系統(tǒng)),RIM公司的黑莓(Blackberry,全球第四大智能操作系統(tǒng)),塞班公司的Symbian(全球第五大智能操作系統(tǒng)),三星集團(tuán)的bada(全球第六大智能操作系統(tǒng)),魅族公司的Flyme OS系統(tǒng)等。 智能手機(jī)具有六大特點(diǎn):①具備無(wú)線接
14、入互聯(lián)網(wǎng)的能力:即需要支持GSM網(wǎng)絡(luò)下的GPRS或者CDMA網(wǎng)絡(luò)的CDMA1X或3G(WCDMA、CDMA-2000、TD-CDMA)網(wǎng)絡(luò),甚至4G(HSPA+、FDD-LTE、TDD-LTE)。②具有PDA的功能:包括PIM(個(gè)人信息管理)、日程記事、任務(wù)安排、多媒體應(yīng)用、瀏覽網(wǎng)頁(yè)。③具有開(kāi)放性的操作系統(tǒng):擁有獨(dú)立的核心處理器(CPU)和內(nèi)存,可以安裝更多的應(yīng)用程序,使智能手機(jī)的功能可以得到無(wú)限擴(kuò)展。④人性化:可以根據(jù)個(gè)人需要擴(kuò)展機(jī)器功能。根據(jù)個(gè)人需要,實(shí)時(shí)擴(kuò)展機(jī)器內(nèi)置功能,以及軟件升級(jí),智能識(shí)別軟件兼容性,實(shí)現(xiàn)了軟件市場(chǎng)同步的人性化功能。⑤功能強(qiáng)大:擴(kuò)展性能強(qiáng),第三方軟件支持多。⑥運(yùn)行速度
15、快:隨著半導(dǎo)體業(yè)的發(fā)展,核心處理器(CPU)發(fā)展迅速,使智能手機(jī)在運(yùn)行方面越來(lái)越極速。 安卓平板電腦(Android平板電腦)是搭載了谷歌Android操作系統(tǒng)的平板電腦,可以進(jìn)行商務(wù)定制的一款定位于筆記本電腦與智能手機(jī)之間的移動(dòng)商務(wù)終端,同時(shí)也是是一款攜帶方便而且通信功能完善而強(qiáng)大的移動(dòng)數(shù)據(jù)終端。安卓平板電腦(Android 平板電腦)功能強(qiáng)大,不僅可搭載豐富的消費(fèi)類(lèi)娛樂(lè)應(yīng)用,還可實(shí)現(xiàn)移動(dòng)商務(wù)辦公,隨時(shí)隨地可以使用無(wú)線上網(wǎng),系統(tǒng)反應(yīng)速度快,畫(huà)面清晰細(xì)膩,觸感輕柔敏銳,機(jī)身細(xì)薄,小巧玲瓏,便于隨身攜帶,比手提電腦更輕巧,比手機(jī)屏幕更寬廣,但又具有手提電腦上網(wǎng)查詢(xún)看電影看網(wǎng)頁(yè)的功能,以及手機(jī)翻
16、閱信息、收發(fā)郵件、撥打電話(huà)的功能。 Android是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)。尚未有統(tǒng)一中文名稱(chēng),中國(guó)大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開(kāi)發(fā),主要支持手機(jī)。Android一詞的本義指“機(jī)器人”,同時(shí)也是Google于x年11月5日宣布的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)的名稱(chēng),該平臺(tái)由操作系統(tǒng)、中間件、用戶(hù)界面和應(yīng)用軟件組成。x年11月5日,谷歌公司正式向外界展示了這款名為Android的操作系統(tǒng),并且在這天谷歌宣布建立一個(gè)全球性的
17、聯(lián)盟組織。x年8月2日,Android手機(jī)已占據(jù)全球智能機(jī)市場(chǎng)48%的份額,并在亞太地區(qū)市場(chǎng)占據(jù)統(tǒng)治地位,終結(jié)了Symbian(塞班系統(tǒng))的霸主地位,躍居全球第一。 Android系統(tǒng)目前已經(jīng)布滿(mǎn)我們生活的各個(gè)方面,如:手機(jī)、平板電腦、電視、電視盒子、游戲機(jī)、手表和車(chē)載系統(tǒng)等。隨著Android系統(tǒng)的逐步發(fā)展,安卓應(yīng)用如雨后春筍般出現(xiàn),現(xiàn)實(shí)生活中需要很多物品才能實(shí)現(xiàn)的多個(gè)功能僅僅一個(gè)安卓應(yīng)用就可以實(shí)現(xiàn)。在這里,通過(guò)編程實(shí)現(xiàn)多功能時(shí)鐘,可以集手表、鬧鐘等功能于一體,使其簡(jiǎn)單、方便、實(shí)用。 1.2 研究現(xiàn)狀 Android系統(tǒng)自從出現(xiàn)以來(lái),就以其開(kāi)放性、豐富的硬件、便于開(kāi)發(fā)等優(yōu)勢(shì)逐漸擴(kuò)大自己的
18、市場(chǎng)份額,尤其在國(guó)外,其呼聲日高,正處于迅速發(fā)展的開(kāi)拓階段。x年第一季度,在美國(guó),基于Android系統(tǒng)的智能手機(jī)的銷(xiāo)售量已占據(jù)整個(gè)美、美國(guó)手機(jī)銷(xiāo)售量的28%份額,而IPhone手機(jī)的市場(chǎng)份額緊追其后。隨著Android系統(tǒng)的不斷發(fā)展和更新,選擇Android系統(tǒng)的智能手機(jī)或者無(wú)線終端設(shè)備的人越來(lái)越多,人們對(duì)智能手機(jī)或設(shè)備的功能需求會(huì)越來(lái)越高,人們從應(yīng)用商店里下載應(yīng)用,同時(shí)對(duì)移動(dòng)應(yīng)用的功能的要求也會(huì)越來(lái)越高。 安卓平臺(tái)具有開(kāi)發(fā)性,開(kāi)發(fā)的平臺(tái)允許任何移動(dòng)終端廠商加入到安卓聯(lián)盟中來(lái),顯著的開(kāi)放性可以使其擁有更多的開(kāi)發(fā)者;安卓具有開(kāi)放性,眾多的廠商會(huì)推出千奇百怪,功能特色各具的多種產(chǎn)品。安卓平臺(tái)提
19、供給第三方開(kāi)發(fā)商一個(gè)十分寬泛、自由的環(huán)境,不會(huì)受到各種條條框框的阻擾,可想而知,會(huì)有多少新穎別致的軟件會(huì)誕生。當(dāng)前國(guó)內(nèi)手機(jī)市場(chǎng)正在快速向智能手機(jī)推進(jìn),而安卓系統(tǒng)無(wú)疑是最大的市場(chǎng)需求。各種安卓應(yīng)用商店的不斷出現(xiàn)、發(fā)展和開(kāi)發(fā)者的涌入,安卓平臺(tái)的應(yīng)用資源優(yōu)勢(shì)不斷擴(kuò)大。 隨著移動(dòng)設(shè)備的制造和信息技術(shù)的不斷發(fā)展,智能手機(jī)或者無(wú)線終端設(shè)備越來(lái)越普遍,各種各樣的安卓應(yīng)用的用戶(hù)也越來(lái)越多。多功能時(shí)鐘作為擁有一個(gè)簡(jiǎn)單而實(shí)用功能的安卓移動(dòng)應(yīng)用必將為人們的生活帶來(lái)許許多多的便利。顯示時(shí)間功能可以讓你隨時(shí)知道時(shí)間;鬧鐘功能可以提醒人們注意一些容易忽略的時(shí)間,可以讓人們養(yǎng)成良好的作息習(xí)慣,可以提醒、通知等;計(jì)時(shí)器功能
20、可以進(jìn)行較短時(shí)間內(nèi)的提醒鞥;秒表功能可以測(cè)量做某件事情的時(shí)間等。 1.3 本文的主要工作 本文在現(xiàn)有的Android發(fā)展現(xiàn)狀基礎(chǔ)上,展示了一款基于安卓的移動(dòng)應(yīng)用-多功能時(shí)鐘的構(gòu)建的邏輯思路、系統(tǒng)架構(gòu)以及各個(gè)功能的詳細(xì)實(shí)現(xiàn)與調(diào)試過(guò)程。 當(dāng)安裝后點(diǎn)擊進(jìn)入應(yīng)用時(shí),出現(xiàn)的是一個(gè)時(shí)鐘界面,在界面中間顯示的是當(dāng)前設(shè)備的時(shí)間,精確到秒。在界面的上方,有“時(shí)鐘”、“鬧鐘”、“計(jì)時(shí)器”、“秒表”功能。點(diǎn)擊“鬧鐘”,此時(shí)界面中間是空白,下方有“添加鬧鐘”功能;點(diǎn)擊“添加鬧鐘”,會(huì)出現(xiàn)一個(gè)時(shí)鐘界面,上方的時(shí)間是當(dāng)前的時(shí)間,精確到分;點(diǎn)擊“時(shí)”,通過(guò)旋轉(zhuǎn)時(shí)鐘上的指針來(lái)選擇“時(shí)”;點(diǎn)擊“分”,通過(guò)旋轉(zhuǎn)時(shí)鐘上的指針來(lái)
21、選擇“分”,“確定”或“取消”;添加之后,長(zhǎng)按添加的鬧鐘后,會(huì)提示“刪除”,或取消。點(diǎn)擊“計(jì)時(shí)器”,會(huì)出現(xiàn)“00:00:00”,依次點(diǎn)擊,輸入數(shù)字進(jìn)行設(shè)定,精確到秒,點(diǎn)擊“開(kāi)始”進(jìn)行倒計(jì)時(shí),“暫?!?、“繼續(xù)”或“重置”。點(diǎn)擊“秒表”,會(huì)出現(xiàn)“0:0:0:0”,點(diǎn)擊“開(kāi)始”進(jìn)行計(jì)時(shí),“記錄”記錄時(shí)間,“暫?!薄ⅰ袄^續(xù)”或“重置”。本文是對(duì)這幾個(gè)功能開(kāi)發(fā)的詳細(xì)介紹。 1.4 論文的組織結(jié)構(gòu) 第1章,緒論。主要描述的是基于安卓的多功能時(shí)鐘的開(kāi)發(fā)背景,安卓系統(tǒng)智能手機(jī)和平板電腦的發(fā)展現(xiàn)狀。 第2章,安卓相關(guān)介紹。介紹了安卓技術(shù)、安卓應(yīng)用程序組件、Android Studio的架構(gòu)組成和主要功能。
22、 第3章,需求分析。對(duì)多功能時(shí)鐘的功能和性能進(jìn)行需求分析,為后續(xù)設(shè)計(jì)做準(zhǔn)備。 第4章,多功能時(shí)鐘的架構(gòu)設(shè)計(jì)。描述了多功能時(shí)鐘的設(shè)計(jì)目標(biāo)和原則,介紹了多功能時(shí)鐘的架構(gòu)設(shè)計(jì)和功能設(shè)計(jì),為詳細(xì)設(shè)計(jì)提供參考。 第5章,多功能時(shí)鐘的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)。介紹了多功能時(shí)鐘的界面設(shè)計(jì)和各個(gè)功能的設(shè)計(jì)與實(shí)現(xiàn)。 第6章,多功能時(shí)鐘的實(shí)現(xiàn)與測(cè)試。介紹了多功能時(shí)鐘的架構(gòu)和模塊的實(shí)現(xiàn)、測(cè)試與調(diào)試,并對(duì)出現(xiàn)的問(wèn)題進(jìn)行分析說(shuō)明。 第2章 安卓相關(guān)介紹 2.1 安卓系統(tǒng)介紹 2.1.1 安卓技術(shù)簡(jiǎn)介 Android是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公
23、司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)。Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。從架構(gòu)圖看,Android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核層。 1、應(yīng)用程序?qū)?Android會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括客戶(hù)端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語(yǔ)言編寫(xiě)的。 2、應(yīng)用程序框架 開(kāi)發(fā)人員也可以完全訪問(wèn)核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡(jiǎn)化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過(guò)得
24、遵循框架的安全性)。同樣,該應(yīng)用程序重用機(jī)制也使用戶(hù)可以方便的替換程序組件。隱藏在每個(gè)應(yīng)用后面的是一系列的服務(wù)和系統(tǒng), 其中包括:豐富而又可擴(kuò)展的視圖(Views),內(nèi)容提供器(Content Providers),資源管理器(Resource Manager),通知管理器 (Notification Manager) ,活動(dòng)管理器( Activity Manager) 。應(yīng)用程序框架呢可以說(shuō)是一個(gè)應(yīng)用程序的核心,是所有參與開(kāi)發(fā)的程序員共同使用和遵守的約定,大家在其約定上進(jìn)行必要的擴(kuò)展,但程序始終保持主體結(jié)構(gòu)的一致性。其作用是讓程序保持清晰和一目了然,在滿(mǎn)足不同需求的同時(shí)又不互相影響。開(kāi)發(fā)應(yīng)用
25、時(shí)都是通過(guò)框架來(lái)與Android底層進(jìn)行交互,接觸最多的就是應(yīng)用框架層。 3、系統(tǒng)運(yùn)行庫(kù) Android 包含一些C/C++庫(kù),這些庫(kù)能被Android系統(tǒng)中不同的組件使用。它們通過(guò) Android 應(yīng)用程序框架為開(kāi)發(fā)者提供服務(wù)。以下是一些核心庫(kù):系統(tǒng) C 庫(kù)(一個(gè)從BSD繼承來(lái)的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫(kù) Libc),媒體庫(kù)(基于PacketVideo OpenCORE),Surface Manager(對(duì)顯示子系統(tǒng)的管理,并且為多個(gè)應(yīng)用程序提 供了2D和3D圖層的無(wú)縫融合), LibWebCore(一個(gè)最新的web瀏覽器引擎用,支持Android瀏覽器和一個(gè)可嵌入的web視圖)4、Linux內(nèi)核層
26、 Android的核心系統(tǒng)服務(wù)基于Linux2.6內(nèi)核,如安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型等都依賴(lài)于該內(nèi)核。Linux內(nèi)核同時(shí)也作為硬件和軟件棧之間的抽象層,它可隱藏具體硬件細(xì)節(jié)而為上層提供統(tǒng)一的服務(wù)。 2.1.2 安卓應(yīng)用程序組件 應(yīng)用程序組件是Android應(yīng)用程序的基本構(gòu)建單元。每個(gè)組件是系統(tǒng)進(jìn)入你的應(yīng)用程序的不同入口點(diǎn)。不是所有的組件對(duì)于用戶(hù)都是實(shí)際上的入口點(diǎn),有些是互相依賴(lài)的,但是每個(gè)組件都有特定的作用——每個(gè)都是唯一的構(gòu)建單元,這些構(gòu)建單元定義你應(yīng)用程序的全部行為。有四種不同類(lèi)型的應(yīng)用程序組件。每種都有不同的用處并且有不同的生命周期。生命周期定義了他們是怎樣被創(chuàng)建
27、和銷(xiāo)毀的。Android開(kāi)發(fā)四大組件分別是:活動(dòng)(Activity):用于表現(xiàn)功能。服務(wù)(Service):后臺(tái)運(yùn)行服務(wù),不提供界面呈現(xiàn)。廣播接收器(BroadcastReceiver):用于接收廣播。內(nèi)容提供商(Content Provider):支持在多個(gè)應(yīng)用中存儲(chǔ)和讀取數(shù)據(jù),相當(dāng)于數(shù)據(jù)庫(kù)。 1、Activitiy Android 中,Activity是所有程序的根本,所有程序的流程都運(yùn)行在Activity 之中,Activity可以算是開(kāi)發(fā)者遇到的最頻繁,也是Android 當(dāng)中最基本的模塊之一。一個(gè)Activity代表一個(gè)單獨(dú)的擁有用戶(hù)界面的屏幕。比如,一個(gè)郵件應(yīng)用程序可能擁有一個(gè)顯
28、示新郵件的列表的Activity,一個(gè)編寫(xiě)郵件的Activity,一個(gè)讀郵件的Activity。雖然這些Activity一起工作,但是他們是相互獨(dú)立的。因此一個(gè)不同的應(yīng)用程序也可以啟動(dòng)這些Activity中的任何一個(gè)(如果郵件應(yīng)用程序允許的話(huà))。Activity 當(dāng)中可以添加一些Button、Check box 等控件??梢钥吹紸ctivity 概念和網(wǎng)頁(yè)的概念相當(dāng)類(lèi)似。一個(gè)Activity是由Activity類(lèi)的子類(lèi)來(lái)實(shí)現(xiàn)的。 2、Service Service 是android 系統(tǒng)中的一種組件,它跟Activity 的級(jí)別差不多,但是他不能自己運(yùn)行,只能后臺(tái)運(yùn)行,并且可以和其他組件進(jìn)行交
29、互。Service 是沒(méi)有界面的長(zhǎng)生命周期的代碼。一個(gè)Service組件是運(yùn)行在后臺(tái)的一個(gè)進(jìn)程,這個(gè)進(jìn)程處理一個(gè)長(zhǎng)時(shí)間的操作或者是一個(gè)遠(yuǎn)程調(diào)用。一個(gè)Service不需要提供一個(gè)用戶(hù)界面。比如,一個(gè)Service可以在用戶(hù)運(yùn)行一個(gè)不同程序的同時(shí)在后臺(tái)播放音樂(lè),或者在不阻塞一個(gè)Activity的用戶(hù)界面的同時(shí)獲取網(wǎng)絡(luò)數(shù)據(jù)。其他的組件,比如一個(gè)Activity,可以啟動(dòng)一個(gè)Service并且與之交互。一個(gè)Service是由Service的子類(lèi)來(lái)實(shí)現(xiàn)的。 3、BroadcastReceiver 在Android 中,Broadcast是一種廣泛運(yùn)用的在應(yīng)用程序之間傳輸信息的機(jī)制。而B(niǎo)roadcast
30、Receiver 是對(duì)發(fā)送出來(lái)的Broadcast進(jìn)行過(guò)濾接受并響應(yīng)的一類(lèi)組件。可以使用BroadcastReceiver 來(lái)讓?xiě)?yīng)用對(duì)一個(gè)外部的事件做出響應(yīng)。大量的廣播都是由系統(tǒng)產(chǎn)生的。例如屏幕關(guān)閉的廣播,電量不足的廣播,拍了一張相片的廣播。應(yīng)用程序也可以發(fā)出廣播,例如讓其他應(yīng)用程序知道一些數(shù)據(jù)已從網(wǎng)上下載了,并且它們可以使用這些數(shù)據(jù)。一個(gè)Broadcastreceiver組件用于響應(yīng)整個(gè)系統(tǒng)的廣播通知。一個(gè)Broadcastreceiver是由BroadcastReceiver的子類(lèi)來(lái)實(shí)現(xiàn)的,并且每個(gè)廣播都是當(dāng)作一個(gè)Intent對(duì)象來(lái)傳遞的。 4、Content Provider Cont
31、ent Provider 是Android提供的第三方應(yīng)用數(shù)據(jù)的訪問(wèn)方案。一個(gè)Contentprovider管理一組共享的應(yīng)用程序數(shù)據(jù)。你可以把這些數(shù)據(jù)存儲(chǔ)到文件系統(tǒng)、一SQLite數(shù)據(jù)庫(kù)、互聯(lián)網(wǎng)或者任何你的應(yīng)用程序可以訪問(wèn)的持久化存儲(chǔ)設(shè)備中。通過(guò)Contentprovider其他的應(yīng)用程序能夠查詢(xún)甚至修改(如果Contentprovider允許修改操作)這些數(shù)據(jù)。例如Android系統(tǒng)提供了管理聯(lián)系人信息的Contentprovider。因此,任何一個(gè)應(yīng)用程序在擁有相應(yīng)權(quán)限的情況下都可以訪問(wèn)這個(gè)Contentprovider管理的數(shù)據(jù)(比如ContactsContract.Data)來(lái)讀取或
32、者修改某個(gè)聯(lián)系人的信息。Contentprovider用于管理應(yīng)用程序不與其他程序共享的的私有數(shù)據(jù)也是非常有用的。一個(gè)ContentProvider是由ContentProvider的子類(lèi)來(lái)實(shí)現(xiàn)的,并且必須實(shí)現(xiàn)一組使其他應(yīng)用程序能與之通信的API。 2.2 Android Studio簡(jiǎn)介 2.2.1架構(gòu)組成 在IDEA的基礎(chǔ)上,Android Studio 提供:基于Gradle的構(gòu)建支持;Android 專(zhuān)屬的重構(gòu)和快速修復(fù);提示工具以捕獲性能、可用性、版本兼容性等問(wèn)題;支持ProGuard和應(yīng)用簽名;基于模板的向?qū)?lái)生成常用的 Android 應(yīng)用設(shè)計(jì)和組件;功能強(qiáng)大的布局編輯器,可以
33、讓你拖拉UI控件并進(jìn)行效果預(yù)覽。 2.2.2主要功能 x年5月16日,在I/O大會(huì)上,谷歌推出新的Android開(kāi)發(fā)環(huán)境——Android Studio,并對(duì)開(kāi)發(fā)者控制臺(tái)進(jìn)行了改進(jìn),增加了五個(gè)新的功能。 Android Studio是谷歌推出了新的Android開(kāi)發(fā)環(huán)境,開(kāi)發(fā)者可以在編寫(xiě)程序的同時(shí)看到自己的應(yīng)用在不同尺寸屏幕中的樣子。 谷歌對(duì)開(kāi)發(fā)者控制臺(tái)進(jìn)行了改進(jìn),增加了五個(gè)新的功能,包括優(yōu)化小貼士、應(yīng)用翻譯服務(wù)、推薦跟蹤、營(yíng)收曲線圖、用版測(cè)試和階段性展示。 1、優(yōu)化小貼士:在主體中打開(kāi)你的應(yīng)用,點(diǎn)擊小貼士,會(huì)得到這樣的建議:為你的應(yīng)用開(kāi)發(fā)平板電腦版本。 2、應(yīng)用翻譯服務(wù):允許開(kāi)發(fā)者
34、直接在開(kāi)發(fā)主體中獲得專(zhuān)業(yè)的翻譯。上傳你的需求,選擇翻譯,其會(huì)顯示翻譯方和價(jià)格,并在一周內(nèi)發(fā)回譯本。 3、推薦跟蹤:允許開(kāi)發(fā)者找出最有效的廣告。 4、營(yíng)收曲線圖:向開(kāi)發(fā)者展示其應(yīng)用營(yíng)收,以國(guó)家進(jìn)行劃分。 5、試用版測(cè)試和階段性展示:開(kāi)發(fā)者可以對(duì)應(yīng)用進(jìn)行測(cè)試,然后向測(cè)試用戶(hù)推出,測(cè)試結(jié)果不會(huì)對(duì)外公布。當(dāng)一個(gè)版本的測(cè)試結(jié)束,開(kāi)發(fā)者可以向特定比例用戶(hù)推出。 Android Studio這款開(kāi)發(fā)工具被首次公布,這也是為了方便開(kāi)發(fā)者基于Android開(kāi)發(fā)。 首先解決的一個(gè)問(wèn)題是多分辨率。Android設(shè)備擁有大量不同尺寸的屏幕和分辨率,根據(jù)新的Studio,開(kāi)發(fā)者可以很方便的調(diào)整在各個(gè)分辨率設(shè)備
35、上的應(yīng)用。 同時(shí)Studio還解決語(yǔ)言問(wèn)題,多語(yǔ)言版本(但是沒(méi)有中文版本)、支持翻譯都讓開(kāi)發(fā)者更適應(yīng)全球開(kāi)發(fā)環(huán)境。Studio還提供收入記錄功能。 最大的改變?cè)谟贐eta測(cè)試的功能。Studio提供了Beta Testing,可以讓開(kāi)發(fā)者很方便試運(yùn)行。 x年5月29日,在谷歌I/O開(kāi)發(fā)者大會(huì)上,谷歌發(fā)布AndroidStudio 1.3版,支持C++編輯和查錯(cuò)功能。Android Studio 1.3版開(kāi)發(fā)碼代碼變得更加容易,速度提升,而且支持C++編輯和查錯(cuò)功能。 第3章 需求分析 3.1 多功能時(shí)鐘的功能需求 對(duì)于應(yīng)用的設(shè)計(jì)目標(biāo),首要原則是
36、以用戶(hù)為本,宗旨是滿(mǎn)足用戶(hù)的需求。從用戶(hù)的需求出發(fā),多功能時(shí)鐘這款基于安卓的移動(dòng)應(yīng)用應(yīng)當(dāng)包含日常生活中時(shí)鐘的最基本的功能,能夠顯示當(dāng)前時(shí)間,能夠添加和刪除鬧鐘,能夠進(jìn)行倒計(jì)時(shí)和能夠進(jìn)行秒表計(jì)時(shí)等。 多功能時(shí)鐘的設(shè)計(jì)需要根據(jù)系統(tǒng)功能的不同對(duì)應(yīng)用進(jìn)行模塊劃分,不同的功能獨(dú)立出來(lái)形成一個(gè)模塊,這樣能夠使我們更好的根據(jù)不同的模塊不同特點(diǎn)有針對(duì)性地進(jìn)行代碼編寫(xiě)。根據(jù)應(yīng)用的總體描述,這款應(yīng)用的功能需求大致分為以下四部分。 1、 查看時(shí)間的功能需求 查看時(shí)間對(duì)于每個(gè)時(shí)鐘應(yīng)用來(lái)說(shuō)是一個(gè)最基本的功能,在設(shè)計(jì)多功能時(shí)鐘的時(shí)候,為了方便用戶(hù)查看時(shí)間,設(shè)計(jì)以數(shù)字來(lái)顯示時(shí)間,簡(jiǎn)單明了。 2、添加和刪除鬧鐘的功能需
37、求 多功能時(shí)鐘設(shè)置鬧鐘時(shí)要制作一個(gè)“添加鬧鐘”的按鈕,點(diǎn)擊“添加鬧鐘”,會(huì)出現(xiàn)一個(gè)界面。界面下方是一個(gè)時(shí)鐘,界面上方顯示的是當(dāng)前的時(shí)間。點(diǎn)擊上方時(shí)間的“時(shí)”,下方時(shí)鐘的指針是跳轉(zhuǎn)到時(shí)的范圍里,有兩圈,一圈12小時(shí);通過(guò)旋轉(zhuǎn)時(shí)鐘上的指針來(lái)選擇“時(shí)”。點(diǎn)擊上方時(shí)間的“分”,下方時(shí)鐘的指針是跳轉(zhuǎn)到分的范圍里,有一圈,一圈60分鐘;通過(guò)旋轉(zhuǎn)時(shí)鐘上的指針來(lái)選擇“分”。在此界面還應(yīng)有“確定”和“取消”兩個(gè)按鈕。此外還應(yīng)有刪除鬧鐘的功能,因此可以這樣設(shè)計(jì):添加鬧鐘之后,長(zhǎng)按添加的鬧鐘,會(huì)彈出一個(gè)提示,提示“刪除”或者“取消”。 3、 計(jì)時(shí)器的功能需求 倒計(jì)時(shí)被人們廣泛用于事件提醒。當(dāng)你有事情需要在特定的時(shí)
38、間完成或者到某個(gè)時(shí)間點(diǎn)要完成某件事情的時(shí)候。計(jì)時(shí)器功能可以提醒你按時(shí)完成所需要完成的工作。界面上方顯示為“00:00:00”,可以輸入數(shù)字進(jìn)行設(shè)定,應(yīng)可以精確到秒,界面下方應(yīng)有一個(gè)“開(kāi)始”按鈕,點(diǎn)擊“開(kāi)始”進(jìn)行倒計(jì)時(shí),之后應(yīng)有“暫?!薄爸刂谩卑粹o,點(diǎn)擊“暫?!焙螅皶和!卑粹o應(yīng)變?yōu)椤袄^續(xù)”按鈕,計(jì)時(shí)器應(yīng)可以進(jìn)行倒計(jì)時(shí)。 4、秒表的功能需求 秒表具有測(cè)量時(shí)間的功能,秒表的功能需求來(lái)源于需要精確計(jì)時(shí)的人群,人們可以用秒表測(cè)試自己的跑步速度,可以用秒表計(jì)算完成一項(xiàng)任務(wù)所需要的精確時(shí)間,可以用秒表測(cè)試自己呼吸頻率、脈搏等等。界面上方顯示為“0:0:0:0”,應(yīng)可以精確到毫秒,界面下方應(yīng)有一個(gè)“開(kāi)始”
39、按鈕,點(diǎn)擊“開(kāi)始”進(jìn)行計(jì)時(shí),之后應(yīng)有“暫?!焙汀坝涗洝卑粹o,“記錄”可以記錄時(shí)間,點(diǎn)擊“暫?!焙?,兩個(gè)按鈕應(yīng)分別變?yōu)椤袄^續(xù)”和“重置”按鈕。 3.2 多功能時(shí)鐘的性能需求 手機(jī)應(yīng)用要有好的發(fā)展空間,就需要能給用戶(hù)提供良好的體驗(yàn),而良好的用戶(hù)體驗(yàn)是基于應(yīng)用的性能的,一般從界面、操作、提示和響應(yīng)速度等來(lái)評(píng)價(jià)應(yīng)用的性能的。 對(duì)于界面來(lái)說(shuō),不同的應(yīng)用有著不同的要求。對(duì)于移動(dòng)應(yīng)用,需要在30秒到1分鐘的時(shí)間內(nèi)吸引用戶(hù)。應(yīng)用應(yīng)當(dāng)設(shè)計(jì)成,一看到應(yīng)用就愿意使用,但這并不意味著需要復(fù)雜的界面,有可能只需要可以給用戶(hù)提供細(xì)節(jié)內(nèi)容就行了。對(duì)于多功能時(shí)鐘的界面,應(yīng)該是簡(jiǎn)單、突出主題。操作應(yīng)該是簡(jiǎn)單,容易學(xué)會(huì)和上
40、手。提示應(yīng)該是簡(jiǎn)單明了,讓用戶(hù)一看就懂。對(duì)于多功能時(shí)鐘,響應(yīng)速度肯定是快速。 第4章 多功能時(shí)鐘的架構(gòu)設(shè)計(jì) 4.1多功能時(shí)鐘設(shè)計(jì)目標(biāo)和原則 1、 實(shí)現(xiàn)時(shí)鐘的基本功能,可以顯示當(dāng)前時(shí)間。 2、 多功能性,實(shí)現(xiàn)鬧鐘、計(jì)時(shí)器、秒表功能。 3、 易用性,界面良好,操作簡(jiǎn)單,容易上手。 4、 可靠性,響應(yīng)速度快,有一定的容錯(cuò)能力。 4.2多功能時(shí)鐘的架構(gòu)設(shè)計(jì) 不論是ios還是android的應(yīng)用開(kāi)發(fā),其實(shí)都遵循著一定的開(kāi)發(fā)流程,只有如此才能使開(kāi)發(fā)過(guò)程有章可循而不是一團(tuán)亂。架構(gòu)設(shè)計(jì)需要對(duì)應(yīng)用的設(shè)計(jì)進(jìn)行考慮,包括應(yīng)用系統(tǒng)的基本處理流程、應(yīng)用系統(tǒng)的組織結(jié)構(gòu)、模塊劃分、功能分配、運(yùn)行設(shè)計(jì)和出錯(cuò)處理設(shè)計(jì)
41、等,為應(yīng)用的詳細(xì)設(shè)計(jì)提供基礎(chǔ)。對(duì)于多功能時(shí)鐘來(lái)說(shuō),首先要基于需求分析來(lái)制定開(kāi)發(fā)流程,然后搭建應(yīng)用的主框架,由于顯示時(shí)間是最基礎(chǔ)的功能,所以先實(shí)現(xiàn)顯示時(shí)間功能,然后實(shí)現(xiàn)鬧鐘、計(jì)時(shí)器、秒表功能。由于應(yīng)用是以時(shí)鐘為最終應(yīng)用的,所以應(yīng)用初始界面設(shè)計(jì)為時(shí)鐘的顯示時(shí)間界面。主界面顯示多功能時(shí)鐘的所用功能,用戶(hù)根據(jù)需求可以自主選擇功能。圖4-1 多功能時(shí)鐘架構(gòu)圖。圖4-2 多功能時(shí)鐘開(kāi)發(fā)流程,從上到下,從左到右依次進(jìn)行。 圖4-1 多功能時(shí)鐘架構(gòu)圖 圖4-2 多功能時(shí)鐘開(kāi)發(fā)流程 4.3多功能時(shí)鐘的功能設(shè)計(jì) 因?yàn)槎喙δ軙r(shí)鐘的各個(gè)功能之間是單獨(dú)運(yùn)行的,所以多功能時(shí)鐘的每個(gè)功能
42、都需要單獨(dú)進(jìn)行設(shè)計(jì)。已經(jīng)確定架構(gòu)設(shè)計(jì)后,對(duì)各個(gè)功能進(jìn)行詳細(xì)的設(shè)計(jì)。 1、 時(shí)鐘 對(duì)于時(shí)鐘沒(méi)有什么太大的要求,只要能顯示當(dāng)前時(shí)間就行了。當(dāng)點(diǎn)擊多功能時(shí)鐘APP的快捷方式進(jìn)入應(yīng)用后,當(dāng)前顯示的應(yīng)是時(shí)鐘界面,時(shí)鐘界面顯示的是當(dāng)前的時(shí)間。圖4-3 時(shí)鐘功能結(jié)構(gòu)模型。 圖4-3 時(shí)鐘功能結(jié)構(gòu)模型 2、 鬧鐘 點(diǎn)擊界面上方的“鬧鐘”按鈕后,進(jìn)入鬧鐘界面,當(dāng)前鬧鐘界面是不存在鬧鐘的,在界面下方設(shè)置一個(gè)“添加鬧鐘”按鈕,可以進(jìn)行添加鬧鐘,點(diǎn)擊后會(huì)出現(xiàn)一個(gè)稍微小一點(diǎn)的界面。界面下方設(shè)置為一個(gè)時(shí)鐘,界面上方設(shè)計(jì)為鬧鐘顯示的是當(dāng)前的時(shí)間。設(shè)計(jì)為點(diǎn)擊上方時(shí)間的“時(shí)”,下方時(shí)鐘的指針設(shè)計(jì)為跳轉(zhuǎn)到時(shí)的界面里(默認(rèn)
43、當(dāng)前是在“時(shí)”的界面里);設(shè)計(jì)時(shí)鐘有兩圈,外圈為1-12,內(nèi)圈為13-00;設(shè)計(jì)為通過(guò)旋轉(zhuǎn)時(shí)鐘上的指針來(lái)選擇“時(shí)”。設(shè)計(jì)為點(diǎn)擊上方時(shí)間的“分”,下方時(shí)鐘的指針是跳轉(zhuǎn)到分的界面里;設(shè)計(jì)時(shí)鐘為一圈,一圈60分鐘;設(shè)計(jì)為通過(guò)旋轉(zhuǎn)時(shí)鐘上的指針來(lái)選擇“分”。在此界面還應(yīng)有“確定”和“取消”兩個(gè)按鈕。此外還應(yīng)有刪除鬧鐘的功能,因此可以這樣設(shè)計(jì):添加鬧鐘之后,長(zhǎng)按添加的鬧鐘,會(huì)彈出一個(gè)提示,操作提示“刪除”或者“取消”。圖4-4 鬧鐘功能結(jié)構(gòu)模型。 圖4-4 鬧鐘功能結(jié)構(gòu)模型 3、計(jì)時(shí)器 界面上方設(shè)計(jì)顯示為“00:00:00”,可以輸入數(shù)字進(jìn)行設(shè)定,應(yīng)可以精確到秒。界面下方設(shè)計(jì)一個(gè)“開(kāi)始”按鈕,點(diǎn)擊“
44、開(kāi)始”進(jìn)行倒計(jì)時(shí)。之后應(yīng)設(shè)計(jì)“暫?!薄爸刂谩卑粹o,設(shè)計(jì)為點(diǎn)擊“暫停”后,“暫?!卑粹o變?yōu)椤袄^續(xù)”按鈕。計(jì)時(shí)器應(yīng)可以進(jìn)行倒計(jì)時(shí),可以在后臺(tái)計(jì)時(shí),時(shí)間到了,會(huì)彈出一個(gè)提示。圖4-5 計(jì)時(shí)器功能結(jié)構(gòu)模型 圖4-5 計(jì)時(shí)器功能結(jié)構(gòu)模型 4、秒表 界面上方設(shè)計(jì)顯示為“0:0:0:0”,應(yīng)可以精確到毫秒。界面下方設(shè)計(jì)有一個(gè)“開(kāi)始”按鈕,點(diǎn)擊“開(kāi)始”進(jìn)行計(jì)時(shí),之后應(yīng)有“暫停”和“記錄”按鈕。設(shè)計(jì)“記錄”按鈕可以記錄時(shí)間,點(diǎn)擊“暫?!焙螅瑑蓚€(gè)按鈕應(yīng)分別變?yōu)椤袄^續(xù)”和“重置”按鈕。圖4-6 秒表功能結(jié)構(gòu)模型 圖4-6 秒表功能結(jié)構(gòu)模型 第5章 多功能時(shí)鐘的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 5.1 界面設(shè)計(jì) 主界面是進(jìn)入
45、應(yīng)用時(shí)的界面,界面比較簡(jiǎn)單。圖5-1 主界面布局,圖5-2 安裝界面。 圖5-1 主界面布局 圖5-2 安裝界面 搭建應(yīng)用主框架,依次呈現(xiàn)時(shí)間、鬧鐘、計(jì)時(shí)器、秒表。代碼如表5-1所示。 表5-1 搭建應(yīng)用主框架 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_pa
46、rent“ 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=“@+id/tabStopWatch“ android:layout_width=“match_parent“ android:layout_height=“m
47、atch_parent“ android:orientation=“vertical“ 定義一個(gè)tabHost變量;初始化;給各個(gè)模塊命名并且聲明tab的內(nèi)容。代碼如表5-2所示。 表5-2 給各個(gè)模塊命名 tabHost = (TabHost) findViewById(android.R.id.tabhost); tabHost.setup; tabHost.addTab(tabHost.newTabSpec(“tabTime“).setIndicator(“時(shí)鐘“).setContent(R.id.tabTime)); tabHost.addTab(tabHost.newTabSpe
48、c(“tabAlarm“).setIndicator(“鬧鐘“).setContent(R.id.tabAlarm)); tabHost.addTab(tabHost.newTabSpec(“tabTimer“).setIndicator(“計(jì)時(shí)器“).setContent(R.id.tabTimer)); tabHost.addTab(tabHost.newTabSpec(“tabStopWatch“).setIndicator(“秒表“).setContent(R.id.tabStopWatch)); 5.2 多功能時(shí)鐘的功能設(shè)計(jì) 5.2.1顯示時(shí)間功能 多功能時(shí)鐘的顯示時(shí)間功能如圖5-
49、3所示。 圖5-3 顯示時(shí)間功能 新建一個(gè)類(lèi)TimeView,添加構(gòu)造方法來(lái)被代碼調(diào)用,被初始化器調(diào)用和在初始化的時(shí)候指定它的style。代碼如表5-3所示。 表5-3 添加構(gòu)造方法 public TimeView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle);} public TimeView(Context context, AttributeSet attrs) { super(context, attrs);} public TimeV
50、iew(Context context) { super(context);} 換成自己定義的類(lèi),在內(nèi)部寫(xiě)一個(gè)TextView,指定它的id和textAppearance。代碼如表5-4所示。 表5-4 定義文本展現(xiàn)方式 TextView android:id=“@+id/tvTime“ android:layout_width=“fill_parent“ android:layout_height=“fill_parent“ android:gravity=“center“ android:textAp
51、pearance=“?android:attr/textAppearanceLarge“ / /com.example.administrator.myapplication.TimeView 在類(lèi)里添加一個(gè)事件,在初始化后執(zhí)行TextView操作,呈現(xiàn)文字在中間。代碼如表5-5所示。 表5-5 呈現(xiàn)文字 protected void onFinishInflate { super.onFinishInflate; tvTime = (TextView) findViewById(R.id.tvTime); tvTime.setText(“Hello“); } pro
52、tected void onVisibilityChanged(View changedView, int visibility) { super.onVisibilityChanged(changedView, visibility); if (visibility==View.VISIBLE) { timerHandler.sendEmptyMessage(0); }else{ timerHandler.removeMessages(0); private TextView tvTime; 重新刷新時(shí)間,通過(guò)sendEmptyMess
53、age每秒刷新一次。代碼如表5-6所示。 表5-6 設(shè)置刷新時(shí)間間隔 timerHandler.sendEmptyMessage(0); private void refreshTime{ Calendar c = Calendar.getInstance; tvTime.setText(String.format(“%d:%d:%d“, c.get(Calendar.HOUR_OF_DAY),c.get(Calendar.MINUTE),c.get(Calendar.SECOND))); } 如果可見(jiàn)就呈現(xiàn)出來(lái),否則把所有的消息移除掉。代碼如表5-7所示。 表5-7
54、設(shè)置文本可見(jiàn)與不可見(jiàn)處理方式 protected void onFinishInflate { super.onFinishInflate; tvTime = (TextView) findViewById(R.id.tvTime); tvTime.setText(“Hello“); timerHandler.sendEmptyMessage(0); } protected void onVisibilityChanged(View changedView, int visibility) { super.onVisibilityChanged(chan
55、gedView, visibility); if (visibility==View.VISIBLE) { timerHandler.sendEmptyMessage(0); }else{ timerHandler.removeMessages(0); } } 呈現(xiàn)的為時(shí)間。代碼如表5-8所示。 表5-8 設(shè)置呈現(xiàn)的為時(shí)間 Calendar c = Calendar.getInstance; tvTime.setText(String.format(“%d:%d:%d“, c.get(Calendar.HOUR_OF_DAY),c.ge
56、t(Calendar.MINUTE),c.get(Calendar.SECOND))); 5.2.2鬧鐘功能 鬧鐘功能的添加鬧鐘界面如圖5-4 和5-5所示。添加鬧鐘后如圖5-6,鬧鐘的刪除界面如圖5-7所示,鬧鐘音樂(lè)播放如圖5-8所示。 圖5-4 鬧鐘設(shè)置界面(時(shí))圖5-5 鬧鐘設(shè)置界面(分) 圖5-6 添加鬧鐘后 圖5-7 鬧鐘的刪除界面 圖5-8 鬧鐘播放音樂(lè) 新建一個(gè)類(lèi),添加構(gòu)造方法。代碼如表5-9所示。 表5-9 添加構(gòu)造方法 public AlarmView(Context context, AttributeSet attrs, int defStyle)
57、 { super(context, attrs, defStyle); public AlarmView(Context context, AttributeSet attrs) { super(context, attrs); init; } public AlarmView(Context context) { super(context); init; 換成自己定義的類(lèi),在內(nèi)部寫(xiě)一個(gè)ListView,可以呈現(xiàn)添加的按鈕,添加文字為Add Alarm,提取到字符串中,指定id。代碼如表5-10所示。 表5-10 呈現(xiàn)文字 ListView
58、 android:id=“@+id/lvAlarmList“ android:layout_width=“fill_parent“ android:layout_height=“0dp“ android:layout_weight=“1“ /ListView Button android:id=“@+id/btnAddAlarm“ android:layout_width=“fill_parent“ android:layout_height=“wrap_content“
59、 android:text=“@string/add_alarm“ / /com.example.administrator.myapplication.AlarmView 把兩個(gè)變量加到類(lèi)中,通過(guò)findViewById找到。給按鈕添加一個(gè)事件。代碼如表5-11所示。 表5-11 添加事件 protected void onFinishInflate { super.onFinishInflate; btnAddAlarm = (Button) findViewById(R.id.btnAddAlarm); lvAlarmList = (ListVie
60、w) findViewById(R.id.lvAlarmList); adapter = new ArrayAdapterAlarmView.AlarmData(getContext, android.R.layout.simple_list_item_1); lvAlarmList.setAdapter(adapter); readSavedAlarmList; btnAddAlarm.setOnClickListener(new View.OnClickListener { public void onClick(View v) {
61、 addAlarm; } }); private Button btnAddAlarm; private ListView lvAlarmList; 定義鬧鐘響起的時(shí)間,在外界獲取時(shí)間。指明一個(gè)data變量,來(lái)創(chuàng)建時(shí)間,實(shí)現(xiàn)鬧鐘列表。代碼如表5-12所示。 表5-12 實(shí)現(xiàn)鬧鐘列表 private static class AlarmData{ public AlarmData(long time) { this.time = time; date = Calendar.getInstance; d
62、ate.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è)置鬧鐘時(shí)間判斷,如果設(shè)置時(shí)間小于等于當(dāng)前時(shí)間
63、,直接加一天。鬧鐘可以顯示月,日,時(shí),分。代碼如表5-13所示。 表5-13 設(shè)置鬧鐘時(shí)間及判斷 Calendar calendar = Calendar.getInstance; calendar.set(Calendar.HOUR_OF_DAY, hourOfDay); calendar.set(Calendar.MINUTE, minute); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0);
64、 Calendar currentTime = Calendar.getInstance; if (calendar.getTimeInMillis=currentTime.getTimeInMillis) { calendar.setTimeInMillis(calendar.getTimeInMillis+24*60*60*1000); } AlarmData ad = new AlarmData(calendar.getTimeInMillis);
65、 adapter.add(ad); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, ad.getTime, 5*60*1000, PendingIntent.getBroadcast(getContext, ad.getId, new Intent(getContext, AlarmReceiver.class), 0)); saveAlarmList; 實(shí)現(xiàn)鬧鐘列表的
66、存儲(chǔ),能夠存儲(chǔ)數(shù)據(jù)。代碼如表5-14所示。 表5-14 存儲(chǔ)鬧鐘列表 StringBuffer sb = new StringBuffer; for (int i = 0; i adapter.getCount; i++) { sb.append(adapter.getItem(i).getTime).append(“,“); } if (sb.length1) { String content = 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)鬧鐘列表的讀取,能夠讀取存儲(chǔ)的數(shù)據(jù)。代碼如表5-15所示。 表5-15 讀取鬧鐘列表 private voi
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第7課時(shí)圖形的位置練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第1課時(shí)圖形的認(rèn)識(shí)與測(cè)量1平面圖形的認(rèn)識(shí)練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時(shí)比和比例2作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)4比例1比例的意義和基本性質(zhì)第3課時(shí)解比例練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第7課時(shí)圓柱的體積3作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)1負(fù)數(shù)第1課時(shí)負(fù)數(shù)的初步認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末豐收?qǐng)@作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)易錯(cuò)清單十二課件新人教版
- 標(biāo)準(zhǔn)工時(shí)講義
- 2021年一年級(jí)語(yǔ)文上冊(cè)第六單元知識(shí)要點(diǎn)習(xí)題課件新人教版
- 2022春一年級(jí)語(yǔ)文下冊(cè)課文5識(shí)字測(cè)評(píng)習(xí)題課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時(shí)數(shù)學(xué)思考1練習(xí)課件新人教版