畢業(yè)論文(設(shè)計(jì))基于安卓多功能時(shí)鐘app設(shè)計(jì)與實(shí)現(xiàn)

上傳人:青 文檔編號:16549288 上傳時(shí)間:2020-10-11 格式:DOC 頁數(shù):60 大?。?10KB
收藏 版權(quán)申訴 舉報(bào) 下載
畢業(yè)論文(設(shè)計(jì))基于安卓多功能時(shí)鐘app設(shè)計(jì)與實(shí)現(xiàn)_第1頁
第1頁 / 共60頁
畢業(yè)論文(設(shè)計(jì))基于安卓多功能時(shí)鐘app設(shè)計(jì)與實(shí)現(xiàn)_第2頁
第2頁 / 共60頁
畢業(yè)論文(設(shè)計(jì))基于安卓多功能時(shí)鐘app設(shè)計(jì)與實(shí)現(xiàn)_第3頁
第3頁 / 共60頁

下載文檔到電腦,查找使用更方便

5 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《畢業(yè)論文(設(shè)計(jì))基于安卓多功能時(shí)鐘app設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《畢業(yè)論文(設(shè)計(jì))基于安卓多功能時(shí)鐘app設(shè)計(jì)與實(shí)現(xiàn)(60頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、畢業(yè)論文(設(shè)計(jì))基于安卓多功能時(shí)鐘app設(shè)計(jì)與實(shí)現(xiàn) 目 錄 摘 要 1 ABSTRACT 2 第1章 緒論 3 1.1 開發(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ù)簡介 7 2.1.2 安卓應(yīng)用程序組件 8 2.2 Android Studio簡介 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)與測試 32 6.1 多功能時(shí)鐘的架構(gòu)實(shí)現(xiàn)與測試 32 6.2 多功能時(shí)鐘的模塊實(shí)現(xiàn)與測試 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ī)、平板等各類智能設(shè)備用戶數(shù)量的增長,應(yīng)用逐漸趨向移動(dòng)化,移動(dòng)應(yīng)用取得突飛猛進(jìn)地發(fā)展,極大地改變了人們的日常生活。隨著移動(dòng)用戶數(shù)量的增長,移動(dòng)應(yīng)用的開發(fā)與更新速度逐漸加快,移動(dòng)應(yīng)用也為各類智能終端用戶提供了更方便、舒適和豐富多彩的生活。 本應(yīng)用是多功能時(shí)鐘手機(jī)應(yīng)用程序,使用的語言是java編程語言,開發(fā)平臺(tái)是谷歌研發(fā)的Android開發(fā)環(huán)境Android Studio。本應(yīng)用主要包括顯示時(shí)鐘功能,可以顯示當(dāng)前時(shí)間;鬧鐘功能,可以進(jìn)行鬧鐘的添加和刪除;計(jì)時(shí)器功能,可以添加倒計(jì)時(shí)時(shí)間、開始、暫停、繼續(xù)和重置;秒表功能,可以開始、暫

4、停、繼續(xù)、記錄、重置。 首先,本文討論了移動(dòng)應(yīng)用的開發(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ì)介紹了代碼編寫實(shí)現(xiàn)。在詳細(xì)設(shè)計(jì)的基礎(chǔ)上,給出了APP的實(shí)現(xiàn)、測試改進(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 開發(fā)背景 在以前的10年里,世界電信發(fā)生了很大的改變,移動(dòng)通信尤其是蜂窩小區(qū)的快速發(fā)展,使得用戶徹底脫離了終端設(shè)備的限制,達(dá)到了比較完美的個(gè)人移動(dòng)性,靠得住的傳輸信息手段和芯線對接方式。現(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ì)量比較差、速度低、沒有加密。1G的傳輸速率約2.4kbit/s。2G主要包括客戶化應(yīng)用移動(dòng)網(wǎng)絡(luò)增強(qiáng)邏輯(CMAEL)、支持最佳路由(S0)、立即計(jì)費(fèi)、與全速率完全兼容的增強(qiáng)型話音編解碼技術(shù)等,通話聲音的質(zhì)量得到了質(zhì)的改變,數(shù)據(jù)傳送速率可達(dá)115/384kbit/s。3G最基本的特征是智能信號處理技術(shù),它可以提供前兩代通信系統(tǒng)所不能提供的各種寬帶信息業(yè)務(wù)。4G是結(jié)合3G與WLAN,并且可以進(jìn)行高質(zhì)量視頻圖像的傳輸。4G系統(tǒng)下載速度可以達(dá)到100Mbps,也可以以20Mbps的速度上傳,并且可以達(dá)到絕大多數(shù)用

12、戶關(guān)于無線網(wǎng)絡(luò)服務(wù)的需求。 智能手機(jī),其具有獨(dú)立的操作系統(tǒng)和運(yùn)行空間,用戶可以自行安裝第三方服務(wù)商提供的程序(軟件、游戲、導(dǎo)航等),并且能夠通過移動(dòng)通訊網(wǎng)絡(luò)來實(shí)現(xiàn)無線網(wǎng)絡(luò)接入手機(jī)的類型。智能手機(jī)的使用范圍已經(jīng)遍布整個(gè)世界,但并不是每個(gè)人都知道、熟悉和使用。因?yàn)橹悄苁謾C(jī)具有優(yōu)秀的操作系統(tǒng)、可以自由地安裝各類軟件(僅限安卓系統(tǒng))、完全大屏的全觸屏式操作感這三大特性,所以完全終結(jié)了前幾年的鍵盤式手機(jī)。其中谷歌(Google)、三星、宏達(dá)電(HTC)、蘋果、諾基亞這五大品牌在全世界最被大眾所知道,而華為(HUAWEI)、聯(lián)想(Lenovo)、小米(MI)、魅族(MEIZU)、酷派(Coolpad)、

13、金立(GIONEE)、中興(ZTE)、一加手機(jī)(oneplus)、天宇(K-Touch)等品牌在中國備受關(guān)注。 智能手機(jī)支持多種操作系統(tǒng),如:谷歌的Android(中文:安卓/安致,全球第一大智能操作系統(tǒng),占據(jù)全球智能手機(jī)操作系統(tǒng)市場79%左右的份額),蘋果公司的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):①具備無線接

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)頁。③具有開放性的操作系統(tǒng):擁有獨(dú)立的核心處理器(CPU)和內(nèi)存,可以安裝更多的應(yīng)用程序,使智能手機(jī)的功能可以得到無限擴(kuò)展。④人性化:可以根據(jù)個(gè)人需要擴(kuò)展機(jī)器功能。根據(jù)個(gè)人需要,實(shí)時(shí)擴(kuò)展機(jī)器內(nèi)置功能,以及軟件升級,智能識別軟件兼容性,實(shí)現(xiàn)了軟件市場同步的人性化功能。⑤功能強(qiáng)大:擴(kuò)展性能強(qiáng),第三方軟件支持多。⑥運(yùn)行速度

15、快:隨著半導(dǎo)體業(yè)的發(fā)展,核心處理器(CPU)發(fā)展迅速,使智能手機(jī)在運(yùn)行方面越來越極速。 安卓平板電腦(Android平板電腦)是搭載了谷歌Android操作系統(tǒng)的平板電腦,可以進(jìn)行商務(wù)定制的一款定位于筆記本電腦與智能手機(jī)之間的移動(dòng)商務(wù)終端,同時(shí)也是是一款攜帶方便而且通信功能完善而強(qiáng)大的移動(dòng)數(shù)據(jù)終端。安卓平板電腦(Android 平板電腦)功能強(qiáng)大,不僅可搭載豐富的消費(fèi)類娛樂應(yīng)用,還可實(shí)現(xiàn)移動(dòng)商務(wù)辦公,隨時(shí)隨地可以使用無線上網(wǎng),系統(tǒng)反應(yīng)速度快,畫面清晰細(xì)膩,觸感輕柔敏銳,機(jī)身細(xì)薄,小巧玲瓏,便于隨身攜帶,比手提電腦更輕巧,比手機(jī)屏幕更寬廣,但又具有手提電腦上網(wǎng)查詢看電影看網(wǎng)頁的功能,以及手機(jī)翻

16、閱信息、收發(fā)郵件、撥打電話的功能。 Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機(jī)。Android一詞的本義指“機(jī)器人”,同時(shí)也是Google于x年11月5日宣布的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。x年11月5日,谷歌公司正式向外界展示了這款名為Android的操作系統(tǒng),并且在這天谷歌宣布建立一個(gè)全球性的

17、聯(lián)盟組織。x年8月2日,Android手機(jī)已占據(jù)全球智能機(jī)市場48%的份額,并在亞太地區(qū)市場占據(jù)統(tǒng)治地位,終結(jié)了Symbian(塞班系統(tǒng))的霸主地位,躍居全球第一。 Android系統(tǒng)目前已經(jīng)布滿我們生活的各個(gè)方面,如:手機(jī)、平板電腦、電視、電視盒子、游戲機(jī)、手表和車載系統(tǒng)等。隨著Android系統(tǒng)的逐步發(fā)展,安卓應(yīng)用如雨后春筍般出現(xiàn),現(xiàn)實(shí)生活中需要很多物品才能實(shí)現(xiàn)的多個(gè)功能僅僅一個(gè)安卓應(yīng)用就可以實(shí)現(xiàn)。在這里,通過編程實(shí)現(xiàn)多功能時(shí)鐘,可以集手表、鬧鐘等功能于一體,使其簡單、方便、實(shí)用。 1.2 研究現(xiàn)狀 Android系統(tǒng)自從出現(xiàn)以來,就以其開放性、豐富的硬件、便于開發(fā)等優(yōu)勢逐漸擴(kuò)大自己的

18、市場份額,尤其在國外,其呼聲日高,正處于迅速發(fā)展的開拓階段。x年第一季度,在美國,基于Android系統(tǒng)的智能手機(jī)的銷售量已占據(jù)整個(gè)美、美國手機(jī)銷售量的28%份額,而IPhone手機(jī)的市場份額緊追其后。隨著Android系統(tǒng)的不斷發(fā)展和更新,選擇Android系統(tǒng)的智能手機(jī)或者無線終端設(shè)備的人越來越多,人們對智能手機(jī)或設(shè)備的功能需求會(huì)越來越高,人們從應(yīng)用商店里下載應(yīng)用,同時(shí)對移動(dòng)應(yīng)用的功能的要求也會(huì)越來越高。 安卓平臺(tái)具有開發(fā)性,開發(fā)的平臺(tái)允許任何移動(dòng)終端廠商加入到安卓聯(lián)盟中來,顯著的開放性可以使其擁有更多的開發(fā)者;安卓具有開放性,眾多的廠商會(huì)推出千奇百怪,功能特色各具的多種產(chǎn)品。安卓平臺(tái)提

19、供給第三方開發(fā)商一個(gè)十分寬泛、自由的環(huán)境,不會(huì)受到各種條條框框的阻擾,可想而知,會(huì)有多少新穎別致的軟件會(huì)誕生。當(dāng)前國內(nèi)手機(jī)市場正在快速向智能手機(jī)推進(jìn),而安卓系統(tǒng)無疑是最大的市場需求。各種安卓應(yīng)用商店的不斷出現(xiàn)、發(fā)展和開發(fā)者的涌入,安卓平臺(tái)的應(yīng)用資源優(yōu)勢不斷擴(kuò)大。 隨著移動(dòng)設(shè)備的制造和信息技術(shù)的不斷發(fā)展,智能手機(jī)或者無線終端設(shè)備越來越普遍,各種各樣的安卓應(yīng)用的用戶也越來越多。多功能時(shí)鐘作為擁有一個(gè)簡單而實(shí)用功能的安卓移動(dòng)應(yīng)用必將為人們的生活帶來許許多多的便利。顯示時(shí)間功能可以讓你隨時(shí)知道時(shí)間;鬧鐘功能可以提醒人們注意一些容易忽略的時(shí)間,可以讓人們養(yǎng)成良好的作息習(xí)慣,可以提醒、通知等;計(jì)時(shí)器功能

20、可以進(jìn)行較短時(shí)間內(nèi)的提醒鞥;秒表功能可以測量做某件事情的時(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)試過程。 當(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í)”,通過旋轉(zhuǎn)時(shí)鐘上的指針來選擇“時(shí)”;點(diǎn)擊“分”,通過旋轉(zhuǎn)時(shí)鐘上的指針來

21、選擇“分”,“確定”或“取消”;添加之后,長按添加的鬧鐘后,會(huì)提示“刪除”,或取消。點(diǎn)擊“計(jì)時(shí)器”,會(huì)出現(xiàn)“00:00:00”,依次點(diǎn)擊,輸入數(shù)字進(jìn)行設(shè)定,精確到秒,點(diǎn)擊“開始”進(jìn)行倒計(jì)時(shí),“暫停”、“繼續(xù)”或“重置”。點(diǎn)擊“秒表”,會(huì)出現(xiàn)“0:0:0:0”,點(diǎn)擊“開始”進(jìn)行計(jì)時(shí),“記錄”記錄時(shí)間,“暫停”、“繼續(xù)”或“重置”。本文是對這幾個(gè)功能開發(fā)的詳細(xì)介紹。 1.4 論文的組織結(jié)構(gòu) 第1章,緒論。主要描述的是基于安卓的多功能時(shí)鐘的開發(fā)背景,安卓系統(tǒng)智能手機(jī)和平板電腦的發(fā)展現(xiàn)狀。 第2章,安卓相關(guān)介紹。介紹了安卓技術(shù)、安卓應(yīng)用程序組件、Android Studio的架構(gòu)組成和主要功能。

22、 第3章,需求分析。對多功能時(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)與測試。介紹了多功能時(shí)鐘的架構(gòu)和模塊的實(shí)現(xiàn)、測試與調(diào)試,并對出現(xiàn)的問題進(jìn)行分析說明。 第2章 安卓相關(guān)介紹 2.1 安卓系統(tǒng)介紹 2.1.1 安卓技術(shù)簡介 Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公

23、司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。從架構(gòu)圖看,Android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和Linux內(nèi)核層。 1、應(yīng)用程序?qū)?Android會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編寫的。 2、應(yīng)用程序框架 開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得

24、遵循框架的安全性)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。隱藏在每個(gè)應(yīng)用后面的是一系列的服務(wù)和系統(tǒng), 其中包括:豐富而又可擴(kuò)展的視圖(Views),內(nèi)容提供器(Content Providers),資源管理器(Resource Manager),通知管理器 (Notification Manager) ,活動(dòng)管理器( Activity Manager) 。應(yīng)用程序框架呢可以說是一個(gè)應(yīng)用程序的核心,是所有參與開發(fā)的程序員共同使用和遵守的約定,大家在其約定上進(jìn)行必要的擴(kuò)展,但程序始終保持主體結(jié)構(gòu)的一致性。其作用是讓程序保持清晰和一目了然,在滿足不同需求的同時(shí)又不互相影響。開發(fā)應(yīng)用

25、時(shí)都是通過框架來與Android底層進(jìn)行交互,接觸最多的就是應(yīng)用框架層。 3、系統(tǒng)運(yùn)行庫 Android 包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過 Android 應(yīng)用程序框架為開發(fā)者提供服務(wù)。以下是一些核心庫:系統(tǒng) C 庫(一個(gè)從BSD繼承來的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫 Libc),媒體庫(基于PacketVideo OpenCORE),Surface Manager(對顯示子系統(tǒng)的管理,并且為多個(gè)應(yīng)用程序提 供了2D和3D圖層的無縫融合), 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)模型等都依賴于該內(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)。不是所有的組件對于用戶都是實(shí)際上的入口點(diǎn),有些是互相依賴的,但是每個(gè)組件都有特定的作用——每個(gè)都是唯一的構(gòu)建單元,這些構(gòu)建單元定義你應(yīng)用程序的全部行為。有四種不同類型的應(yīng)用程序組件。每種都有不同的用處并且有不同的生命周期。生命周期定義了他們是怎樣被創(chuàng)建

27、和銷毀的。Android開發(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ù)庫。 1、Activitiy Android 中,Activity是所有程序的根本,所有程序的流程都運(yùn)行在Activity 之中,Activity可以算是開發(fā)者遇到的最頻繁,也是Android 當(dāng)中最基本的模塊之一。一個(gè)Activity代表一個(gè)單獨(dú)的擁有用戶界面的屏幕。比如,一個(gè)郵件應(yīng)用程序可能擁有一個(gè)顯

28、示新郵件的列表的Activity,一個(gè)編寫郵件的Activity,一個(gè)讀郵件的Activity。雖然這些Activity一起工作,但是他們是相互獨(dú)立的。因此一個(gè)不同的應(yīng)用程序也可以啟動(dòng)這些Activity中的任何一個(gè)(如果郵件應(yīng)用程序允許的話)。Activity 當(dāng)中可以添加一些Button、Check box 等控件??梢钥吹紸ctivity 概念和網(wǎng)頁的概念相當(dāng)類似。一個(gè)Activity是由Activity類的子類來實(shí)現(xiàn)的。 2、Service Service 是android 系統(tǒng)中的一種組件,它跟Activity 的級別差不多,但是他不能自己運(yùn)行,只能后臺(tái)運(yùn)行,并且可以和其他組件進(jìn)行交

29、互。Service 是沒有界面的長生命周期的代碼。一個(gè)Service組件是運(yùn)行在后臺(tái)的一個(gè)進(jìn)程,這個(gè)進(jìn)程處理一個(gè)長時(shí)間的操作或者是一個(gè)遠(yuǎn)程調(diào)用。一個(gè)Service不需要提供一個(gè)用戶界面。比如,一個(gè)Service可以在用戶運(yùn)行一個(gè)不同程序的同時(shí)在后臺(tái)播放音樂,或者在不阻塞一個(gè)Activity的用戶界面的同時(shí)獲取網(wǎng)絡(luò)數(shù)據(jù)。其他的組件,比如一個(gè)Activity,可以啟動(dòng)一個(gè)Service并且與之交互。一個(gè)Service是由Service的子類來實(shí)現(xiàn)的。 3、BroadcastReceiver 在Android 中,Broadcast是一種廣泛運(yùn)用的在應(yīng)用程序之間傳輸信息的機(jī)制。而Broadcast

30、Receiver 是對發(fā)送出來的Broadcast進(jìn)行過濾接受并響應(yīng)的一類組件??梢允褂肂roadcastReceiver 來讓應(yīng)用對一個(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的子類來實(shí)現(xiàn)的,并且每個(gè)廣播都是當(dāng)作一個(gè)Intent對象來傳遞的。 4、Content Provider Cont

31、ent Provider 是Android提供的第三方應(yīng)用數(shù)據(jù)的訪問方案。一個(gè)Contentprovider管理一組共享的應(yīng)用程序數(shù)據(jù)。你可以把這些數(shù)據(jù)存儲(chǔ)到文件系統(tǒng)、一SQLite數(shù)據(jù)庫、互聯(lián)網(wǎng)或者任何你的應(yīng)用程序可以訪問的持久化存儲(chǔ)設(shè)備中。通過Contentprovider其他的應(yīng)用程序能夠查詢甚至修改(如果Contentprovider允許修改操作)這些數(shù)據(jù)。例如Android系統(tǒng)提供了管理聯(lián)系人信息的Contentprovider。因此,任何一個(gè)應(yīng)用程序在擁有相應(yīng)權(quán)限的情況下都可以訪問這個(gè)Contentprovider管理的數(shù)據(jù)(比如ContactsContract.Data)來讀取或

32、者修改某個(gè)聯(lián)系人的信息。Contentprovider用于管理應(yīng)用程序不與其他程序共享的的私有數(shù)據(jù)也是非常有用的。一個(gè)ContentProvider是由ContentProvider的子類來實(shí)現(xiàn)的,并且必須實(shí)現(xiàn)一組使其他應(yīng)用程序能與之通信的API。 2.2 Android Studio簡介 2.2.1架構(gòu)組成 在IDEA的基礎(chǔ)上,Android Studio 提供:基于Gradle的構(gòu)建支持;Android 專屬的重構(gòu)和快速修復(fù);提示工具以捕獲性能、可用性、版本兼容性等問題;支持ProGuard和應(yīng)用簽名;基于模板的向?qū)砩沙S玫?Android 應(yīng)用設(shè)計(jì)和組件;功能強(qiáng)大的布局編輯器,可以

33、讓你拖拉UI控件并進(jìn)行效果預(yù)覽。 2.2.2主要功能 x年5月16日,在I/O大會(huì)上,谷歌推出新的Android開發(fā)環(huán)境——Android Studio,并對開發(fā)者控制臺(tái)進(jìn)行了改進(jìn),增加了五個(gè)新的功能。 Android Studio是谷歌推出了新的Android開發(fā)環(huán)境,開發(fā)者可以在編寫程序的同時(shí)看到自己的應(yīng)用在不同尺寸屏幕中的樣子。 谷歌對開發(fā)者控制臺(tái)進(jìn)行了改進(jìn),增加了五個(gè)新的功能,包括優(yōu)化小貼士、應(yīng)用翻譯服務(wù)、推薦跟蹤、營收曲線圖、用版測試和階段性展示。 1、優(yōu)化小貼士:在主體中打開你的應(yīng)用,點(diǎn)擊小貼士,會(huì)得到這樣的建議:為你的應(yīng)用開發(fā)平板電腦版本。 2、應(yīng)用翻譯服務(wù):允許開發(fā)者

34、直接在開發(fā)主體中獲得專業(yè)的翻譯。上傳你的需求,選擇翻譯,其會(huì)顯示翻譯方和價(jià)格,并在一周內(nèi)發(fā)回譯本。 3、推薦跟蹤:允許開發(fā)者找出最有效的廣告。 4、營收曲線圖:向開發(fā)者展示其應(yīng)用營收,以國家進(jìn)行劃分。 5、試用版測試和階段性展示:開發(fā)者可以對應(yīng)用進(jìn)行測試,然后向測試用戶推出,測試結(jié)果不會(huì)對外公布。當(dāng)一個(gè)版本的測試結(jié)束,開發(fā)者可以向特定比例用戶推出。 Android Studio這款開發(fā)工具被首次公布,這也是為了方便開發(fā)者基于Android開發(fā)。 首先解決的一個(gè)問題是多分辨率。Android設(shè)備擁有大量不同尺寸的屏幕和分辨率,根據(jù)新的Studio,開發(fā)者可以很方便的調(diào)整在各個(gè)分辨率設(shè)備

35、上的應(yīng)用。 同時(shí)Studio還解決語言問題,多語言版本(但是沒有中文版本)、支持翻譯都讓開發(fā)者更適應(yīng)全球開發(fā)環(huán)境。Studio還提供收入記錄功能。 最大的改變在于Beta測試的功能。Studio提供了Beta Testing,可以讓開發(fā)者很方便試運(yùn)行。 x年5月29日,在谷歌I/O開發(fā)者大會(huì)上,谷歌發(fā)布AndroidStudio 1.3版,支持C++編輯和查錯(cuò)功能。Android Studio 1.3版開發(fā)碼代碼變得更加容易,速度提升,而且支持C++編輯和查錯(cuò)功能。 第3章 需求分析 3.1 多功能時(shí)鐘的功能需求 對于應(yīng)用的設(shè)計(jì)目標(biāo),首要原則是

36、以用戶為本,宗旨是滿足用戶的需求。從用戶的需求出發(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)功能的不同對應(yīng)用進(jìn)行模塊劃分,不同的功能獨(dú)立出來形成一個(gè)模塊,這樣能夠使我們更好的根據(jù)不同的模塊不同特點(diǎn)有針對性地進(jìn)行代碼編寫。根據(jù)應(yīng)用的總體描述,這款應(yīng)用的功能需求大致分為以下四部分。 1、 查看時(shí)間的功能需求 查看時(shí)間對于每個(gè)時(shí)鐘應(yīng)用來說是一個(gè)最基本的功能,在設(shè)計(jì)多功能時(shí)鐘的時(shí)候,為了方便用戶查看時(shí)間,設(shè)計(jì)以數(shù)字來顯示時(shí)間,簡單明了。 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í);通過旋轉(zhuǎn)時(shí)鐘上的指針來選擇“時(shí)”。點(diǎn)擊上方時(shí)間的“分”,下方時(shí)鐘的指針是跳轉(zhuǎn)到分的范圍里,有一圈,一圈60分鐘;通過旋轉(zhuǎn)時(shí)鐘上的指針來選擇“分”。在此界面還應(yīng)有“確定”和“取消”兩個(gè)按鈕。此外還應(yīng)有刪除鬧鐘的功能,因此可以這樣設(shè)計(jì):添加鬧鐘之后,長按添加的鬧鐘,會(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è)“開始”按鈕,點(diǎn)擊“開始”進(jìn)行倒計(jì)時(shí),之后應(yīng)有“暫停”“重置”按鈕,點(diǎn)擊“暫?!焙螅皶和!卑粹o應(yīng)變?yōu)椤袄^續(xù)”按鈕,計(jì)時(shí)器應(yīng)可以進(jìn)行倒計(jì)時(shí)。 4、秒表的功能需求 秒表具有測量時(shí)間的功能,秒表的功能需求來源于需要精確計(jì)時(shí)的人群,人們可以用秒表測試自己的跑步速度,可以用秒表計(jì)算完成一項(xiàng)任務(wù)所需要的精確時(shí)間,可以用秒表測試自己呼吸頻率、脈搏等等。界面上方顯示為“0:0:0:0”,應(yīng)可以精確到毫秒,界面下方應(yīng)有一個(gè)“開始”

39、按鈕,點(diǎn)擊“開始”進(jìn)行計(jì)時(shí),之后應(yīng)有“暫?!焙汀坝涗洝卑粹o,“記錄”可以記錄時(shí)間,點(diǎn)擊“暫?!焙?,兩個(gè)按鈕應(yīng)分別變?yōu)椤袄^續(xù)”和“重置”按鈕。 3.2 多功能時(shí)鐘的性能需求 手機(jī)應(yīng)用要有好的發(fā)展空間,就需要能給用戶提供良好的體驗(yàn),而良好的用戶體驗(yàn)是基于應(yīng)用的性能的,一般從界面、操作、提示和響應(yīng)速度等來評價(jià)應(yīng)用的性能的。 對于界面來說,不同的應(yīng)用有著不同的要求。對于移動(dòng)應(yīng)用,需要在30秒到1分鐘的時(shí)間內(nèi)吸引用戶。應(yīng)用應(yīng)當(dāng)設(shè)計(jì)成,一看到應(yīng)用就愿意使用,但這并不意味著需要復(fù)雜的界面,有可能只需要可以給用戶提供細(xì)節(jié)內(nèi)容就行了。對于多功能時(shí)鐘的界面,應(yīng)該是簡單、突出主題。操作應(yīng)該是簡單,容易學(xué)會(huì)和上

40、手。提示應(yīng)該是簡單明了,讓用戶一看就懂。對于多功能時(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、 易用性,界面良好,操作簡單,容易上手。 4、 可靠性,響應(yīng)速度快,有一定的容錯(cuò)能力。 4.2多功能時(shí)鐘的架構(gòu)設(shè)計(jì) 不論是ios還是android的應(yīng)用開發(fā),其實(shí)都遵循著一定的開發(fā)流程,只有如此才能使開發(fā)過程有章可循而不是一團(tuán)亂。架構(gòu)設(shè)計(jì)需要對應(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ǔ)。對于多功能時(shí)鐘來說,首先要基于需求分析來制定開發(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í)鐘的所用功能,用戶根據(jù)需求可以自主選擇功能。圖4-1 多功能時(shí)鐘架構(gòu)圖。圖4-2 多功能時(shí)鐘開發(fā)流程,從上到下,從左到右依次進(jìn)行。 圖4-1 多功能時(shí)鐘架構(gòu)圖 圖4-2 多功能時(shí)鐘開發(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ì)后,對各個(gè)功能進(jìn)行詳細(xì)的設(shè)計(jì)。 1、 時(shí)鐘 對于時(shí)鐘沒有什么太大的要求,只要能顯示當(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ì)為通過旋轉(zhuǎn)時(shí)鐘上的指針來選擇“時(shí)”。設(shè)計(jì)為點(diǎn)擊上方時(shí)間的“分”,下方時(shí)鐘的指針是跳轉(zhuǎn)到分的界面里;設(shè)計(jì)時(shí)鐘為一圈,一圈60分鐘;設(shè)計(jì)為通過旋轉(zhuǎn)時(shí)鐘上的指針來選擇“分”。在此界面還應(yīng)有“確定”和“取消”兩個(gè)按鈕。此外還應(yīng)有刪除鬧鐘的功能,因此可以這樣設(shè)計(jì):添加鬧鐘之后,長按添加的鬧鐘,會(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è)“開始”按鈕,點(diǎn)擊“

44、開始”進(jìn)行倒計(jì)時(shí)。之后應(yīng)設(shè)計(jì)“暫?!薄爸刂谩卑粹o,設(shè)計(jì)為點(diǎn)擊“暫停”后,“暫停”按鈕變?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è)“開始”按鈕,點(diǎn)擊“開始”進(jìn)行計(jì)時(shí),之后應(yīng)有“暫?!焙汀坝涗洝卑粹o。設(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í)的界面,界面比較簡單。圖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è)類TimeView,添加構(gòu)造方法來被代碼調(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);} 換成自己定義的類,在內(nèi)部寫一個(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 在類里添加一個(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í)間,通過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))); } 如果可見就呈現(xiàn)出來,否則把所有的消息移除掉。代碼如表5-7所示。 表5-7

54、設(shè)置文本可見與不可見處理方式 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所示,鬧鐘音樂播放如圖5-8所示。 圖5-4 鬧鐘設(shè)置界面(時(shí))圖5-5 鬧鐘設(shè)置界面(分) 圖5-6 添加鬧鐘后 圖5-7 鬧鐘的刪除界面 圖5-8 鬧鐘播放音樂 新建一個(gè)類,添加構(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; 換成自己定義的類,在內(nèi)部寫一個(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è)變量加到類中,通過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變量,來創(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: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!