欧洲免费无码视频在线,亚洲日韩av中文字幕高清一区二区,亚洲人成人77777网站,韩国特黄毛片一级毛片免费,精品国产欧美,成人午夜精选视频在线观看免费,五月情天丁香宗合成人网

薈聚奇文、博采眾長(zhǎng)、見(jiàn)賢思齊
當(dāng)前位置:公文素材庫(kù) > 報(bào)告體會(huì) > 心得體會(huì) > 項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)心得

項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)心得

網(wǎng)站:公文素材庫(kù) | 時(shí)間:2019-05-29 07:08:45 | 移動(dòng)端:項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)心得

項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)心得

物流信息管理開(kāi)發(fā)項(xiàng)目實(shí)訓(xùn)報(bào)告

實(shí)習(xí)時(shí)間:201*.5.7--201*.5.18實(shí)習(xí)地點(diǎn):教學(xué)樓九樓/電子閱覽室專業(yè):工商企業(yè)管理(郵政物流)

姓名:易佳樂(lè)學(xué)號(hào):11號(hào)實(shí)訓(xùn)指導(dǎo)老師:鄧雪寧

(1)實(shí)訓(xùn)基本概況

實(shí)訓(xùn)項(xiàng)目名稱:物流管理信息系統(tǒng)開(kāi)發(fā)項(xiàng)目

實(shí)訓(xùn)目的:通過(guò)項(xiàng)目管理和物流管理信息系統(tǒng)的實(shí)訓(xùn),使能將所學(xué)的項(xiàng)目管理和物流管理信息系統(tǒng)專業(yè)知識(shí)和理論能夠和實(shí)踐結(jié)合起來(lái),從而使所掌握的項(xiàng)目與管理信息系統(tǒng)專業(yè)知識(shí)更加扎實(shí),使之了解項(xiàng)目管理和管理信系統(tǒng)的現(xiàn)狀和需求,明確此課程學(xué)習(xí)的重點(diǎn),提高綜合運(yùn)用項(xiàng)目管理和管理信息系統(tǒng)專業(yè)知識(shí)的能力和水平。

要訓(xùn)要求:充分認(rèn)識(shí)到項(xiàng)目管理和管理信息系統(tǒng)的重要性,在實(shí)訓(xùn)過(guò)程中遵循老師的安排,主動(dòng)、獨(dú)立完成任務(wù),注重與團(tuán)隊(duì)的協(xié)作。

實(shí)訓(xùn)分為兩個(gè)階段:第一階段為項(xiàng)目方案的制定;第二階段為項(xiàng)目實(shí)施.

(2)實(shí)訓(xùn)感受:

在這次實(shí)訓(xùn)里面我們學(xué)到了很多也知道了了解了很少,明白了一個(gè)項(xiàng)目要開(kāi)發(fā)出來(lái)的不容易!那么一個(gè)項(xiàng)目最重要的幾件事是什么呢?就讓我來(lái)說(shuō)說(shuō)吧:1)、需要建立需求調(diào)研

在項(xiàng)目確立后,就到了需求調(diào)研分析階段。

1.項(xiàng)目組對(duì)客戶的整體組織結(jié)構(gòu)、公司有關(guān)人員的關(guān)系、職責(zé)等如果沒(méi)有一個(gè)很好、足夠的了解掌握,這樣項(xiàng)目組就無(wú)法很好的完整的整理到客戶的需求、或者說(shuō)客戶真實(shí)的功能需求,如此以來(lái)我們就為自己埋下了地雷,影響項(xiàng)目的開(kāi)發(fā)周期,這就要求我們要與客戶搞好無(wú)論是工作上的還是生活上的朋友關(guān)系,要深入的去了解客戶需求。

2.我們要盡量的讓客戶也參與到項(xiàng)目的開(kāi)發(fā)團(tuán)隊(duì)中來(lái),也就是說(shuō)我們要使客戶把自己也納入到項(xiàng)目的開(kāi)發(fā)團(tuán)隊(duì)中來(lái),如此一來(lái),我們掌握客戶需求的真實(shí)性、可靠性就會(huì)大大的提高,也就不會(huì)為項(xiàng)目的后期功能開(kāi)發(fā)埋下陷阱3.在需求調(diào)研過(guò)程中,如果缺乏足夠用戶參與,這樣的需求調(diào)研也是失敗的。很多程序員不愿參與到客戶的需求調(diào)研中去,為什么呢?很簡(jiǎn)單,與客戶溝通不如與代碼溝通容易有意思。盡管這樣,我們還是必須用足夠多的時(shí)間去和客戶進(jìn)行溝通,了解他們真實(shí)的需求。很多用戶也是如此,他們自己也不愿意參與到項(xiàng)目的需求調(diào)研中來(lái),為什么呢?需求調(diào)研有出去和朋友一塊爛漫對(duì)嗎。。。雖然現(xiàn)狀如此,我們還是要努力的使客戶參與到需求的調(diào)研中來(lái)。4.模糊需求,也就是模棱兩可是需求規(guī)格說(shuō)明中最為可怕的問(wèn)題。一是指諸多客戶對(duì)需求說(shuō)明產(chǎn)生了不同的理解;一是指單個(gè)讀者能用不止一個(gè)方式來(lái)解釋某個(gè)需求說(shuō)明。針對(duì)對(duì)這種情況,就要求我們的調(diào)研人員要能夠從多個(gè)角度來(lái)分析客戶的不同需求,整理出最終的需求與客戶確認(rèn),定出最終真實(shí)可靠的需求,我們絕不能憑借我們自己的單面理解來(lái)定立客戶的最終需求。5.在一個(gè)項(xiàng)目的開(kāi)發(fā)中,文檔的書(shū)寫(xiě)是極為中要的一項(xiàng)工作。因?yàn),某些文檔就是我們?cè)陂_(kāi)發(fā)后期與客戶溝通的可尋依據(jù)、也是我們程序員在編碼過(guò)程中要用到的重要文檔。我們絕對(duì)不能認(rèn)為,憑借我們的大腦來(lái)記錄所有的開(kāi)發(fā)需求。。。;即使,你說(shuō)你是天才,你要用你那顆愛(ài)因斯坦的大腦來(lái)記錄所有的開(kāi)發(fā)需求,那也是不可能的,人的精力總是有限的。這就要求我們?cè)谛枨笳{(diào)研中做好需求文檔的記錄和整理。

6.需求調(diào)研工具選擇,客戶一般對(duì)圖形還是比較感興趣的,所以我們?cè)谡{(diào)研過(guò)程中,我要盡量的采用圖形化界面來(lái)和客戶溝通需求。比如可以采用Rose工具,把客戶的意思轉(zhuǎn)換為用例圖、時(shí)序圖、協(xié)作圖、狀態(tài)圖、類圖等,使表達(dá)的意思更加直觀。這樣客戶會(huì)更快的進(jìn)行問(wèn)題的實(shí)質(zhì)。

2)、要有一個(gè)很好的溝通,在其他行業(yè)中,人與人的之間的溝通只很重要的。項(xiàng)目開(kāi)發(fā)也不例外,很好的溝通能夠加快項(xiàng)目的進(jìn)度,這就要求我們每一個(gè)開(kāi)發(fā)人員要學(xué)會(huì)和善于溝通于客戶和同事之間。在一個(gè)項(xiàng)目的開(kāi)發(fā)過(guò)程中,我們與客戶的溝通是一個(gè)不斷交流和溝通的過(guò)程。在開(kāi)發(fā)到一定的階段,我們就需要和客戶溝通已有功能,盡量的去避免一些隱藏的問(wèn)題,及時(shí)的發(fā)現(xiàn)問(wèn)題,解決問(wèn)題,從而按時(shí)或者提前完成項(xiàng)目的開(kāi)發(fā)。

3)、再有就是做好工作的總結(jié),在項(xiàng)目進(jìn)行的過(guò)程中,我們要不斷去整理自己的工作情況和做好總結(jié)這樣以來(lái),無(wú)論是在自己的技術(shù)還是其它方面,都會(huì)對(duì)我們有很大的提高,在長(zhǎng)期的積累后,無(wú)論是我們個(gè)人能力,,還是我們的團(tuán)隊(duì)能力都會(huì)有很大的提高。

在這次實(shí)訓(xùn)中我學(xué)到了不少的東西,實(shí)訓(xùn)開(kāi)始的第一天老師就給我們講解了我們之前沒(méi)有學(xué)的《項(xiàng)目管理》,然我們學(xué)習(xí)了項(xiàng)目管理的項(xiàng)目管理的定義、它的基本方法以及項(xiàng)目團(tuán)隊(duì)與溝通,有了這些基礎(chǔ)知識(shí)做了鋪墊,接下來(lái)我們就順利開(kāi)始了物流信息管理項(xiàng)目開(kāi)發(fā)的實(shí)訓(xùn)了。

剛開(kāi)始我們進(jìn)行了分組,接著進(jìn)行項(xiàng)目選擇、立項(xiàng)、開(kāi)發(fā)方案的制定,然后制定項(xiàng)目計(jì)劃書(shū),緊接著進(jìn)行系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、然后系統(tǒng)的實(shí)施,在9在實(shí)訓(xùn)的過(guò)程中我學(xué)會(huì)了做里程碑計(jì)劃、組織管理機(jī)構(gòu)圖、wbs、責(zé)任分配表、人力資源計(jì)劃表以及費(fèi)用分解表等。我相信這些東西都是非常有用的,通過(guò)實(shí)訓(xùn)的具體操作我覺(jué)得不僅增長(zhǎng)了我們的知識(shí)面,也加強(qiáng)了我們的動(dòng)手能力。

第二周在電子閱覽室進(jìn)行實(shí)訓(xùn),對(duì)上一周開(kāi)發(fā)的項(xiàng)目進(jìn)行上機(jī)操作,并且開(kāi)發(fā)出本組選擇的項(xiàng)目軟件,在軟件開(kāi)發(fā)的過(guò)程中我學(xué)會(huì)了操作MicrosoftAccess這個(gè)工具,雖然在進(jìn)行開(kāi)發(fā)的過(guò)程中遇到了很多困難和阻礙,但是我們這個(gè)團(tuán)隊(duì)的成員都始終團(tuán)結(jié),決不放棄,最后,我們把軟件開(kāi)發(fā)出來(lái)了,大家都是興奮不已。

當(dāng)然不得不承認(rèn)在實(shí)訓(xùn)的過(guò)程中我們存在許多問(wèn)題和不足,我們的問(wèn)題是在沒(méi)有及時(shí)的去了解實(shí)訓(xùn)重要用到的知識(shí)和項(xiàng)目開(kāi)發(fā)時(shí)用到的一些計(jì)算機(jī)上的工具,使我們?cè)陧?xiàng)目開(kāi)發(fā)的過(guò)程中耽誤了相當(dāng)多的時(shí)間,還有各方面的問(wèn)題都要去請(qǐng)教老師。當(dāng)然我們主要的是以前沒(méi)有接觸到相關(guān)的課程,也沒(méi)有做相關(guān)的實(shí)訓(xùn),只是這一學(xué)期對(duì)物流信息管理在進(jìn)行簡(jiǎn)單的學(xué)習(xí),所以對(duì)于與物流信息管理的項(xiàng)目開(kāi)發(fā)我們剛開(kāi)始時(shí)是根本就是“丈二和尚--摸不著頭腦”,但是慢慢地經(jīng)過(guò)一兩天的實(shí)訓(xùn)我么開(kāi)始找到了感覺(jué),并且產(chǎn)生了很大的興趣,我們就開(kāi)始走上正軌,開(kāi)始跟著老師的思路一步一步的走下來(lái),整個(gè)流程還是相當(dāng)?shù)那逦亍?/p>

這次實(shí)訓(xùn)給我的最大的感受是一個(gè)好的、成功的團(tuán)隊(duì)必須團(tuán)結(jié),每個(gè)人都要有責(zé)任感,有協(xié)作精神,始終想著共同的目標(biāo)去努力。我自己也是我覺(jué)得自己有的時(shí)候好夠努力,通過(guò)實(shí)訓(xùn)我也培養(yǎng)了自己的責(zé)任感,加強(qiáng)了與同學(xué)們之間的交流,從而增進(jìn)了與同學(xué)們之間的友誼,我也學(xué)會(huì)了很多專業(yè)的知識(shí),比如,利用visio制作組織管理機(jī)構(gòu)圖,利用Access開(kāi)發(fā)我們物流倉(cāng)儲(chǔ)管理信息系統(tǒng),我相信這次實(shí)訓(xùn)讓我學(xué)到的東西將是以后我工作中相當(dāng)重要的知識(shí)。

(3)實(shí)訓(xùn)教訓(xùn):

1).在進(jìn)行分配之前先要學(xué)習(xí)相關(guān)的知識(shí),明白自己在干什么,會(huì)干什么,

能否完成相應(yīng)的功能。

2).每個(gè)人都必須按照規(guī)劃的要求,提供完全合乎要求的接口,以提高系統(tǒng)整個(gè)工程的進(jìn)度。

3).在整個(gè)過(guò)程中,大家要多多溝通,以保證信息的高度共享性,這樣可以極高的加快開(kāi)發(fā)的進(jìn)展速度。

擴(kuò)展閱讀:《Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)》項(xiàng)目總結(jié)報(bào)告

實(shí)訓(xùn)報(bào)告

姓名:祝新學(xué)號(hào):1144131專業(yè):軟件技術(shù)課程名稱:android實(shí)訓(xùn)項(xiàng)目名稱:鬧鈴指導(dǎo)教師:王皓實(shí)訓(xùn)日期:201*年10月28日至201*年1月2日

201*年1月2日

Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

目錄

第一章概述..................................................................................................................1第二章需求分析..........................................................................................................2

2.1項(xiàng)目背景.........................................................................................................22.2項(xiàng)目需求.........................................................................................................2第三章相關(guān)技術(shù)..........................................................................................................3

3.1Adnroid平臺(tái)介紹..........................................................................................33.2關(guān)鍵技術(shù)研究.................................................................................................3第四章概要設(shè)計(jì)..........................................................................................................4

4.1系統(tǒng)體系結(jié)構(gòu)...............................................................................................44.2用戶界面設(shè)計(jì)..................................................................................................4第五章詳細(xì)設(shè)計(jì)..........................................................................................................6

5.1添加鬧鈴功能模塊.........................................................................................6第六章結(jié)論................................................................................................................16

Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

第一章概述

本課題要求:設(shè)計(jì)一個(gè)基于Android的位置鬧鐘的軟件。實(shí)現(xiàn)的功能有:a)能在Android上利用其提供地相關(guān)API獲取位置信息。b)能通過(guò)界面設(shè)置鬧鐘的啟動(dòng)條件,包括入場(chǎng)與出場(chǎng)條件的設(shè)

c)建立后臺(tái)服務(wù)進(jìn)程,監(jiān)查位置信息,當(dāng)滿足觸發(fā)條件時(shí),鬧鐘響應(yīng)相應(yīng)事件。

需重點(diǎn)研究的關(guān)鍵問(wèn)題:通過(guò)AndroidApi獲取位置信息,并在指定地點(diǎn)設(shè)置鬧鐘提醒。

解決思路:在界面里顯示當(dāng)前位置信息(經(jīng)緯度值),并輸入指定地點(diǎn)的經(jīng)緯度值,編程實(shí)現(xiàn)對(duì)位置信息實(shí)時(shí)更新,將兩者的經(jīng)緯度轉(zhuǎn)換為距離,如在誤差范圍內(nèi)則啟動(dòng)鬧鈴功能。

1Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

第二章需求分析

2.1項(xiàng)目背景

移動(dòng)互聯(lián)網(wǎng)時(shí)代的來(lái)臨,直接促進(jìn)了搭載智能操作系統(tǒng)、具有強(qiáng)大擴(kuò)展性的智能手機(jī)、平板電腦等移動(dòng)終端產(chǎn)業(yè)的蓬勃發(fā)展。搭載安卓操作系統(tǒng)的智能手機(jī)目前已經(jīng)成為市場(chǎng)上最炙手可熱的智能產(chǎn)品。開(kāi)放的源代碼和零成本已經(jīng)讓安卓在全世界范圍內(nèi)受到青睞并迅速獲得了主要手機(jī)廠商和數(shù)百萬(wàn)軟件開(kāi)發(fā)者的支持,201*年安卓系統(tǒng)的市場(chǎng)份額已經(jīng)超過(guò)Symbian,成為全球第一大智能手機(jī)操作系統(tǒng)。

GPS產(chǎn)業(yè)從軍用轉(zhuǎn)入民用后,正在逐漸向普通消費(fèi)群體發(fā)展,作為使用終端的GPS產(chǎn)品正逐漸的深入人們生活得各個(gè)領(lǐng)域。GPS使用終端最主要的應(yīng)用方面主要體現(xiàn)在各種接收器,比如航空、航海用途的接收器,汽車(chē)導(dǎo)航設(shè)備,或用于登上、遠(yuǎn)足的手持接收器等終端產(chǎn)品。GPS接收終端的結(jié)構(gòu)包括,接收天線、芯片組、電池等,以及外部按鍵和液晶面板等相關(guān)零部件。

該課題實(shí)現(xiàn)在手機(jī)操作系統(tǒng)Android上將GPS導(dǎo)航和鬧鐘提醒兩個(gè)功能結(jié)合起來(lái),攜帶方便,并能超越傳統(tǒng)的時(shí)間鬧鐘提醒功能,使用起來(lái)靈活、快捷、省心,是一款實(shí)用而且高端的手機(jī)軟件。

2.2項(xiàng)目需求

“位置鬧鐘”是一款提醒你地點(diǎn)的軟件,它通過(guò)地圖指定提醒的目的地,同時(shí)要求定位精確、使用過(guò)程可用Wifi(節(jié)省手機(jī)流量)和普通無(wú)網(wǎng)絡(luò)。

“位置鬧鐘”可以通過(guò)GPS定位和手機(jī)蜂窩基站定位兩種定位方式來(lái)監(jiān)測(cè)用戶所在位置。當(dāng)你靠近目的地的時(shí)候,“位置鬧鐘”會(huì)進(jìn)行鬧鐘提醒。而在封閉的空間中,如擁擠的公交車(chē)上,接收不到衛(wèi)星的GPS信號(hào),此時(shí),手機(jī)基站定位就可派上用場(chǎng)。雖然基站的定位精度比起GPS來(lái)說(shuō)稍低,但完全可以滿足位置提醒的要求。此外,“位置鬧鐘”還可以后臺(tái)運(yùn)行,且能和普通鬧鐘一樣設(shè)置多個(gè)位置鬧鈴,有良好的人機(jī)交互界面,可對(duì)其編輯、啟用或禁用。

Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

第三章相關(guān)技術(shù)

3.1Adnroid平臺(tái)介紹

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)一中文名稱,中國(guó)大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由AndyRubin開(kāi)發(fā),主要支持手機(jī)。201*年8月由Google收購(gòu)注資。201*年11月,Google與84家硬件制造商、軟件開(kāi)發(fā)商及電信營(yíng)運(yùn)商組建開(kāi)放手機(jī)聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開(kāi)源許可證的授權(quán)方式,發(fā)布了Android的源代碼。第一部Android智能手機(jī)發(fā)布于201*年10月。Android逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。201*年第一季度,Android在全球的市場(chǎng)份額首次超過(guò)塞班系統(tǒng),躍居全球第一。201*年11月數(shù)據(jù)顯示,Android占據(jù)全球智能手機(jī)操作系統(tǒng)市場(chǎng)76%的份額,中國(guó)市場(chǎng)占有率為90%。201*年09月24日谷歌開(kāi)發(fā)的操作系統(tǒng)Android在迎來(lái)了5歲生日,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達(dá)到10億臺(tái)。

3.2關(guān)鍵技術(shù)研究

應(yīng)用SQLLite數(shù)據(jù)庫(kù):SQLite提供結(jié)構(gòu)化的數(shù)據(jù)存取。SQLite是一款輕型的

數(shù)據(jù)庫(kù),它的設(shè)計(jì)目標(biāo)是嵌入式的,目前已經(jīng)在很多嵌入式產(chǎn)品使用了它,它占用的資源非常低。它能夠支持Windows/Linux/Unix等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如php,Java等,還有ODBC接口,同樣比起Mysql,PostgreSQL來(lái)講,它的處理速度比它們都快。它無(wú)需安裝和管理配置,它是一個(gè)儲(chǔ)存在單一磁盤(pán)文件中的完整數(shù)據(jù)庫(kù),體積小,雖只有250KB但支持?jǐn)?shù)據(jù)庫(kù)大小至2TB。它雖然很小巧,但是支持的SQL語(yǔ)句毫不遜色于其它開(kāi)源數(shù)據(jù)庫(kù)。同時(shí)它還支持事務(wù)功能和并發(fā)處理等等。SQLite也是一套開(kāi)放性的關(guān)聯(lián)式資料庫(kù),其特點(diǎn)在于輕量性方面的設(shè)計(jì)結(jié)構(gòu),更適合在手機(jī)上使用。

Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

第四章概要設(shè)計(jì)

4.1系統(tǒng)體系結(jié)構(gòu)

系統(tǒng)旨在建立Android系統(tǒng)的鬧鐘,主要有如下幾個(gè)核心功能模塊如圖5所示。

節(jié)能功能添加鬧鈴、設(shè)置時(shí)間、重復(fù)等音樂(lè)、鬧鈴提醒方式圖片選取返回首頁(yè)主程序

圖5系統(tǒng)功能模塊圖

4.2用戶界面設(shè)計(jì)

通過(guò)小組討論用戶的界面如下:

4.2.1主頁(yè)面

4

Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

4.2.2添加鬧鈴功能

4.2.3音樂(lè)清單

Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

第五章詳細(xì)設(shè)計(jì)

5.1添加鬧鈴功能模塊

具體實(shí)現(xiàn)代碼如下:/*

*Copyright(C)201*TheAndroidOpenSourceProject*

*LicensedundertheApacheLicense,Version2.0(the"License");*youmaynotusethisfileexceptincompliancewiththeLicense.*YoumayobtainacopyoftheLicenseat*

*-2.0*

*Unlessrequiredbyapplicablelaworagreedtoinwriting,software*distributedundertheLicenseisdistributedonan"ASIS"BASIS,*WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.

*SeetheLicenseforthespecificlanguagegoverningpermissionsand*limitationsundertheLicense.*/

packagecom.android.superdeskclock;

importjava.text.DateFormatSymbols;importjava.util.Calendar;

importandroid.content.Context;importandroid.database.Cursor;

importandroid.media.RingtoneManager;importandroid.net.Uri;

6Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

importandroid.os.Parcel;importandroid.os.Parcelable;

importandroid.provider.BaseColumns;

publicfinalclassAlarmimplementsParcelable{

////////////////////////////////Parcelableapis

//////////////////////////////

publicstaticfinalParcelable.CreatorCREATOR=newParcelable.Creator(){

publicAlarmcreateFromParcel(Parcelp){returnnewAlarm(p);}

publicAlarm[]newArray(intsize){returnnewAlarm[size];}};

publicintdescribeContents(){return0;}

publicvoidwriteToParcel(Parcelp,intflags){p.writeInt(id);

p.writeInt(enabled?1:0);p.writeInt(hour);p.writeInt(minutes);

p.writeInt(daysOfWeek.getCoded());p.writeLong(time);

p.writeInt(vibrate?1:0);p.writeString(label);

p.writeParcelable(alert,flags);p.writeInt(silent?1:0);

//新增

p.writeInt(times);p.writeInt(interval);}

////////////////////////////////endParcelableapis

//////////////////////////////

7Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

////////////////////////////////Columndefinitions

//////////////////////////////

publicstaticclassColumnsimplementsBaseColumns{/**

*Thecontent://styleURLforthistable*/

publicstaticfinalUriCONTENT_URI=

Uri.parse("content://com.android.superdeskclock/alarm");

/**

*Hourin24-hourlocaltime0-23.*Type:INTEGER*/

publicstaticfinalStringHOUR="hour";

/**

*Minutesinlocaltime0-59*Type:INTEGER*/

publicstaticfinalStringMINUTES="minutes";

/**

*Daysofweekcodedasinteger*Type:INTEGER*/

publicstaticfinalStringDAYS_OF_WEEK="daysofweek";

/**

*AlarmtimeinUTCmillisecondsfromtheepoch.*Type:INTEGER*/

publicstaticfinalStringALARM_TIME="alarmtime";

/**

*Trueifalarmisactive*Type:BOOLEAN*/

publicstaticfinalStringENABLED="enabled";

/**

*Trueifalarmshouldvibrate*Type:BOOLEAN

8Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

*/

publicstaticfinalStringVIBRATE="vibrate";

/**

*Messagetoshowwhenalarmtriggers*Note:notcurrentlyused*Type:STRING*/

publicstaticfinalStringMESSAGE="message";

/**

*Audioalerttoplaywhenalarmtriggers*Type:STRING*/

publicstaticfinalStringALERT="alert";

//新增

publicstaticfinalStringTIMES="times";

publicstaticfinalStringINTERVAL="interval";

/**

*Thedefaultsortorderforthistable*/

publicstaticfinalStringDEFAULT_SORT_ORDER=HOUR+","+MINUTES+"ASC";

//Usedwhenfilteringenabledalarms.

publicstaticfinalStringWHERE_ENABLED=ENABLED+"=1";

staticfinalString[]ALARM_QUERY_COLUMNS={_ID,HOUR,MINUTES,DAYS_OF_WEEK,ALARM_TIME,ENABLED,VIBRATE,MESSAGE,ALERT//新增

,TIMES,INTERVAL};

/**

*Thesesavecallstocursor.getColumnIndexOrThrow()*THEYMUSTBEKEPTINSYNCWITHABOVEQUERYCOLUMNS*/

publicstaticfinalintALARM_ID_INDEX=0;publicstaticfinalintALARM_HOUR_INDEX=1;publicstaticfinalintALARM_MINUTES_INDEX=2;

publicstaticfinalintALARM_DAYS_OF_WEEK_INDEX=3;publicstaticfinalintALARM_TIME_INDEX=4;

9Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

publicstaticfinalintALARM_ENABLED_INDEX=5;publicstaticfinalintALARM_VIBRATE_INDEX=6;publicstaticfinalintALARM_MESSAGE_INDEX=7;publicstaticfinalintALARM_ALERT_INDEX=8;

//新增

publicstaticfinalintALARM_TIMES_INDEX=9;publicstaticfinalintALARM_INTERVAL_INDEX=10;}

////////////////////////////////Endcolumndefinitions

//////////////////////////////

//Publicfields

publicintid;

publicbooleanenabled;publicinthour;publicintminutes;publicDaysOfWeekdaysOfWeek;publiclongtime;publicbooleanvibrate;publicStringlabel;publicUrialert;publicbooleansilent;

//新增

publicinttimes;publicintinterval;

publicAlarm(Cursorc){

id=c.getInt(Columns.ALARM_ID_INDEX);

enabled=c.getInt(Columns.ALARM_ENABLED_INDEX)==1;hour=c.getInt(Columns.ALARM_HOUR_INDEX);

minutes=c.getInt(Columns.ALARM_MINUTES_INDEX);daysOfWeek=

DaysOfWeek(c.getInt(Columns.ALARM_DAYS_OF_WEEK_INDEX));time=c.getLong(Columns.ALARM_TIME_INDEX);

vibrate=c.getInt(Columns.ALARM_VIBRATE_INDEX)==1;label=c.getString(Columns.ALARM_MESSAGE_INDEX);

//新增

times=c.getInt(Columns.ALARM_TIMES_INDEX);

interval=c.getInt(Columns.ALARM_INTERVAL_INDEX);

-10-

10newAndroid項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

StringalertString=c.getString(Columns.ALARM_ALERT_INDEX);if(Alarms.ALARM_ALERT_SILENT.equals(alertString)){if(Log.LOGV){

Log.v("Alarmismarkedassilent");}

silent=true;}else{

if(alertString!=null&&alertString.length()!=0){alert=Uri.parse(alertString);}

//Ifthedatabasealertisnulloritfailedtoparse,usethe

//defaultalert.if(alert==null){

alert=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);}}}

publicAlarm(Parcelp){id=p.readInt();

enabled=p.readInt()==1;hour=p.readInt();minutes=p.readInt();

daysOfWeek=newDaysOfWeek(p.readInt());time=p.readLong();

vibrate=p.readInt()==1;label=p.readString();

alert=(Uri)p.readParcelable(null);silent=p.readInt()==1;

//新增

times=p.readInt();interval=p.readInt();}

//Createsadefaultalarmatthecurrenttime.publicAlarm(){id=-1;

Calendarc=Calendar.getInstance();

c.setTimeInMillis(System.currentTimeMillis());

11Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

hour=c.get(Calendar.HOUR_OF_DAY);minutes=c.get(Calendar.MINUTE);vibrate=true;

daysOfWeek=newDaysOfWeek(0);alert

RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);

//新增times=10;interval=0;}

publicStringgetLabelOrDefault(Contextcontext){if(label==null||label.length()==0){

returncontext.getString(R.string.default_label);}

returnlabel;}

/*

*Daysofweekcodeasasingleint.*0x00:noday*0x01:Monday*0x02:Tuesday*0x04:Wednesday*0x08:Thursday*0x10:Friday*0x20:Saturday*0x40:Sunday*/

staticfinalclassDaysOfWeek{

privatestaticint[]DAY_MAP=newint[]{Calendar.MONDAY,Calendar.TUESDAY,Calendar.WEDNESDAY,Calendar.THURSDAY,Calendar.FRIDAY,Calendar.SATURDAY,Calendar.SUNDAY,};

//BitmaskofallrepeatingdaysprivateintmDays;

12-12-

=Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

DaysOfWeek(intdays){mDays=days;}

publicStringtoString(Contextcontext,booleanshowNever){StringBuilderret=newStringBuilder();

//nodays

if(mDays==0){

returnshowNever?

context.getText(R.string.never).toString()"";

}

//everyday

if(mDays==0x7f){return

context.getText(R.string.every_day).toString();}

//countselecteddays

intdayCount=0,days=mDays;while(days>0){

if((days&1)==1)dayCount++;days>>=1;}

//shortorlongform?

DateFormatSymbolsdfs=newDateFormatSymbols();String[]dayList=(dayCount>1)?dfs.getShortWeekdays():dfs.getWeekdays();

//selecteddays

for(inti=0;i<7;i++){

if((mDays&(10)ret.append(

context.getText(R.string.day_concat));}}

returnret.toString();

-13-

13:Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

}

privatebooleanisSet(intday){

return((mDays&(10);}

publicvoidset(intday,booleanset){if(set){

mDays|=(1Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

inttoday=(c.get(Calendar.DAY_OF_WEEK)+5)%7;

intday=0;

intdayCount=0;

for(;dayCount<7;dayCount++){day=(today+dayCount)%7;if(isSet(day)){break;}}

returndayCount;}}}

-15-

Android項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)總結(jié)報(bào)告

第六章結(jié)論

經(jīng)過(guò)累計(jì)一個(gè)多月的努力,基于Android平臺(tái)的位置鬧鐘軟件終于完成了。由于對(duì)Android濃厚的興趣引發(fā)了我對(duì)JAVA的好奇心,畢竟Android是基于JAVA的,雖然這個(gè)軟件的開(kāi)發(fā)沒(méi)有達(dá)到老師的期望值,但是在老師和同學(xué)的幫助下,我還是慢慢摸索完成了這個(gè)軟件。

在這個(gè)過(guò)程中,我學(xué)會(huì)了很多知識(shí),比如Android環(huán)境的搭建和配置問(wèn)題、GPS技術(shù)和Android的構(gòu)架和基本組建等等,同時(shí)我學(xué)會(huì)的最重要的一點(diǎn)是,要利用現(xiàn)有的資源去解決問(wèn)題,在圖書(shū)館、在網(wǎng)絡(luò)上尋找答案,也可以請(qǐng)教老師或與同學(xué)相互討論。

雖然,這個(gè)軟件目前運(yùn)行良好,但是我認(rèn)為代碼的健壯還很差,在整個(gè)工程的構(gòu)思方面也不足,用戶操作界面還不夠靈活,這些問(wèn)題還需要今后逐一解決。與此同時(shí),這個(gè)軟件還可以進(jìn)一步擴(kuò)展,例如“同時(shí)設(shè)置多個(gè)鬧鐘”、“信息分享”、“應(yīng)用推薦”等,使功能更加強(qiáng)大,帶給用戶更好的體驗(yàn)與便捷的生活服務(wù)。

16

友情提示:本文中關(guān)于《項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)心得》給出的范例僅供您參考拓展思維使用,項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)心得:該篇文章建議您自主創(chuàng)作。

來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。


項(xiàng)目開(kāi)發(fā)實(shí)訓(xùn)心得》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請(qǐng)保留原作者信息,謝謝!
鏈接地址:http://www.7334dd.com/gongwen/672257.html