Android站點(diǎn)戶外考勤系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
Android站點(diǎn)戶外考勤系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
Android站點(diǎn)戶外考勤系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
Android站點(diǎn)戶外考勤系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
Android站點(diǎn)戶外考勤系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、南 陽(yáng) 理 工 學(xué) 院本科生畢業(yè)設(shè)計(jì)(論文)學(xué)院(系): 軟件學(xué)院 專(zhuān) 業(yè): 軟件工程 學(xué) 生: 李春峰 指導(dǎo)教師: 王耀寬 完成日期 2012 年 04 月南陽(yáng)理工學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)Android站點(diǎn)戶外考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)Design and Implementation ofthe Android Site Outdoor Attendance System 總 計(jì):畢業(yè)設(shè)計(jì)(論文) 31頁(yè)表 格: 2個(gè)圖 片: 12個(gè)南 陽(yáng) 理 工 學(xué) 院 本 科 畢 業(yè) 設(shè) 計(jì)(論文)Android站點(diǎn)戶外考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)Design and Implementation ofthe A

2、ndroid Site Outdoor Attendance System 學(xué) 院(系): 軟件學(xué)院 專(zhuān) 業(yè): 軟件工程 學(xué) 生 姓 名: 李春峰 學(xué) 號(hào): 指導(dǎo)教師(職稱(chēng)): 王耀寬 講師 評(píng) 閱 教 師: 曹蕾 完 成 日 期: 2012年04月15日 南陽(yáng)理工學(xué)院Nanyang Institute of TechnologyAndroid站點(diǎn)戶外考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)軟件工程 李春峰摘 要 隨著商業(yè)的快速發(fā)展,公司和企業(yè)對(duì)人員管理日益規(guī)范化,考勤是其中常見(jiàn)的一種方式,而對(duì)戶外業(yè)務(wù)人員的考勤還沒(méi)有一種較好的方法;在今天手機(jī)已經(jīng)成為生活中不可缺少一個(gè)工具,Android手機(jī)操作系統(tǒng)已經(jīng)占有著很

3、大一部分市場(chǎng),本課題開(kāi)發(fā)的項(xiàng)目就是基于Android站點(diǎn)戶外考勤系統(tǒng),是針對(duì)戶外的工作人員開(kāi)發(fā)的項(xiàng)目;通過(guò)Google提供的Map地圖包,可以很直接很方便獲取到所在地的位置信息,然后轉(zhuǎn)換為地理坐標(biāo),可以定位到精確的位置,本系統(tǒng)每隔一段時(shí)間發(fā)送一次請(qǐng)求獲取信息,當(dāng)戶外工作人員獲取所在地理位置信息,把獲取到的地理位置坐標(biāo)提交到服務(wù)器;當(dāng)因網(wǎng)路問(wèn)題或者其他問(wèn)題時(shí)還是無(wú)法獲取到位置信息時(shí),系統(tǒng)會(huì)自動(dòng)提示啟動(dòng)自帶的照相功能,可以通過(guò)對(duì)所在的位置拍照,并提交照片到服務(wù)器并保存記錄,從而達(dá)到了一種考勤方式。關(guān)鍵詞 Android;考勤;GPS;站點(diǎn)Design and Implementation ofth

4、e Android Site Outdoor Attendance SystemSoftware Engineering MajorLi ChunfengAbstract: Along with the rapid development of to business, companies and enterprises to personnel management increasingly standardized, attendance is one common way, the outdoor business staff attendance is not a good metho

5、d; in todays mobile phone has become indispensable in the life of a tool, Android mobile phone operating system have great part of the market, this topic development project is based on the Android site outdoor attendance system, is for outdoor staff development projects; through the Google Map map

6、pack, can be very direct and convenient access to the location information, and then converted to geographic coordinates, can be positioned to a precise location, the system every for a period of time to send a request for information, when the outdoor workers to obtain location information, the acc

7、ess to the geographical coordinates is submitted to the server; when due to network problems or other issues still cannot get the location information, the system will automatically prompt start with photographic function, can pass on the location., and submit the photos to the server and record kee

8、ping, and thereby achieving a attendance mode.Key words: Android; checking attendance; GPS; spot目 錄1 引言11.1 Android系統(tǒng)發(fā)展趨勢(shì)11.2 開(kāi)發(fā)的主要內(nèi)容和目標(biāo)21.3 項(xiàng)目意義32 Android系統(tǒng)開(kāi)發(fā)和平臺(tái)搭建42.1 Android系統(tǒng)的架構(gòu)42.1.1 應(yīng)用程序、42.1.2 應(yīng)用程序框架42.1.3 系統(tǒng)運(yùn)行庫(kù)52.1.4 Linux內(nèi)核62.2 Android平臺(tái)的搭建63 需求分析83.1 用戶功能需求分析83.2 技術(shù)可行性分析93.3 市場(chǎng)可行性分析94 程序概要

9、設(shè)計(jì)104.1 系統(tǒng)體系結(jié)構(gòu)104.2 功能模塊設(shè)計(jì)115 系統(tǒng)編碼與實(shí)現(xiàn)125.1 界面的設(shè)計(jì)與實(shí)現(xiàn)125.1.1 登錄界面125.1.2 獲取坐標(biāo)界面145.1.3 拍攝圖片界面165.2 功能的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)165.2.1 主功能界面描述165.2.2 獲取地理坐標(biāo)185.2.3 顯示GPS歷史數(shù)據(jù)215.3 數(shù)據(jù)庫(kù)部分235.3.1建立數(shù)據(jù)庫(kù)表235.3.2 往數(shù)據(jù)庫(kù)里面寫(xiě)入和讀取數(shù)據(jù)235.4 使用的的外部類(lèi)以及其他屬性256 系統(tǒng)測(cè)試256.1 Android應(yīng)用開(kāi)發(fā)的測(cè)試技術(shù)256.2 測(cè)試的任務(wù)266.3 測(cè)試方案與過(guò)程266.4 模塊測(cè)試276.4.1 獲取坐標(biāo)276.4.2

10、 拍攝照片276.4.3 驗(yàn)收測(cè)試276.5 測(cè)試結(jié)果27結(jié)束語(yǔ)28參考文獻(xiàn)30致謝311 引言Android是新起的操作系統(tǒng),現(xiàn)在已占據(jù)了三分之一的江山,隨著智能手機(jī)的快速普及,智能手機(jī)操系統(tǒng)市場(chǎng)已風(fēng)聲水起,為了讓智能手機(jī)用戶隨時(shí)隨地的查詢互聯(lián)網(wǎng)提供的服務(wù),一種高效的辦法就是就是將應(yīng)用系統(tǒng)拓展到手機(jī)終端上,讓手機(jī)用戶通過(guò)網(wǎng)絡(luò)能隨時(shí)隨地的處理各種各樣的業(yè)務(wù)。因此,結(jié)合用戶的需求,手機(jī)應(yīng)用軟件有廣闊的發(fā)展前景。本開(kāi)發(fā)項(xiàng)目就是建立在Android操作系統(tǒng)上,運(yùn)用Java語(yǔ)言,從Google上獲取地理坐標(biāo)位置,轉(zhuǎn)換為百度地理坐標(biāo)。1.1 Android系統(tǒng)發(fā)展趨勢(shì)Android一詞本義指“機(jī)器人”,

11、同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng),號(hào)稱(chēng)是首個(gè)為移動(dòng)終端打造的真正開(kāi)放和完整的移動(dòng)軟件1。本項(xiàng)目的開(kāi)發(fā)與設(shè)計(jì)主要是以Android作為技術(shù)平臺(tái),用Java語(yǔ)言進(jìn)行編寫(xiě),在手機(jī)上運(yùn)用的項(xiàng)目,能夠根據(jù)Google地圖獲取所在位置的地理坐標(biāo),運(yùn)用百度轉(zhuǎn)碼轉(zhuǎn)換換為地理坐標(biāo),把數(shù)據(jù)發(fā)送到服務(wù)器端,以便管理員能根據(jù)接受到的數(shù)據(jù)進(jìn)行判斷該員工是否已準(zhǔn)時(shí)上班,可以很規(guī)范化的管理在外的業(yè)務(wù)人員。該系統(tǒng)避免了因上班位置不固定不能進(jìn)行考勤的弊端,完善了公司和企業(yè)的管理制度規(guī)范化,對(duì)公司企業(yè)的經(jīng)濟(jì)發(fā)展有著現(xiàn)實(shí)性作用。Android作為谷歌企業(yè)戰(zhàn)略的重要組成部分,將進(jìn)一

12、步推進(jìn)“隨時(shí)隨地為每個(gè)人提供信息”這一企業(yè)目標(biāo)的實(shí)現(xiàn)。我們發(fā)現(xiàn),全球?yàn)閿?shù)眾多的移動(dòng)電話用戶從未使用過(guò)任何基于 Android 的電話。谷歌的目標(biāo)是讓?zhuān)ㄒ苿?dòng)通訊)不依賴于設(shè)備甚至平臺(tái)。出于這個(gè)目的,Android將補(bǔ)充,而不會(huì)替代谷歌長(zhǎng)期以來(lái)奉行的移動(dòng)發(fā)展戰(zhàn)略:通過(guò)與全球各地的手機(jī)制造商和移動(dòng)運(yùn)營(yíng)商結(jié)成合作伙伴,開(kāi)發(fā)既有用又有吸引力的移動(dòng)服務(wù),并推廣這些產(chǎn)品2。如圖1-1所示:圖1-1 3月份手機(jī)系統(tǒng)趨勢(shì)據(jù)最新數(shù)據(jù)顯示(上圖),2012年全球市場(chǎng)3月份排在第一名依然是Simian,達(dá)到31.31%,而且份額比2月份的30.19%有明顯上升,這無(wú)疑令人驚奇。最近推出的

13、Nokia 808是Simian的,像素達(dá)到4100萬(wàn),這款手機(jī)的銷(xiāo)量如何2月份ions和Android分別為25.49%和24.76%,相差0.73%。3月份分別為24.14%和23.69%,二者相差更小了,只有0.45%,從之前幾個(gè)月的趨勢(shì)來(lái)看,這2者的差距一直在縮小。如圖1-2所示:圖1-2 手機(jī)趨勢(shì)而在中國(guó)市場(chǎng),跟國(guó)際市場(chǎng)的反差巨大,Simian出現(xiàn)大幅度下跌,35.28%下降到18.96%,從第一名滑到了第三名。Android和ions增幅都很明顯,Android從25.89%上升到36.01%,ions從12.79%上升到15.86%,國(guó)際市場(chǎng)上他們的表現(xiàn)跟國(guó)內(nèi)市場(chǎng)看來(lái)是密不可分的

14、。有趣的是中國(guó)的山寨操作系統(tǒng)(Unknown)增幅也很快,僅次于Android位居第二。我們認(rèn)為,安卓在全球市場(chǎng)不斷的成長(zhǎng)壯大,占據(jù)更多的市場(chǎng)份額已是不爭(zhēng)的事實(shí)3。1.2 開(kāi)發(fā)的主要內(nèi)容和目標(biāo)外勤員工定位管理作為精細(xì)化管理的一種具體體現(xiàn)方式,很大程度上能夠提高企業(yè)的效率,幫助管理者時(shí)刻獲悉外勤人員的工作動(dòng)向。該項(xiàng)目是燕京啤酒公司其中的一個(gè)模塊,是對(duì)企業(yè)員工定位的一整套解決方案,無(wú)需添加硬件投資,租用型模式可隨時(shí)啟動(dòng)、停止服務(wù),不需前期資產(chǎn)添置,不會(huì)引起后期所帶來(lái)潛在的資產(chǎn)閑置可能。極大地降低企業(yè)實(shí)施考勤管理的總體成本。外勤員工考勤解決方案可以通過(guò)在員工現(xiàn)有手機(jī)上安裝部署手機(jī)軟件的形式,進(jìn)行定位

15、。而管理者可通過(guò)計(jì)算機(jī)網(wǎng)頁(yè),手機(jī)網(wǎng)頁(yè)等形式查詢員工的當(dāng)前位置狀態(tài)。預(yù)定區(qū)域到達(dá)/離開(kāi)通知服務(wù)是考勤的另一種模式。首先員工在自己的手機(jī)上需安裝特定的手機(jī)軟件,接著企業(yè)的管理者可以預(yù)先設(shè)定某些區(qū)域,當(dāng)員工進(jìn)入這些預(yù)設(shè)的區(qū)域時(shí),點(diǎn)擊獲取地理坐標(biāo),然后向服務(wù)器發(fā)送該地理坐標(biāo),同時(shí)也能存儲(chǔ)在考勤報(bào)表中,便于日后查閱。1.3 項(xiàng)目意義在最近幾年里,移動(dòng)通信和手機(jī)互聯(lián)網(wǎng)成為當(dāng)今世界發(fā)展最快、市場(chǎng)潛力最大、前景最誘人的兩大業(yè)務(wù)。接著隨著3G的出現(xiàn),手機(jī)互聯(lián)網(wǎng)時(shí)代又更進(jìn)一步的推進(jìn)了發(fā)展,它們的增長(zhǎng)速度都是任何預(yù)測(cè)家未曾預(yù)料到的。迄今,全球移動(dòng)用戶已超過(guò)15億,互聯(lián)網(wǎng)用戶也已逾7億。中國(guó)移動(dòng)通信用戶總數(shù)超過(guò)36億

16、,互聯(lián)網(wǎng)用戶總數(shù)則超過(guò)1億。這一歷史上從來(lái)沒(méi)有過(guò)的高速增長(zhǎng)現(xiàn)象反映了隨著時(shí)代與技術(shù)的進(jìn)步,人類(lèi)對(duì)移動(dòng)性和信息的需求急劇上升。越來(lái)越多的人希望在移動(dòng)的過(guò)程中高速地接入互聯(lián)網(wǎng),獲取急需的信息,完成想做的事情。所以,現(xiàn)在出現(xiàn)的手機(jī)與互聯(lián)網(wǎng)相結(jié)合的趨勢(shì)是歷史的必然。目前,手機(jī)互聯(lián)網(wǎng)正逐漸滲透到人們生活、工作的各個(gè)領(lǐng)域4。手機(jī)考勤,是中國(guó)移動(dòng)九大技術(shù)創(chuàng)新應(yīng)用之一。Android作為谷歌企業(yè)戰(zhàn)略的重要組成部分,將進(jìn)一步推進(jìn)“隨時(shí)隨地為每個(gè)人提供信息”這一企業(yè)目標(biāo)的實(shí)現(xiàn)。我們發(fā)現(xiàn),全球?yàn)閿?shù)眾多的移動(dòng)電話用戶從未使用過(guò)任何基于Android的電話。谷歌的目標(biāo)是讓?zhuān)ㄒ苿?dòng)通訊)不依賴于設(shè)備甚至平臺(tái)。出于這個(gè)目的,

17、Android將補(bǔ)充,而不會(huì)替代谷歌長(zhǎng)期以來(lái)奉行的移動(dòng)發(fā)展戰(zhàn)略:通過(guò)與全球各地的手機(jī)制造商和移動(dòng)運(yùn)營(yíng)商結(jié)成合作伙伴,開(kāi)發(fā)既有用又有吸引力的移動(dòng)服務(wù),并推廣這些產(chǎn)品。采用相關(guān)的技術(shù)軟件,用手機(jī)替代員工的胸卡,充當(dāng)門(mén)禁,只要在上班的規(guī)定時(shí)間用手機(jī)獲取所在的地理位置信息,提交發(fā)送到公司的服務(wù)器,可以作為考勤。并且其還可以作為內(nèi)部消費(fèi),以及內(nèi)部信息發(fā)送的工具,公司可以向員工發(fā)送需要轉(zhuǎn)達(dá)的信息。當(dāng)Android出來(lái)的時(shí)候,大家都非常興奮,希望這個(gè)開(kāi)放平臺(tái)能夠做好做大,有益于移動(dòng)互聯(lián)網(wǎng)整個(gè)產(chǎn)業(yè)鏈的每一個(gè)角色:軟件平臺(tái)提供商Google,元器件供應(yīng)商與設(shè)備制造商,網(wǎng)絡(luò)運(yùn)營(yíng)商,應(yīng)用開(kāi)發(fā)者,消費(fèi)者。系統(tǒng)考勤管理

18、是人力資源管理的重要環(huán)節(jié)。企業(yè)要建立高效的考勤管理所面臨的挑戰(zhàn)包括:靈活合理的排班計(jì)劃,勞動(dòng)力成本的有效控制,實(shí)時(shí)的考勤數(shù)據(jù)審核和分析。在傳統(tǒng)的管理方式下,外勤業(yè)務(wù)員由于位置不確定,大量的考勤數(shù)據(jù)無(wú)法及時(shí)、準(zhǔn)確地處理,使管理者無(wú)法獲取實(shí)時(shí)的考勤信息來(lái)進(jìn)行分析以支持決策,并且傳統(tǒng)的管理方式存在眾多弊端、人為因素眾多,而本項(xiàng)目采用移動(dòng)互聯(lián)網(wǎng)管理方式,技術(shù)領(lǐng)先,優(yōu)勢(shì)突出??记诠芾硐到y(tǒng)是人力資源管理系統(tǒng)的輔助系統(tǒng)。考勤管理支持人工手機(jī)客戶端考勤,所謂人工手機(jī)考勤方式就是以手機(jī)作為考勤工具,Android是Google開(kāi)發(fā)的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)。將每天的考勤數(shù)據(jù)提交給管理員,可以進(jìn)行有效

19、地管理規(guī)范化,實(shí)現(xiàn)手機(jī)互聯(lián)網(wǎng)的優(yōu)勢(shì),采用Google地圖,獲取地理位置信息,GPS定位簽到,使用者可以很方便地隨時(shí)查詢、統(tǒng)計(jì)、管理員工的考勤信息5。2 Android系統(tǒng)開(kāi)發(fā)和平臺(tái)搭建本應(yīng)用的主要開(kāi)發(fā)環(huán)境是基于Android平臺(tái),接下來(lái)將介紹Android的系統(tǒng)的主要組成部分和Android環(huán)境的搭建。2.1 Android系統(tǒng)的架構(gòu)Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。如圖2-1所示,Android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和linux核心庫(kù)層次6,如圖2-1所示:2-1 Android系統(tǒng)架構(gòu)圖2.1.1 應(yīng)用程序、Andr

20、oid會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶端、SMS短信消息程序、日歷、地圖、瀏覽器,聯(lián)系人管理程序等,有的應(yīng)用程序都是使用Java語(yǔ)言編寫(xiě)的。2.1.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ā)布的功能塊。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。隱藏在每個(gè)應(yīng)用后面的是一系列的服務(wù)和系統(tǒng),其中包括:(1) 豐富而又可擴(kuò)展的視圖(Views)可以用來(lái)構(gòu)建的應(yīng)用程序,它包括列表(lists)、網(wǎng)格(grids)、文本框(

21、text boxes),按鈕(buttons)甚嵌入的web瀏覽器。(2)內(nèi)容提供商(ContentProviders)使得應(yīng)用程序可以訪問(wèn)另一個(gè)應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫(kù)),或者共享它們自己的數(shù)據(jù)(3)資源管理器(Resource Manage)提供非代碼資源的訪問(wèn),如本地字符串,圖形和布局文件(layout files)。(4)通知管理器(Notification Manager)使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。(5)活動(dòng)管理器(Activity Manager)用來(lái)管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。2.1.3 系統(tǒng)運(yùn)行庫(kù)(1) 程序庫(kù)Android包含一些

22、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),它是專(zhuān)門(mén)為基于embedded linux的設(shè)備定制的。媒體庫(kù):基于PacketVideo OpenCORE,該庫(kù)支持多種常用的音頻、視頻格式回放和錄制,同時(shí)支持靜態(tài)圖像文件。編碼格式包括MPEG4、H.264、MP3、AAC、AMR、JPG,PNG。Surface Manager:對(duì)顯示子系統(tǒng)的管理,并且為多個(gè)應(yīng)用程序提供了2D和3D圖層的無(wú)縫融合。LibWebCore:一個(gè)最新的web瀏覽器引擎用,支持A

23、ndroid瀏覽器和一個(gè)可嵌入的web視圖。SGL:底層的2D圖形引擎。3D libraries:基于OpenGLES1.0 APIs實(shí)現(xiàn);該庫(kù)可以使用硬件3D加速或者使用高度優(yōu)化的3D軟加速。FreeType:位圖(bitmap)和矢量(vector)字體顯示。SQLite:一個(gè)對(duì)于所有應(yīng)用程序可用,功能強(qiáng)勁的輕型關(guān)系型數(shù)據(jù)庫(kù)引擎。(2)Android運(yùn)行庫(kù)Android包括了一個(gè)核心庫(kù),該核心庫(kù)提供了Java編程語(yǔ)言核心庫(kù)的大多數(shù)功能,熟悉Java預(yù)言的開(kāi)發(fā)者可以很容易上手。每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例。Dalvik 被設(shè)計(jì)成一

24、個(gè)設(shè)備,它可以同時(shí)高效地運(yùn)行多個(gè)虛擬系統(tǒng),Dalvik虛擬機(jī)執(zhí)行的Dalvik可執(zhí)行文件(.dex),該格式文件針對(duì)小內(nèi)存使用做了優(yōu)化。同時(shí)虛擬機(jī)是基于寄存器的,所有的類(lèi)都經(jīng)由JAVA編譯器編譯,然后通過(guò)SDK中的“dx”工具轉(zhuǎn)化成.dex格式由虛擬機(jī)執(zhí)行。Dalvik虛擬機(jī)依賴于Linux內(nèi)核的一些功能,比如線程機(jī)制和底層內(nèi)存管理機(jī)制7。2.1.4 Linux內(nèi)核Android的核心系統(tǒng)服務(wù)依賴于Linux2.6內(nèi)核,如安全性,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。Linux內(nèi)核也同時(shí)作為硬件和軟件棧之間的抽象層。2.2 Android平臺(tái)的搭建1. JDK的安裝雙擊JDK安裝包,按照安

25、裝提示一步一步進(jìn)行,然后配置環(huán)境變量,安裝完成之后,可以在檢查JDK是否安裝成功。打開(kāi)cmd窗口,輸入java-version查看JDK的版本信息。出現(xiàn)如圖2-2的信息表示安裝成功。圖2-2 驗(yàn)證JDK安裝是否成功2. Eclipse的安裝Eclipse IDE for Java Developers (Eclipse Helios 3.6)。/downloads下載完成之后,直接解壓即可(例如的安裝路徑C:Program Fileseclipse_java)。3. Android SDK的安裝(1)在Android Developers下載Andro

26、id-sdk_r05-windows.zip,下載完成后解壓到任意路徑Windows 環(huán)境下,右擊我的電腦( My Computer),并選擇屬性(Properties)。在標(biāo)簽頁(yè)高級(jí)(Advanced),點(diǎn)擊環(huán)境變量(Environment Variables),當(dāng)對(duì)話出現(xiàn), 在系統(tǒng)變量(System Variables)欄目里雙擊路徑(Path),并添加tools/文件夾的完整路徑。需要說(shuō)明的是,如果你升級(jí)你的SDK路徑不同 ,你需要記得更新你的路徑(PATH)到新的位置。(2)運(yùn)行SDK Setup.exe,點(diǎn)擊Available Packages。如果沒(méi)有出現(xiàn)可安裝的包,點(diǎn)擊Setti

27、ngs,選中Misc中的“Force http:/.”這項(xiàng),再點(diǎn)擊Available Packages。(3)選擇希望安裝的SDK及其文檔或者其它包,點(diǎn)擊Installation,Selected、Accept All、Install Accepted,開(kāi)始下載安裝所選包。(4)在用戶變量中新建PATH值為:Android SDK中的tools絕對(duì)路徑。4. ADT的安裝(1)如果你要使用 Eclipse IDE作為開(kāi)發(fā)Android應(yīng)用的環(huán)境,你可以安裝支持Android工程和工具的通用插件Android Development Tools (ADT),ADT插件包含強(qiáng)大的擴(kuò)張,使得創(chuàng)建,運(yùn)

28、行和調(diào)試Android更快速,點(diǎn)擊Add.按鈕,彈出對(duì)話框要求輸入Name和Location,Location輸入/android/eclipse。如圖2-3所示:圖2-3 ADT的安裝(2)確認(rèn)后,展開(kāi)Developer Tools將顯示Android DDMS和Android Development Tool,勾選它們,然后按提示繼續(xù)下一步。(3)點(diǎn)擊 Finish,ADT插件沒(méi)有簽名,你可以接收點(diǎn)擊安裝所有來(lái)安裝,重啟Eclipse。(4)完成之后,選擇WindowPreferences.,在左邊的面板選擇Android,然后在右側(cè)點(diǎn)擊Bro

29、wse.并選中SDK路徑E:android-sdk-windows,點(diǎn)擊Apply、OK,配置完成8。5 .創(chuàng)建AVD(1)在Eclipse中,選擇WindowsAndroid SDK and AVD Manager,點(diǎn)擊左側(cè)面板的Virtual Devices,再右側(cè)點(diǎn)擊New,填入名字ff、Target選擇Android 2.2-API Level8、SD Card 512MiB,選用HVGA Skin,其余默認(rèn)設(shè)置。(2)點(diǎn)擊Create AVD即可完成創(chuàng)建AVD。運(yùn)行新建的模擬器,在列表中選中要運(yùn)行的模擬器,然后單擊“start.”;再單擊“l(fā)aunch”。當(dāng)運(yùn)行成功后出現(xiàn)如圖2-3所

30、示界面: (3)如果你的開(kāi)發(fā)環(huán)境缺少合適的虛擬機(jī),安裝 Sun Java 6可以解決這個(gè)問(wèn)題,然后你再重新安裝ADT插件。如果JDK已經(jīng)安裝到你的開(kāi)發(fā)電腦上,請(qǐng)確定在這頁(yè)的頂部列出的所選擇的版本,有些Linux包含jdk1.4或者Java的gnu編譯器,以上二者Android開(kāi)發(fā)不支持,如圖2-3所示:圖2-3 模擬器寫(xiě)個(gè)helloworld程序進(jìn)行測(cè)試,能夠運(yùn)行,表示環(huán)境搭建成功,可以進(jìn)行項(xiàng)目的開(kāi)發(fā)。3 需求分析3.1 用戶功能需求分析本項(xiàng)目是燕京啤酒公司的其中一個(gè)模塊,是針對(duì)外勤業(yè)務(wù)人員而開(kāi)發(fā)的一個(gè)項(xiàng)目,是與服務(wù)器相對(duì)應(yīng)的客戶端應(yīng)用。勤員工考勤解決方案可以通過(guò)在員工現(xiàn)有手機(jī)上安裝部署手機(jī)軟

31、件的形式,進(jìn)行定位。而管理者可通過(guò)計(jì)算機(jī)網(wǎng)頁(yè),手機(jī)網(wǎng)頁(yè)等形式查詢員工的當(dāng)前位置狀態(tài)。預(yù)定區(qū)域到達(dá)/離開(kāi)通知服務(wù)是考勤的另一種模式。外勤人員由于上班場(chǎng)所不固定,其考勤問(wèn)題難以得到有效的解決,而本系統(tǒng)就是針對(duì)此問(wèn)題進(jìn)行開(kāi)發(fā)。用戶安裝在手機(jī)里,當(dāng)?shù)缴习嗟臅r(shí)間時(shí),通過(guò)此Google地圖獲取所在地理坐標(biāo),然后通過(guò)百度轉(zhuǎn)碼轉(zhuǎn)換為精確的地理坐標(biāo),點(diǎn)擊提交按鈕,會(huì)通過(guò)服務(wù)器發(fā)送給相關(guān)工作人員,而在電腦端會(huì)顯示該坐標(biāo)的詳細(xì)地理位置,客戶端人員也可以通過(guò)手機(jī)瀏覽歷史數(shù)據(jù),進(jìn)行有效地管理和考勤;如:上海市徐匯區(qū)平江路48號(hào),從而達(dá)到一種及時(shí)考勤方式。本系統(tǒng)設(shè)計(jì)可以分為三大塊:獲取Google地理坐標(biāo),百度轉(zhuǎn)碼轉(zhuǎn)換坐

32、標(biāo),發(fā)送獲取的數(shù)據(jù)。3.2 技術(shù)可行性分析本軟件是基于Android操作平臺(tái),全部采用Java編程語(yǔ)言編寫(xiě),并具有以下特點(diǎn):(1) Android是一種以Linux為基礎(chǔ)的開(kāi)放源碼操作系統(tǒng),并具有以下特點(diǎn),如表3-1所示:表3-1 Android系統(tǒng)特點(diǎn)發(fā)行商:Google編程語(yǔ)言:C/C+(底層) Java等應(yīng)用層源碼模式:混合(自由免費(fèi),開(kāi)放源碼)包類(lèi)型:APK支持平臺(tái):ARM、MIPS、x86內(nèi)核類(lèi):整塊性核心(Linux)(2) Java語(yǔ)言的Java語(yǔ)言很好的借鑒了C+語(yǔ)言,具有以下特點(diǎn),如表3-2所示:表3-2 數(shù)據(jù)表City面向?qū)ο螅篔ava語(yǔ)言的設(shè)計(jì)完全是面向?qū)ο蟮?,支持靜態(tài)和

33、動(dòng)態(tài)風(fēng)格的代碼繼承及重用。平臺(tái)無(wú)關(guān)性:Java將它的程序編譯成一種結(jié)構(gòu)中立的中間文件格式。只要裝有Java運(yùn)行系統(tǒng)(Java虛擬機(jī))的機(jī)器都能執(zhí)行這種中間代碼。這些字節(jié)碼指令由Java虛擬機(jī)來(lái)執(zhí)行,Java虛擬機(jī)的解釋器在得到字節(jié)碼后,將其轉(zhuǎn)換并執(zhí)行,而不是由操作系統(tǒng)來(lái)執(zhí)行的。所以無(wú)論在任何操作系統(tǒng)上,Java程序都能直接運(yùn)行。 穩(wěn)定和安全性:Java的異常處理機(jī)制可以幫助檢查出許多開(kāi)發(fā)早期出現(xiàn)的錯(cuò)誤。Java自己操縱內(nèi)存減少了內(nèi)存出錯(cuò)的可能性。Java還實(shí)現(xiàn)了真數(shù)組,避免了覆蓋數(shù)據(jù)的可能。Java提供Null指針檢測(cè)數(shù)組邊界,檢測(cè)異常出口字節(jié)代碼校驗(yàn)。因此Java是穩(wěn)定健壯的,這項(xiàng)功能特征大

34、大縮短了開(kāi)發(fā)Java應(yīng)用程序的周期。在安全性方面,指針和釋放內(nèi)存等C+功能被刪除,避免了由于非法內(nèi)存操作而帶來(lái)的安全問(wèn)題。3.3 市場(chǎng)可行性分析Android智能手機(jī)越來(lái)越在中國(guó)占據(jù)較多的市場(chǎng),據(jù)相關(guān)資料顯示2011年第一季度,Android在全球的市場(chǎng)份額首次超過(guò)塞班系統(tǒng),躍居全球第一。 2012年2月數(shù)據(jù),Android占據(jù)全球智能手機(jī)操作系統(tǒng)市場(chǎng)52.5%的份額,中國(guó)市場(chǎng)占有率為68.4%,所以本開(kāi)發(fā)項(xiàng)目就是會(huì)有著廣大的客戶群體9;目前考勤是一家企業(yè)和公司對(duì)人員管理運(yùn)用的一種普遍管理模式,而外勤人員由于具有很大的流動(dòng)性,而對(duì)此考勤的考勤問(wèn)題的正是本項(xiàng)目的開(kāi)發(fā)的。4 程序概要設(shè)計(jì)4.1 系

35、統(tǒng)體系結(jié)構(gòu)通過(guò)項(xiàng)目需求分析和用戶需求,本項(xiàng)目需要設(shè)計(jì)到用戶通過(guò)界面進(jìn)行交互,但主要核心部分是后臺(tái)服務(wù)的service部分,需要不斷的運(yùn)行在后臺(tái)搜索數(shù)據(jù),獲取地理位置信息,用戶通過(guò)相應(yīng)的鏈接查看數(shù)據(jù);本項(xiàng)目還有到AppWidget,AppWidget是實(shí)現(xiàn)特定功能的一個(gè)視圖部件,是圖形背后的一段程序,可以嵌入到其他應(yīng)用程序中或手機(jī)人機(jī)交互的界面上,可以接受定期更新,系統(tǒng)體系結(jié)構(gòu)如圖4-1所示:AppWidget啟動(dòng)用戶界面App Widget啟動(dòng)服務(wù)后臺(tái)服務(wù)設(shè)置相關(guān)信息地理坐標(biāo)Startservice(new Intent) 啟動(dòng)服務(wù)Google 地圖服務(wù)數(shù)據(jù)獲取數(shù)據(jù)庫(kù)獲取模塊SQL 圖4-1

36、系統(tǒng)體系結(jié)構(gòu)從系統(tǒng)結(jié)構(gòu)中圖中不難看出,后臺(tái)服務(wù)是整個(gè)系統(tǒng)的核心主要是“獲取模塊”,負(fù)責(zé)從Goole中獲取地理坐標(biāo)的經(jīng)緯度。后臺(tái)服務(wù)是在啟動(dòng)程序時(shí)就有AppWidgetProvider啟動(dòng)服務(wù),也可由用戶界面通過(guò)StartService()進(jìn)行啟動(dòng),啟動(dòng)后就一直保持運(yùn)行狀態(tài),通過(guò)簡(jiǎn)歷數(shù)據(jù)庫(kù)表把數(shù)據(jù)存入到數(shù)據(jù)庫(kù)中,用來(lái)提供數(shù)據(jù)的查詢和瀏覽,有效的保存了數(shù)據(jù)。4.2 功能模塊設(shè)計(jì)如果獲取不到地理位置,采用拍攝圖片方式進(jìn)行上傳瀏覽數(shù)據(jù)提交服務(wù)器百度轉(zhuǎn)碼獲取經(jīng)緯度用戶登錄戶外站點(diǎn)考勤圖4-2功能模塊設(shè)計(jì)如圖4-2所示,模塊結(jié)構(gòu)中本項(xiàng)目采用Google自帶的API獲取地理位置,然后通過(guò)百度轉(zhuǎn)碼轉(zhuǎn)換為百度的

37、地理坐標(biāo),用戶通過(guò)手機(jī)按鈕提交到服務(wù)器。如果無(wú)法獲取到坐標(biāo)側(cè)會(huì)自動(dòng)跳轉(zhuǎn)到手機(jī)拍攝圖片界面,可以選擇啟動(dòng)手機(jī)攝像頭,然后把所拍攝的圖片提交到服務(wù)器10。通過(guò)以上分析,下面進(jìn)行簡(jiǎn)單的UI界面描述:(1)登錄界面功能描述:輸入用戶名和密碼,可以選擇保存用戶名,但需要連接到網(wǎng)絡(luò)和服務(wù)器。(2)獲取坐標(biāo)界面功能描述:當(dāng)點(diǎn)擊開(kāi)始工作按鈕時(shí),開(kāi)始獲取所在的地理坐標(biāo)位置,并顯示在當(dāng)前的頁(yè)面,顯示的數(shù)據(jù)時(shí)經(jīng)過(guò)百度轉(zhuǎn)碼轉(zhuǎn)換過(guò)的數(shù)據(jù)。在此頁(yè)面也可以查看歷史工作日志。(3)拍攝界面功能描述:當(dāng)用戶因?yàn)榫W(wǎng)絡(luò)或者其他問(wèn)題無(wú)法獲取到當(dāng)前坐標(biāo)時(shí),會(huì)跳轉(zhuǎn)此界面,啟動(dòng)手機(jī)自動(dòng)的攝像頭,點(diǎn)擊拍攝按鈕進(jìn)行拍攝,點(diǎn)擊提交系統(tǒng)會(huì)自動(dòng)把當(dāng)

38、前圖片提交到服務(wù)器。(4)歷史數(shù)據(jù)界面 用戶可以通過(guò)點(diǎn)擊界面的歷史數(shù)據(jù)按鈕,來(lái)瀏覽歷史數(shù)據(jù),本數(shù)據(jù)是從數(shù)據(jù)庫(kù)中提取,用listview 顯示在頁(yè)面中,記錄了提交的地理位置信息和提交時(shí)間。5 系統(tǒng)編碼與實(shí)現(xiàn)項(xiàng)目開(kāi)發(fā)需求分析過(guò)后進(jìn)入最重要的設(shè)計(jì)與實(shí)現(xiàn)階段,根據(jù)需求分析確定本項(xiàng)目應(yīng)該具有的功能和性能要求。本章主要介紹了該項(xiàng)目的界面設(shè)計(jì)與實(shí)現(xiàn),功能的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn),以及提交到服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)。5.1 界面的設(shè)計(jì)與實(shí)現(xiàn)UI的本義是用戶界面,是英文User和Interface的縮寫(xiě)。從字面上看,UI由用戶與界面兩個(gè)部分組成,但實(shí)際上還包括用戶與界面之間的交互關(guān)系,所以可分為三個(gè)方向,分別是:用戶定位與研

39、究、交互設(shè)計(jì)、界面設(shè)計(jì)。本項(xiàng)目主要有三個(gè)界面:登錄界面,獲取坐標(biāo)界面和手機(jī)拍攝界面。5.1.1 登錄界面在該界面中主要涉及到了,Buttton、ImageView、TextView和布局文件,在本界面中使用的是相對(duì)布局。相關(guān)代碼如下:以上組件涉及到的部分知識(shí)點(diǎn):android:layout_width設(shè)置組件的寬度android:layout_height設(shè)置組件的高度android:id給組件定義一個(gè)id值,供后期使用android:background設(shè)置組件的背景顏色或背景圖片android:text設(shè)置組件的顯示文字android:textColor設(shè)置組件的顯示文字的顏色androi

40、d:layout_below組件在參考組件的下面android:alignTop同指定組件的頂平行,其余不在詳細(xì)描述。activity中通過(guò)函數(shù)setContentView(R.layout.main)應(yīng)用該布局文件。本界面包括一背景圖片,和三個(gè)控制按鈕,兩個(gè)輸入框,一個(gè)選擇框和一個(gè)背景圖片。效果圖如圖5-1所示:圖5-1 登錄界面5.1.2 獲取坐標(biāo)界面TextView控件可用來(lái)展示文本信息(包括HTML文本),可以手動(dòng)來(lái)設(shè)置可編輯或不可編輯。在代碼中通過(guò)new的方式創(chuàng)建,創(chuàng)建,設(shè)置文本,樣式后,通過(guò)setContentView方法,將空間設(shè)置到界面中。通過(guò)在main.xml中添加TextV

41、iew配置節(jié)來(lái)創(chuàng)建,設(shè)計(jì)基礎(chǔ)屬性,寬度、高度、顏色、字體大小等,需要注意的是設(shè)置字體大小的幾個(gè)單位(sp/dp/ps)之間的區(qū)別,幾個(gè)單位的解釋如下:dp也就是dip。這個(gè)和sp基本類(lèi)似。如果設(shè)置表示長(zhǎng)度、高度等屬性時(shí)可以使用dp或sp。但如果設(shè)置字體,需要使用sp。dp是與密度無(wú)關(guān),sp除了與密度無(wú)關(guān)外,還與scale無(wú)關(guān)。如果屏幕密度為160,這時(shí)dp和sp和px是一樣的。1dp=1sp=1px,但如果使用px作單位,如果屏幕大小不變(假設(shè)還是3.2寸),而屏幕密度變成了320。那么原來(lái)TextView的寬度設(shè)成160px,在密度為320的3.2寸屏幕里看要比在密度為160的3.2寸屏幕上

42、看短了一半。但如果設(shè)置成160dp或160sp的話。系統(tǒng)會(huì)自動(dòng)將width屬性值設(shè)置成320px的。也就是160 * 320 / 160。其中320 / 160可稱(chēng)為密度比例因子。也就是說(shuō),如果使用dp和sp,系統(tǒng)會(huì)根據(jù)屏幕密度的變化自動(dòng)進(jìn)行轉(zhuǎn)換。此界面的布局代碼如下: 運(yùn)行后如圖5-2所示:圖5-2 獲取界面5.1.3 拍攝圖片界面當(dāng)無(wú)法獲取到所在的地理坐標(biāo)時(shí),會(huì)跳轉(zhuǎn)到下一界面,提示手機(jī)拍攝并啟用手機(jī)自帶的攝像頭,拍攝完畢后,點(diǎn)擊提交按鈕則會(huì)把圖片提交到服務(wù)器。5.2 功能的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)在本小節(jié)中主要是代碼實(shí)現(xiàn)功能模塊:本項(xiàng)目的主要功能有:獲取地理坐標(biāo),并顯示百度轉(zhuǎn)碼轉(zhuǎn)換后的坐標(biāo),提交到服

43、務(wù)器和手機(jī)拍攝照片并保存到本地,然后提交到服務(wù)器。5.2.1 主功能界面描述(1)顯示坐標(biāo)頁(yè)面:登錄后會(huì)進(jìn)入到此界面,點(diǎn)擊開(kāi)始工作按鈕便會(huì)自動(dòng)獲取所在的位置信息,獲取完成后會(huì)提示是否提交。(2)顯示歷史數(shù)據(jù):在坐標(biāo)頁(yè)面點(diǎn)擊歷史日志按鈕,便會(huì)跳轉(zhuǎn)到歷史數(shù)據(jù)界面,會(huì)顯示獲取的歷史數(shù)據(jù),包括經(jīng)度和緯度以及獲取坐標(biāo)的時(shí)間。(3)拍攝照片當(dāng)無(wú)法獲取到坐標(biāo)時(shí),會(huì)進(jìn)入到此界面,啟動(dòng)手機(jī)攝像頭拍攝圖片并提交到服務(wù)器11。該部分的實(shí)現(xiàn)代碼如下:button1.setOnClickListener(new OnClickListener() Override public void onClick(View v) if(button1.getText().toString().equals(開(kāi)始工作) if(isButton)return; Thr

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論