畢業(yè)論文(設計)基于安卓多功能時鐘app設計與實現(xiàn)
《畢業(yè)論文(設計)基于安卓多功能時鐘app設計與實現(xiàn)》由會員分享,可在線閱讀,更多相關《畢業(yè)論文(設計)基于安卓多功能時鐘app設計與實現(xiàn)(60頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、畢業(yè)論文(設計)基于安卓多功能時鐘app設計與實現(xiàn) 目 錄 摘 要 1 ABSTRACT 2 第1章 緒論 3 1.1 開發(fā)背景 3 1.2 研究現(xiàn)狀 5 1.3 本文的主要工作 6 1.4 論文的組織結構 6 第2章 安卓相關介紹 7 2.1 安卓系統(tǒng)介紹 7 2.1.1 安卓技術簡介 7 2.1.2 安卓應用程序組件 8 2.2 Android Studio簡介 10 2.2.1架構組成 10 2.2.2主要功能 10 第3章 需求分析 12 3.1 多功能時鐘的功能需求 12 3.2 多功能時鐘的性能需求 13 第4章 多功能時鐘的架構設計 14 4.1多功能時鐘設計目標和原則
2、 14 4.2多功能時鐘的架構設計 14 4.3多功能時鐘的功能設計 15 第5章 多功能時鐘的詳細設計與實現(xiàn) 18 5.1 界面設計 18 5.2 多功能時鐘的功能設計 19 5.2.1顯示時間功能 19 5.2.2鬧鐘功能 21 5.2.3計時器功能 27 5.2.4秒表功能 29 第6章 多功能時鐘的實現(xiàn)與測試 32 6.1 多功能時鐘的架構實現(xiàn)與測試 32 6.2 多功能時鐘的模塊實現(xiàn)與測試 32 結論 33 致謝 34 參考文獻 35 附錄 36 附錄1 英文原文 36 附錄2 中文譯文 41 應用程序基礎Android Developers 41 基于安卓的多功能時鐘APP設
3、計與實現(xiàn) 摘 要 隨著移動通訊技術的快速發(fā)展逐漸趨于成熟以及手機、平板等各類智能設備用戶數(shù)量的增長,應用逐漸趨向移動化,移動應用取得突飛猛進地發(fā)展,極大地改變了人們的日常生活。隨著移動用戶數(shù)量的增長,移動應用的開發(fā)與更新速度逐漸加快,移動應用也為各類智能終端用戶提供了更方便、舒適和豐富多彩的生活。 本應用是多功能時鐘手機應用程序,使用的語言是java編程語言,開發(fā)平臺是谷歌研發(fā)的Android開發(fā)環(huán)境Android Studio。本應用主要包括顯示時鐘功能,可以顯示當前時間;鬧鐘功能,可以進行鬧鐘的添加和刪除;計時器功能,可以添加倒計時時間、開始、暫停、繼續(xù)和重置;秒表功能,可以開始、暫
4、停、繼續(xù)、記錄、重置。 首先,本文討論了移動應用的開發(fā)背景、現(xiàn)狀,接著進行了相關技術的介紹,然后分析了多功能時鐘APP的功能和性能需求。在需求分析基礎上,進行了多功能時鐘APP的架構設計和實現(xiàn)。接著進行APP的詳細設計,詳細介紹了代碼編寫實現(xiàn)。在詳細設計的基礎上,給出了APP的實現(xiàn)、測試改進、調整優(yōu)化。 關鍵字:安卓;移動應用;多功能;時鐘。 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ā)生了很大的改變,移動通信尤其是蜂窩小區(qū)的快速發(fā)展,使得用戶徹底脫離了終端設備的限制,達到了比較完美的個人移動性,靠得住的傳輸信息手段和芯線對接方式?,F(xiàn)在進入21世紀后,移動通信將逐步演化成社會發(fā)展和前進的不可缺少的工具。目前移動通信技術的發(fā)展分為第一代移動通信技術(1G)、第二代移動通信技術(2G)、第三代移動通信技術(3G)、第四代移動通
11、信及其技術(4G)。 1G是根據(jù)模擬進行傳輸?shù)?,它的特點是業(yè)務量比較小、安全性比較差、質量比較差、速度低、沒有加密。1G的傳輸速率約2.4kbit/s。2G主要包括客戶化應用移動網(wǎng)絡增強邏輯(CMAEL)、支持最佳路由(S0)、立即計費、與全速率完全兼容的增強型話音編解碼技術等,通話聲音的質量得到了質的改變,數(shù)據(jù)傳送速率可達115/384kbit/s。3G最基本的特征是智能信號處理技術,它可以提供前兩代通信系統(tǒng)所不能提供的各種寬帶信息業(yè)務。4G是結合3G與WLAN,并且可以進行高質量視頻圖像的傳輸。4G系統(tǒng)下載速度可以達到100Mbps,也可以以20Mbps的速度上傳,并且可以達到絕大多數(shù)用
12、戶關于無線網(wǎng)絡服務的需求。 智能手機,其具有獨立的操作系統(tǒng)和運行空間,用戶可以自行安裝第三方服務商提供的程序(軟件、游戲、導航等),并且能夠通過移動通訊網(wǎng)絡來實現(xiàn)無線網(wǎng)絡接入手機的類型。智能手機的使用范圍已經遍布整個世界,但并不是每個人都知道、熟悉和使用。因為智能手機具有優(yōu)秀的操作系統(tǒng)、可以自由地安裝各類軟件(僅限安卓系統(tǒng))、完全大屏的全觸屏式操作感這三大特性,所以完全終結了前幾年的鍵盤式手機。其中谷歌(Google)、三星、宏達電(HTC)、蘋果、諾基亞這五大品牌在全世界最被大眾所知道,而華為(HUAWEI)、聯(lián)想(Lenovo)、小米(MI)、魅族(MEIZU)、酷派(Coolpad)、
13、金立(GIONEE)、中興(ZTE)、一加手機(oneplus)、天宇(K-Touch)等品牌在中國備受關注。 智能手機支持多種操作系統(tǒng),如:谷歌的Android(中文:安卓/安致,全球第一大智能操作系統(tǒng),占據(jù)全球智能手機操作系統(tǒng)市場79%左右的份額),蘋果公司的IOS(全球第二大智能操作系統(tǒng)),微軟公司的Windows Phone(全球第三大智能操作系統(tǒng)),RIM公司的黑莓(Blackberry,全球第四大智能操作系統(tǒng)),塞班公司的Symbian(全球第五大智能操作系統(tǒng)),三星集團的bada(全球第六大智能操作系統(tǒng)),魅族公司的Flyme OS系統(tǒng)等。 智能手機具有六大特點:①具備無線接
14、入互聯(lián)網(wǎng)的能力:即需要支持GSM網(wǎng)絡下的GPRS或者CDMA網(wǎng)絡的CDMA1X或3G(WCDMA、CDMA-2000、TD-CDMA)網(wǎng)絡,甚至4G(HSPA+、FDD-LTE、TDD-LTE)。②具有PDA的功能:包括PIM(個人信息管理)、日程記事、任務安排、多媒體應用、瀏覽網(wǎng)頁。③具有開放性的操作系統(tǒng):擁有獨立的核心處理器(CPU)和內存,可以安裝更多的應用程序,使智能手機的功能可以得到無限擴展。④人性化:可以根據(jù)個人需要擴展機器功能。根據(jù)個人需要,實時擴展機器內置功能,以及軟件升級,智能識別軟件兼容性,實現(xiàn)了軟件市場同步的人性化功能。⑤功能強大:擴展性能強,第三方軟件支持多。⑥運行速度
15、快:隨著半導體業(yè)的發(fā)展,核心處理器(CPU)發(fā)展迅速,使智能手機在運行方面越來越極速。 安卓平板電腦(Android平板電腦)是搭載了谷歌Android操作系統(tǒng)的平板電腦,可以進行商務定制的一款定位于筆記本電腦與智能手機之間的移動商務終端,同時也是是一款攜帶方便而且通信功能完善而強大的移動數(shù)據(jù)終端。安卓平板電腦(Android 平板電腦)功能強大,不僅可搭載豐富的消費類娛樂應用,還可實現(xiàn)移動商務辦公,隨時隨地可以使用無線上網(wǎng),系統(tǒng)反應速度快,畫面清晰細膩,觸感輕柔敏銳,機身細薄,小巧玲瓏,便于隨身攜帶,比手提電腦更輕巧,比手機屏幕更寬廣,但又具有手提電腦上網(wǎng)查詢看電影看網(wǎng)頁的功能,以及手機翻
16、閱信息、收發(fā)郵件、撥打電話的功能。 Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設備,如智能手機和平板電腦,由Google公司和開放手機聯(lián)盟領導及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機。Android一詞的本義指“機器人”,同時也是Google于x年11月5日宣布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成。x年11月5日,谷歌公司正式向外界展示了這款名為Android的操作系統(tǒng),并且在這天谷歌宣布建立一個全球性的
17、聯(lián)盟組織。x年8月2日,Android手機已占據(jù)全球智能機市場48%的份額,并在亞太地區(qū)市場占據(jù)統(tǒng)治地位,終結了Symbian(塞班系統(tǒng))的霸主地位,躍居全球第一。 Android系統(tǒng)目前已經布滿我們生活的各個方面,如:手機、平板電腦、電視、電視盒子、游戲機、手表和車載系統(tǒng)等。隨著Android系統(tǒng)的逐步發(fā)展,安卓應用如雨后春筍般出現(xiàn),現(xiàn)實生活中需要很多物品才能實現(xiàn)的多個功能僅僅一個安卓應用就可以實現(xiàn)。在這里,通過編程實現(xiàn)多功能時鐘,可以集手表、鬧鐘等功能于一體,使其簡單、方便、實用。 1.2 研究現(xiàn)狀 Android系統(tǒng)自從出現(xiàn)以來,就以其開放性、豐富的硬件、便于開發(fā)等優(yōu)勢逐漸擴大自己的
18、市場份額,尤其在國外,其呼聲日高,正處于迅速發(fā)展的開拓階段。x年第一季度,在美國,基于Android系統(tǒng)的智能手機的銷售量已占據(jù)整個美、美國手機銷售量的28%份額,而IPhone手機的市場份額緊追其后。隨著Android系統(tǒng)的不斷發(fā)展和更新,選擇Android系統(tǒng)的智能手機或者無線終端設備的人越來越多,人們對智能手機或設備的功能需求會越來越高,人們從應用商店里下載應用,同時對移動應用的功能的要求也會越來越高。 安卓平臺具有開發(fā)性,開發(fā)的平臺允許任何移動終端廠商加入到安卓聯(lián)盟中來,顯著的開放性可以使其擁有更多的開發(fā)者;安卓具有開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產品。安卓平臺提
19、供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境,不會受到各種條條框框的阻擾,可想而知,會有多少新穎別致的軟件會誕生。當前國內手機市場正在快速向智能手機推進,而安卓系統(tǒng)無疑是最大的市場需求。各種安卓應用商店的不斷出現(xiàn)、發(fā)展和開發(fā)者的涌入,安卓平臺的應用資源優(yōu)勢不斷擴大。 隨著移動設備的制造和信息技術的不斷發(fā)展,智能手機或者無線終端設備越來越普遍,各種各樣的安卓應用的用戶也越來越多。多功能時鐘作為擁有一個簡單而實用功能的安卓移動應用必將為人們的生活帶來許許多多的便利。顯示時間功能可以讓你隨時知道時間;鬧鐘功能可以提醒人們注意一些容易忽略的時間,可以讓人們養(yǎng)成良好的作息習慣,可以提醒、通知等;計時器功能
20、可以進行較短時間內的提醒鞥;秒表功能可以測量做某件事情的時間等。 1.3 本文的主要工作 本文在現(xiàn)有的Android發(fā)展現(xiàn)狀基礎上,展示了一款基于安卓的移動應用-多功能時鐘的構建的邏輯思路、系統(tǒng)架構以及各個功能的詳細實現(xiàn)與調試過程。 當安裝后點擊進入應用時,出現(xiàn)的是一個時鐘界面,在界面中間顯示的是當前設備的時間,精確到秒。在界面的上方,有“時鐘”、“鬧鐘”、“計時器”、“秒表”功能。點擊“鬧鐘”,此時界面中間是空白,下方有“添加鬧鐘”功能;點擊“添加鬧鐘”,會出現(xiàn)一個時鐘界面,上方的時間是當前的時間,精確到分;點擊“時”,通過旋轉時鐘上的指針來選擇“時”;點擊“分”,通過旋轉時鐘上的指針來
21、選擇“分”,“確定”或“取消”;添加之后,長按添加的鬧鐘后,會提示“刪除”,或取消。點擊“計時器”,會出現(xiàn)“00:00:00”,依次點擊,輸入數(shù)字進行設定,精確到秒,點擊“開始”進行倒計時,“暫?!薄ⅰ袄^續(xù)”或“重置”。點擊“秒表”,會出現(xiàn)“0:0:0:0”,點擊“開始”進行計時,“記錄”記錄時間,“暫停”、“繼續(xù)”或“重置”。本文是對這幾個功能開發(fā)的詳細介紹。 1.4 論文的組織結構 第1章,緒論。主要描述的是基于安卓的多功能時鐘的開發(fā)背景,安卓系統(tǒng)智能手機和平板電腦的發(fā)展現(xiàn)狀。 第2章,安卓相關介紹。介紹了安卓技術、安卓應用程序組件、Android Studio的架構組成和主要功能。
22、 第3章,需求分析。對多功能時鐘的功能和性能進行需求分析,為后續(xù)設計做準備。 第4章,多功能時鐘的架構設計。描述了多功能時鐘的設計目標和原則,介紹了多功能時鐘的架構設計和功能設計,為詳細設計提供參考。 第5章,多功能時鐘的詳細設計與實現(xiàn)。介紹了多功能時鐘的界面設計和各個功能的設計與實現(xiàn)。 第6章,多功能時鐘的實現(xiàn)與測試。介紹了多功能時鐘的架構和模塊的實現(xiàn)、測試與調試,并對出現(xiàn)的問題進行分析說明。 第2章 安卓相關介紹 2.1 安卓系統(tǒng)介紹 2.1.1 安卓技術簡介 Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設備,如智能手機和平板電腦,由Google公
23、司和開放手機聯(lián)盟領導及開發(fā)。Android的系統(tǒng)架構和其操作系統(tǒng)一樣,采用了分層的架構。從架構圖看,Android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統(tǒng)運行庫層和Linux內核層。 1、應用程序層 Android會同一系列核心應用程序包一起發(fā)布,該應用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應用程序都是使用JAVA語言編寫的。 2、應用程序框架 開發(fā)人員也可以完全訪問核心應用程序所使用的API框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序都可以發(fā)布它的功能塊并且任何其它的應用程序都可以使用其所發(fā)布的功能塊(不過得
24、遵循框架的安全性)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。隱藏在每個應用后面的是一系列的服務和系統(tǒng), 其中包括:豐富而又可擴展的視圖(Views),內容提供器(Content Providers),資源管理器(Resource Manager),通知管理器 (Notification Manager) ,活動管理器( Activity Manager) 。應用程序框架呢可以說是一個應用程序的核心,是所有參與開發(fā)的程序員共同使用和遵守的約定,大家在其約定上進行必要的擴展,但程序始終保持主體結構的一致性。其作用是讓程序保持清晰和一目了然,在滿足不同需求的同時又不互相影響。開發(fā)應用
25、時都是通過框架來與Android底層進行交互,接觸最多的就是應用框架層。 3、系統(tǒng)運行庫 Android 包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過 Android 應用程序框架為開發(fā)者提供服務。以下是一些核心庫:系統(tǒng) C 庫(一個從BSD繼承來的標準C系統(tǒng)函數(shù)庫 Libc),媒體庫(基于PacketVideo OpenCORE),Surface Manager(對顯示子系統(tǒng)的管理,并且為多個應用程序提 供了2D和3D圖層的無縫融合), LibWebCore(一個最新的web瀏覽器引擎用,支持Android瀏覽器和一個可嵌入的web視圖)4、Linux內核層
26、 Android的核心系統(tǒng)服務基于Linux2.6內核,如安全性、內存管理、進程管理、網(wǎng)絡協(xié)議棧和驅動模型等都依賴于該內核。Linux內核同時也作為硬件和軟件棧之間的抽象層,它可隱藏具體硬件細節(jié)而為上層提供統(tǒng)一的服務。 2.1.2 安卓應用程序組件 應用程序組件是Android應用程序的基本構建單元。每個組件是系統(tǒng)進入你的應用程序的不同入口點。不是所有的組件對于用戶都是實際上的入口點,有些是互相依賴的,但是每個組件都有特定的作用——每個都是唯一的構建單元,這些構建單元定義你應用程序的全部行為。有四種不同類型的應用程序組件。每種都有不同的用處并且有不同的生命周期。生命周期定義了他們是怎樣被創(chuàng)建
27、和銷毀的。Android開發(fā)四大組件分別是:活動(Activity):用于表現(xiàn)功能。服務(Service):后臺運行服務,不提供界面呈現(xiàn)。廣播接收器(BroadcastReceiver):用于接收廣播。內容提供商(Content Provider):支持在多個應用中存儲和讀取數(shù)據(jù),相當于數(shù)據(jù)庫。 1、Activitiy Android 中,Activity是所有程序的根本,所有程序的流程都運行在Activity 之中,Activity可以算是開發(fā)者遇到的最頻繁,也是Android 當中最基本的模塊之一。一個Activity代表一個單獨的擁有用戶界面的屏幕。比如,一個郵件應用程序可能擁有一個顯
28、示新郵件的列表的Activity,一個編寫郵件的Activity,一個讀郵件的Activity。雖然這些Activity一起工作,但是他們是相互獨立的。因此一個不同的應用程序也可以啟動這些Activity中的任何一個(如果郵件應用程序允許的話)。Activity 當中可以添加一些Button、Check box 等控件。可以看到Activity 概念和網(wǎng)頁的概念相當類似。一個Activity是由Activity類的子類來實現(xiàn)的。 2、Service Service 是android 系統(tǒng)中的一種組件,它跟Activity 的級別差不多,但是他不能自己運行,只能后臺運行,并且可以和其他組件進行交
29、互。Service 是沒有界面的長生命周期的代碼。一個Service組件是運行在后臺的一個進程,這個進程處理一個長時間的操作或者是一個遠程調用。一個Service不需要提供一個用戶界面。比如,一個Service可以在用戶運行一個不同程序的同時在后臺播放音樂,或者在不阻塞一個Activity的用戶界面的同時獲取網(wǎng)絡數(shù)據(jù)。其他的組件,比如一個Activity,可以啟動一個Service并且與之交互。一個Service是由Service的子類來實現(xiàn)的。 3、BroadcastReceiver 在Android 中,Broadcast是一種廣泛運用的在應用程序之間傳輸信息的機制。而Broadcast
30、Receiver 是對發(fā)送出來的Broadcast進行過濾接受并響應的一類組件??梢允褂肂roadcastReceiver 來讓應用對一個外部的事件做出響應。大量的廣播都是由系統(tǒng)產生的。例如屏幕關閉的廣播,電量不足的廣播,拍了一張相片的廣播。應用程序也可以發(fā)出廣播,例如讓其他應用程序知道一些數(shù)據(jù)已從網(wǎng)上下載了,并且它們可以使用這些數(shù)據(jù)。一個Broadcastreceiver組件用于響應整個系統(tǒng)的廣播通知。一個Broadcastreceiver是由BroadcastReceiver的子類來實現(xiàn)的,并且每個廣播都是當作一個Intent對象來傳遞的。 4、Content Provider Cont
31、ent Provider 是Android提供的第三方應用數(shù)據(jù)的訪問方案。一個Contentprovider管理一組共享的應用程序數(shù)據(jù)。你可以把這些數(shù)據(jù)存儲到文件系統(tǒng)、一SQLite數(shù)據(jù)庫、互聯(lián)網(wǎng)或者任何你的應用程序可以訪問的持久化存儲設備中。通過Contentprovider其他的應用程序能夠查詢甚至修改(如果Contentprovider允許修改操作)這些數(shù)據(jù)。例如Android系統(tǒng)提供了管理聯(lián)系人信息的Contentprovider。因此,任何一個應用程序在擁有相應權限的情況下都可以訪問這個Contentprovider管理的數(shù)據(jù)(比如ContactsContract.Data)來讀取或
32、者修改某個聯(lián)系人的信息。Contentprovider用于管理應用程序不與其他程序共享的的私有數(shù)據(jù)也是非常有用的。一個ContentProvider是由ContentProvider的子類來實現(xiàn)的,并且必須實現(xiàn)一組使其他應用程序能與之通信的API。 2.2 Android Studio簡介 2.2.1架構組成 在IDEA的基礎上,Android Studio 提供:基于Gradle的構建支持;Android 專屬的重構和快速修復;提示工具以捕獲性能、可用性、版本兼容性等問題;支持ProGuard和應用簽名;基于模板的向導來生成常用的 Android 應用設計和組件;功能強大的布局編輯器,可以
33、讓你拖拉UI控件并進行效果預覽。 2.2.2主要功能 x年5月16日,在I/O大會上,谷歌推出新的Android開發(fā)環(huán)境——Android Studio,并對開發(fā)者控制臺進行了改進,增加了五個新的功能。 Android Studio是谷歌推出了新的Android開發(fā)環(huán)境,開發(fā)者可以在編寫程序的同時看到自己的應用在不同尺寸屏幕中的樣子。 谷歌對開發(fā)者控制臺進行了改進,增加了五個新的功能,包括優(yōu)化小貼士、應用翻譯服務、推薦跟蹤、營收曲線圖、用版測試和階段性展示。 1、優(yōu)化小貼士:在主體中打開你的應用,點擊小貼士,會得到這樣的建議:為你的應用開發(fā)平板電腦版本。 2、應用翻譯服務:允許開發(fā)者
34、直接在開發(fā)主體中獲得專業(yè)的翻譯。上傳你的需求,選擇翻譯,其會顯示翻譯方和價格,并在一周內發(fā)回譯本。 3、推薦跟蹤:允許開發(fā)者找出最有效的廣告。 4、營收曲線圖:向開發(fā)者展示其應用營收,以國家進行劃分。 5、試用版測試和階段性展示:開發(fā)者可以對應用進行測試,然后向測試用戶推出,測試結果不會對外公布。當一個版本的測試結束,開發(fā)者可以向特定比例用戶推出。 Android Studio這款開發(fā)工具被首次公布,這也是為了方便開發(fā)者基于Android開發(fā)。 首先解決的一個問題是多分辨率。Android設備擁有大量不同尺寸的屏幕和分辨率,根據(jù)新的Studio,開發(fā)者可以很方便的調整在各個分辨率設備
35、上的應用。 同時Studio還解決語言問題,多語言版本(但是沒有中文版本)、支持翻譯都讓開發(fā)者更適應全球開發(fā)環(huán)境。Studio還提供收入記錄功能。 最大的改變在于Beta測試的功能。Studio提供了Beta Testing,可以讓開發(fā)者很方便試運行。 x年5月29日,在谷歌I/O開發(fā)者大會上,谷歌發(fā)布AndroidStudio 1.3版,支持C++編輯和查錯功能。Android Studio 1.3版開發(fā)碼代碼變得更加容易,速度提升,而且支持C++編輯和查錯功能。 第3章 需求分析 3.1 多功能時鐘的功能需求 對于應用的設計目標,首要原則是
36、以用戶為本,宗旨是滿足用戶的需求。從用戶的需求出發(fā),多功能時鐘這款基于安卓的移動應用應當包含日常生活中時鐘的最基本的功能,能夠顯示當前時間,能夠添加和刪除鬧鐘,能夠進行倒計時和能夠進行秒表計時等。 多功能時鐘的設計需要根據(jù)系統(tǒng)功能的不同對應用進行模塊劃分,不同的功能獨立出來形成一個模塊,這樣能夠使我們更好的根據(jù)不同的模塊不同特點有針對性地進行代碼編寫。根據(jù)應用的總體描述,這款應用的功能需求大致分為以下四部分。 1、 查看時間的功能需求 查看時間對于每個時鐘應用來說是一個最基本的功能,在設計多功能時鐘的時候,為了方便用戶查看時間,設計以數(shù)字來顯示時間,簡單明了。 2、添加和刪除鬧鐘的功能需
37、求 多功能時鐘設置鬧鐘時要制作一個“添加鬧鐘”的按鈕,點擊“添加鬧鐘”,會出現(xiàn)一個界面。界面下方是一個時鐘,界面上方顯示的是當前的時間。點擊上方時間的“時”,下方時鐘的指針是跳轉到時的范圍里,有兩圈,一圈12小時;通過旋轉時鐘上的指針來選擇“時”。點擊上方時間的“分”,下方時鐘的指針是跳轉到分的范圍里,有一圈,一圈60分鐘;通過旋轉時鐘上的指針來選擇“分”。在此界面還應有“確定”和“取消”兩個按鈕。此外還應有刪除鬧鐘的功能,因此可以這樣設計:添加鬧鐘之后,長按添加的鬧鐘,會彈出一個提示,提示“刪除”或者“取消”。 3、 計時器的功能需求 倒計時被人們廣泛用于事件提醒。當你有事情需要在特定的時
38、間完成或者到某個時間點要完成某件事情的時候。計時器功能可以提醒你按時完成所需要完成的工作。界面上方顯示為“00:00:00”,可以輸入數(shù)字進行設定,應可以精確到秒,界面下方應有一個“開始”按鈕,點擊“開始”進行倒計時,之后應有“暫?!薄爸刂谩卑粹o,點擊“暫停”后,“暫?!卑粹o應變?yōu)椤袄^續(xù)”按鈕,計時器應可以進行倒計時。 4、秒表的功能需求 秒表具有測量時間的功能,秒表的功能需求來源于需要精確計時的人群,人們可以用秒表測試自己的跑步速度,可以用秒表計算完成一項任務所需要的精確時間,可以用秒表測試自己呼吸頻率、脈搏等等。界面上方顯示為“0:0:0:0”,應可以精確到毫秒,界面下方應有一個“開始”
39、按鈕,點擊“開始”進行計時,之后應有“暫停”和“記錄”按鈕,“記錄”可以記錄時間,點擊“暫停”后,兩個按鈕應分別變?yōu)椤袄^續(xù)”和“重置”按鈕。 3.2 多功能時鐘的性能需求 手機應用要有好的發(fā)展空間,就需要能給用戶提供良好的體驗,而良好的用戶體驗是基于應用的性能的,一般從界面、操作、提示和響應速度等來評價應用的性能的。 對于界面來說,不同的應用有著不同的要求。對于移動應用,需要在30秒到1分鐘的時間內吸引用戶。應用應當設計成,一看到應用就愿意使用,但這并不意味著需要復雜的界面,有可能只需要可以給用戶提供細節(jié)內容就行了。對于多功能時鐘的界面,應該是簡單、突出主題。操作應該是簡單,容易學會和上
40、手。提示應該是簡單明了,讓用戶一看就懂。對于多功能時鐘,響應速度肯定是快速。 第4章 多功能時鐘的架構設計 4.1多功能時鐘設計目標和原則 1、 實現(xiàn)時鐘的基本功能,可以顯示當前時間。 2、 多功能性,實現(xiàn)鬧鐘、計時器、秒表功能。 3、 易用性,界面良好,操作簡單,容易上手。 4、 可靠性,響應速度快,有一定的容錯能力。 4.2多功能時鐘的架構設計 不論是ios還是android的應用開發(fā),其實都遵循著一定的開發(fā)流程,只有如此才能使開發(fā)過程有章可循而不是一團亂。架構設計需要對應用的設計進行考慮,包括應用系統(tǒng)的基本處理流程、應用系統(tǒng)的組織結構、模塊劃分、功能分配、運行設計和出錯處理設計
41、等,為應用的詳細設計提供基礎。對于多功能時鐘來說,首先要基于需求分析來制定開發(fā)流程,然后搭建應用的主框架,由于顯示時間是最基礎的功能,所以先實現(xiàn)顯示時間功能,然后實現(xiàn)鬧鐘、計時器、秒表功能。由于應用是以時鐘為最終應用的,所以應用初始界面設計為時鐘的顯示時間界面。主界面顯示多功能時鐘的所用功能,用戶根據(jù)需求可以自主選擇功能。圖4-1 多功能時鐘架構圖。圖4-2 多功能時鐘開發(fā)流程,從上到下,從左到右依次進行。 圖4-1 多功能時鐘架構圖 圖4-2 多功能時鐘開發(fā)流程 4.3多功能時鐘的功能設計 因為多功能時鐘的各個功能之間是單獨運行的,所以多功能時鐘的每個功能
42、都需要單獨進行設計。已經確定架構設計后,對各個功能進行詳細的設計。 1、 時鐘 對于時鐘沒有什么太大的要求,只要能顯示當前時間就行了。當點擊多功能時鐘APP的快捷方式進入應用后,當前顯示的應是時鐘界面,時鐘界面顯示的是當前的時間。圖4-3 時鐘功能結構模型。 圖4-3 時鐘功能結構模型 2、 鬧鐘 點擊界面上方的“鬧鐘”按鈕后,進入鬧鐘界面,當前鬧鐘界面是不存在鬧鐘的,在界面下方設置一個“添加鬧鐘”按鈕,可以進行添加鬧鐘,點擊后會出現(xiàn)一個稍微小一點的界面。界面下方設置為一個時鐘,界面上方設計為鬧鐘顯示的是當前的時間。設計為點擊上方時間的“時”,下方時鐘的指針設計為跳轉到時的界面里(默認
43、當前是在“時”的界面里);設計時鐘有兩圈,外圈為1-12,內圈為13-00;設計為通過旋轉時鐘上的指針來選擇“時”。設計為點擊上方時間的“分”,下方時鐘的指針是跳轉到分的界面里;設計時鐘為一圈,一圈60分鐘;設計為通過旋轉時鐘上的指針來選擇“分”。在此界面還應有“確定”和“取消”兩個按鈕。此外還應有刪除鬧鐘的功能,因此可以這樣設計:添加鬧鐘之后,長按添加的鬧鐘,會彈出一個提示,操作提示“刪除”或者“取消”。圖4-4 鬧鐘功能結構模型。 圖4-4 鬧鐘功能結構模型 3、計時器 界面上方設計顯示為“00:00:00”,可以輸入數(shù)字進行設定,應可以精確到秒。界面下方設計一個“開始”按鈕,點擊“
44、開始”進行倒計時。之后應設計“暫?!薄爸刂谩卑粹o,設計為點擊“暫?!焙螅皶和!卑粹o變?yōu)椤袄^續(xù)”按鈕。計時器應可以進行倒計時,可以在后臺計時,時間到了,會彈出一個提示。圖4-5 計時器功能結構模型 圖4-5 計時器功能結構模型 4、秒表 界面上方設計顯示為“0:0:0:0”,應可以精確到毫秒。界面下方設計有一個“開始”按鈕,點擊“開始”進行計時,之后應有“暫?!焙汀坝涗洝卑粹o。設計“記錄”按鈕可以記錄時間,點擊“暫停”后,兩個按鈕應分別變?yōu)椤袄^續(xù)”和“重置”按鈕。圖4-6 秒表功能結構模型 圖4-6 秒表功能結構模型 第5章 多功能時鐘的詳細設計與實現(xiàn) 5.1 界面設計 主界面是進入
45、應用時的界面,界面比較簡單。圖5-1 主界面布局,圖5-2 安裝界面。 圖5-1 主界面布局 圖5-2 安裝界面 搭建應用主框架,依次呈現(xiàn)時間、鬧鐘、計時器、秒表。代碼如表5-1所示。 表5-1 搭建應用主框架 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“ 定義一個tabHost變量;初始化;給各個模塊命名并且聲明tab的內容。代碼如表5-2所示。 表5-2 給各個模塊命名 tabHost = (TabHost) findViewById(android.R.id.tabhost); tabHost.setup; tabHost.addTab(tabHost.newTabSpec(“tabTime“).setIndicator(“時鐘“).setContent(R.id.tabTime)); tabHost.addTab(tabHost.newTabSpe
48、c(“tabAlarm“).setIndicator(“鬧鐘“).setContent(R.id.tabAlarm)); tabHost.addTab(tabHost.newTabSpec(“tabTimer“).setIndicator(“計時器“).setContent(R.id.tabTimer)); tabHost.addTab(tabHost.newTabSpec(“tabStopWatch“).setIndicator(“秒表“).setContent(R.id.tabStopWatch)); 5.2 多功能時鐘的功能設計 5.2.1顯示時間功能 多功能時鐘的顯示時間功能如圖5-
49、3所示。 圖5-3 顯示時間功能 新建一個類TimeView,添加構造方法來被代碼調用,被初始化器調用和在初始化的時候指定它的style。代碼如表5-3所示。 表5-3 添加構造方法 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);} 換成自己定義的類,在內部寫一個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 在類里添加一個事件,在初始化后執(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; 重新刷新時間,通過sendEmptyMess
53、age每秒刷新一次。代碼如表5-6所示。 表5-6 設置刷新時間間隔 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、設置文本可見與不可見處理方式 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)的為時間。代碼如表5-8所示。 表5-8 設置呈現(xiàn)的為時間 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 鬧鐘設置界面(時)圖5-5 鬧鐘設置界面(分) 圖5-6 添加鬧鐘后 圖5-7 鬧鐘的刪除界面 圖5-8 鬧鐘播放音樂 新建一個類,添加構造方法。代碼如表5-9所示。 表5-9 添加構造方法 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; 換成自己定義的類,在內部寫一個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 把兩個變量加到類中,通過findViewById找到。給按鈕添加一個事件。代碼如表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; 定義鬧鐘響起的時間,在外界獲取時間。指明一個data變量,來創(chuàng)建時間,實現(xiàn)鬧鐘列表。代碼如表5-12所示。 表5-12 實現(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)); } 設置鬧鐘的時間,設置鬧鐘時間判斷,如果設置時間小于等于當前時間
63、,直接加一天。鬧鐘可以顯示月,日,時,分。代碼如表5-13所示。 表5-13 設置鬧鐘時間及判斷 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; 實現(xiàn)鬧鐘列表的
66、存儲,能夠存儲數(shù)據(jù)。代碼如表5-14所示。 表5-14 存儲鬧鐘列表 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); } 實現(xiàn)鬧鐘列表的讀取,能夠讀取存儲的數(shù)據(jù)。代碼如表5-15所示。 表5-15 讀取鬧鐘列表 private voi
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。