基于android系統(tǒng)的手機防盜畢業(yè)論文_第1頁
已閱讀1頁,還剩101頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  摘要</b></p><p>  近年來,智能手機的功能日趨強大,移動終端應用程序層出不窮。由于現(xiàn)在人們的工作繁忙,手機的丟失似乎也成為常有的事。與之帶來最讓人煩心的是私人數(shù)據(jù)的丟失及帶來的不安全隱患?;谝陨显?,本文設計了一款手機防盜追蹤軟件。本軟件利用 Android系統(tǒng)的廣播機制,當手機用戶開啟防盜追蹤功能后,本程序將后臺監(jiān)聽手機開機啟動、信號狀態(tài)、短信

2、收發(fā)以及位置的改變,通過監(jiān)聽手機用戶 SIM 卡的 IMSI碼的改變來判斷手機安全狀態(tài),監(jiān)聽并截獲安全短信內(nèi)容,實現(xiàn)非法用戶的手機號碼向合法用戶預先設置的安全號碼發(fā)送特殊信息的功能,告知用戶當前手機狀態(tài)和位置信息,并可通過安全短信控制被盜手機鎖屏、銷毀隱私數(shù)據(jù)、發(fā)報警音等功能。最后將設計完成的軟件進行測試,其所有功能都完美實現(xiàn),真正起到了手機防盜追蹤的作用。</p><p>  關鍵詞:Android系統(tǒng) 手機

3、防盜 廣播機制 監(jiān)聽器</p><p><b>  ABSTRACT</b></p><p>  In recent years, the intelligent mobile phone function is powerful, the mobile terminal application emerge in an endless stream. Becau

4、se now people's busy work, the lost mobile phone also seems to be a common thing. And bring the most disturbing is a private data loss and insecurity hidden trouble. Based on the above reasons, this paper introduces

5、the design of a mobile phone anti-theft tracking software. This software uses Android system broadcast mechanism, when the mobile phone users to open </p><p>  Keywords: Android system DroidRing Broadcast

6、ing mechanism Listener</p><p><b>  目錄</b></p><p><b>  1緒論1</b></p><p>  1.1應用開發(fā)研究背景與意義1</p><p>  1.2國內(nèi)外研究現(xiàn)狀2</p><p>  1.2.1

7、國內(nèi)研究狀況2</p><p>  1.2.2國外研究狀況2</p><p>  1.3開發(fā)研究內(nèi)容3</p><p>  2手機防盜應用開發(fā)的基礎4</p><p>  2.1Java基礎4</p><p>  2.2Android基礎4</p><p>  3手機防盜

8、應用方案的設計5</p><p>  3.1UI設計5</p><p>  3.1.1UI窗口層6</p><p>  3.1.2UI主層8</p><p>  3.1.3UI功能體驗層8</p><p>  3.1.4UI指令查看層9</p><p>  3.1.5UI

9、信息設置層10</p><p>  3.2Function設計11</p><p>  3.2.1應用初始化11</p><p>  3.2.2功能選擇11</p><p>  3.2.3功能體驗12</p><p>  3.2.4功能查看12</p><p>  3.2.

10、5功能設置12</p><p>  3.3Service設計12</p><p>  3.3.1數(shù)據(jù)庫存儲服務12</p><p>  3.3.2監(jiān)聽按鈕事件服務13</p><p>  3.3.3開機啟動和短信廣播服務13</p><p>  3.3.4GPS服務14</p>&

11、lt;p>  3.3.5私人數(shù)據(jù)的管理14</p><p>  4手機防盜應用方案的實施15</p><p>  4.1UI的實現(xiàn)15</p><p>  4.1.1Activity15</p><p>  4.1.2ListActivity20</p><p>  4.1.3Prefere

12、nceActivity24</p><p>  4.1.4Dialog26</p><p>  4.2由Sever支持的Function實現(xiàn)27</p><p>  4.2.1廣播機制服務27</p><p>  4.2.2換卡短信通知30</p><p>  4.2.3定位手機31</p&

13、gt;<p>  4.2.4數(shù)據(jù)銷毀32</p><p>  4.2.5鎖定手機34</p><p>  4.2.6發(fā)報警音35</p><p>  4.2.7數(shù)據(jù)庫存儲應用36</p><p>  5手機防盜應用測試37</p><p>  5.1防盜應用初始化37</p&

14、gt;<p>  5.2手機定位功能測試37</p><p>  5.3換卡短信通知功能測試38</p><p>  5.4鎖屏功能測試39</p><p>  5.5銷毀數(shù)據(jù)40</p><p>  5.6發(fā)報警音40</p><p>  6手機防盜應用說明41</p>

15、;<p><b>  結論42</b></p><p><b>  致謝43</b></p><p><b>  參考文獻44</b></p><p><b>  附錄一45</b></p><p><b>  附錄二46

16、</b></p><p><b>  附錄三53</b></p><p><b>  緒論</b></p><p>  應用開發(fā)研究背景與意義</p><p>  隨著 3G 技術的不斷發(fā)展,手機移動應用開發(fā)成為目前熱門的技術之一。種類繁多的手機應用以及先進的硬件,使得手機已經(jīng)不完全是

17、用來通話的工具了,它巧妙的融合了PDA(Personal Digital Assistant,掌上電腦)、數(shù)碼相機以及MP3等諸多功能,一機多能且不斷向專業(yè)化邁進是現(xiàn)在手機的發(fā)展方向[1]。手機功能的增多以及不斷完善,自然價格也高低不一,好的手機可以賣到筆記本的價格。</p><p>  關于手機我們能想到很多人們擔心的話題。而最為愁人的就是現(xiàn)在的手機大都兼容各種電話卡,一旦丟失,就會機卡兩空。在我們忙碌的工作生

18、活中,似乎手機丟失已經(jīng)成為了一種自然的事情。其實不論你的手機值不值錢,丟東西的事情本身就會讓人頭疼。那么該怎樣制服盜機者,在我們提高自身防范意識的同時,適當?shù)臑槭謾C增加些防盜功能也是應該的。</p><p>  在眾多手機操作系統(tǒng)中,Android手機操作系統(tǒng)由于他的完全開放性使得其應用人群獨占鰲頭。</p><p>  圖1.1 Android系統(tǒng)構架</p><p&

19、gt;  Android(智能機器人)是 Google 開發(fā)的基于 Linux 平臺的開源手機操作系統(tǒng),該平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成,其系統(tǒng)構架如圖1.1所示,被譽為第一個完整、開發(fā)而免費的移動平臺。Google 提供在線文檔、工具、論壇和軟件開發(fā)工具包等資源,以便開發(fā)者在 Android 平臺上開發(fā)應用程序。并且眾多手機制造商,如三星、摩托羅拉、HTC、LG和小米等,還有許多半導體公司,如英特爾、德州儀器、NVID

20、IA 和高通等,參與 Android 手機設計。由此可見,Android發(fā)展前景不容小覷,已成為目前主流的手機操作系統(tǒng)之一。Android 手機設備運行在 Linux 操作系統(tǒng)下,這使得其上運行的 Android 應用程序具有很強的安全性。每一個 Android 應用程序均運行在不同的進程中,每個進程都對應一個 Dalvik 虛擬機的實例?;?Java 虛擬機,Dalvik 為移動設備進行了優(yōu)化設計。Dalvik 虛擬機具有較小的內(nèi)存

21、占用,而且多個 Dalvik 虛擬機的實例在手機設備中可以并發(fā)運行。Android 應用程序為托管代碼,所以,由應用程序而導致系統(tǒng)</p><p>  綜觀Android手機系統(tǒng),我們不難發(fā)現(xiàn),應用本系統(tǒng)開發(fā)手機的生產(chǎn)廠商多,用戶基數(shù)大,安全性高,并受到眾多大牌公司支持,基于以上優(yōu)越性,在Android系統(tǒng)上開發(fā)本手機防盜應用具有重要的現(xiàn)實意義。</p><p><b>  國內(nèi)

22、外研究現(xiàn)狀</b></p><p><b>  國內(nèi)研究狀況</b></p><p>  毋庸置疑手機防盜應用肯定歸屬于手機安全類軟件,對于安全軟件的開發(fā)與研究又是殺毒軟件公司首要考慮的功能之一,所以國內(nèi)的很多殺毒軟件公司在自己的產(chǎn)品中都涉及了防盜功能。例如金山手機衛(wèi)士、360手機衛(wèi)士、QQ手機管家等保護手機系統(tǒng)安全類軟件中具有防盜功能。</p>

23、;<p><b>  圖 1.1手機防盜</b></p><p><b>  國外研究狀況</b></p><p>  英國一家手機服務公司宣布推出一整套手機防盜軟件的服務,使用該服務的用戶在手機被盜后不僅可及時轉移手機信息,手機還能發(fā)出刺耳鳴聲,讓竊賊根本無法使用所盜手機。當用戶在手機中安裝這款軟件后,每月只需支付10英鎊(約合1

24、8美元)即可享受防盜服務。一旦手機被盜,用戶可立即致電公司。公司隨即向被盜手機發(fā)送指令,將里面存儲的信息全部轉移至安全服務器,隨后鎖定手機功能并使手機發(fā)出刺耳的鳴聲。 </p><p>  該公司介紹說,防盜程序啟動后,竊賊即便更換SIM卡也無法解除鎖定。此外,只要不取出電池,鳴聲就不會停止。用戶購買新手機后,還可申請將原來手機中的全部信息轉移至新手機內(nèi)。據(jù)倫敦市警察局統(tǒng)計,該市每月約有1萬部手機被盜。警方希望這

25、一手機防盜軟件能改善這一局面[3]。</p><p>  美國的蘋果公司,在其官網(wǎng)上向所有用戶提供了一項云端技術服務,只要蘋果手機或者蘋果的其他移動設備,都可以享受到手機衛(wèi)星定位功能。具體做法是:首先,在拿到蘋果后,你要先申請屬于你的Apple ID,登錄蘋果商店或者在Mobile Me上注冊,這個應用就可以實時定位你的iPhone的位置。</p><p>  圖 1.

26、2 蘋果手機防盜</p><p><b>  開發(fā)研究內(nèi)容</b></p><p>  從上面的應用我們可以看出,無論是國內(nèi)還是國外,只要是致力于防盜功能的軟件,其最核心功能都用到了GPS、鎖屏、媒體播放等。因此,綜合以上各軟件優(yōu)點,新型的手機防盜應用軟件應具有GPS定位、被盜時鎖屏、通過短信控制以最大音量發(fā)報警音、遠程銷毀隱私數(shù)據(jù)以及偷拍盜竊者長相等功能。同時,防盜

27、應用軟件也應充分利用操作系統(tǒng)固有的資源。</p><p>  因此,本課題的任務是設計一款基于 Android 平臺開發(fā)的一款手機防盜軟件。通過Android系統(tǒng)中的廣播機制后臺監(jiān)聽手機的各種狀態(tài),根據(jù)狀態(tài)的改變來判斷手機是否安全。一旦手機丟失,我們便可通過向失竊手機發(fā)送指令短信的方式,應用Android系統(tǒng)的GPS(Global Positioning System,全球定位系統(tǒng))、SMS(Short Mess

28、aging Service,短信服務)、Activity(用戶界面)、BroadcastReceiver(廣播機制)、Intent(請求)、Service(服務)以及Content providers(訪問數(shù)據(jù)庫)等技術控制手機并獲得手機具體位置,旨在為丟失手機用戶找回手機提供了重要依據(jù)。</p><p>  手機防盜應用開發(fā)的基礎</p><p><b>  Java基礎<

29、;/b></p><p>  Java由Sun(Stanford University Network)公司于1995年5月為增強互聯(lián)網(wǎng)的交互性而設計。Java語言最早的名字為C++--,從名字上我們可以看出,Java語言的原型為C語言,后經(jīng)大量優(yōu)化在C基礎上增增減減,最終設計出這款現(xiàn)在企業(yè)級開發(fā)的第一語言[4]。Java語言具有極強的跨平臺能力,多語言的支持,占據(jù)著互聯(lián)網(wǎng)開發(fā)語言的首位。</p>

30、;<p>  基于Android系統(tǒng)的手機應用全部應用Java語言編寫完成。所以,想在Android系統(tǒng)上做出一個好的應用來不僅要會Java語言,而且還要運用熟練。對此,我通過觀看Mars老師的Java4Android視頻和對Java相關書籍的精讀與練習,強化了自己對Java語言的掌握,使我對Java的運用能力有了很大的提高,并為編寫與設計Android應用奠定了良好地基礎。</p><p><

31、;b>  Android基礎</b></p><p>  知己知彼者百戰(zhàn)百勝。想在Android系統(tǒng)上做開發(fā),就一定要了解Android系統(tǒng),知道他的由來和內(nèi)部構造。</p><p>  Android操作系統(tǒng)最初主要支持手機,2005年Google收購了剛剛成立22個月的Android公司,也正是有了在Google這樣巨頭公司下發(fā)展的機會才使得Android系統(tǒng)迅猛發(fā)展

32、。2007年11月5日,以Google為首的34家公司宣布成立OHA(Open Handset Alliance,開放手機聯(lián)盟)。2008年9月22日,美國運營商T-Mobile USA在紐約正式發(fā)布第一款Google手機--T-Mobile G1。Android平臺的主題思想和Google是一樣的,就是隨時隨地為每個人提供信息[5]。</p><p>  最早的Android版本為Android 1.0(發(fā)條機

33、器人),自Android系統(tǒng)發(fā)布第一版本到現(xiàn)在已經(jīng)更新多次。Android 1.1 Beta(阿童木) 2008年9月發(fā)布的Android第一版,后來由于涉及到版權問題,Goolge將其命名規(guī)則變更為用甜點作為它們系統(tǒng)版本的代號的命名方法。其各版本logo如圖2.1所示。</p><p>  Android 1.5 Cupcake(紙杯蛋糕)</p><p>  Android 1.6 D

34、onut(甜甜圈)</p><p>  Android 2.0/2.0.1/2.1 Eclair(松餅)</p><p>  Android 2.2/2.2.1 Froyo(凍酸奶)</p><p>  Android 2.3 Gingerbread(姜餅)</p><p>  Android 3.0 Honeycomb(蜂巢)</p&

35、gt;<p>  Android 3.1 Honeycomb(蜂巢)</p><p>  Android 3.2 Honeycomb(蜂巢)</p><p>  Android 4.0 Ice Cream Sandwich(冰激凌三明治)</p><p>  Android 5.0 Jelly Bean(果凍豆)</p><p>

36、;  手機防盜應用方案的設計</p><p>  在電子領域,要想擁有很好的市場前景,就必須應用最先進的設計技術、最成熟的設計理念以及最合理的設計方法才能使得產(chǎn)品得以發(fā)展。于是我選擇了目前市場應用最為廣泛的金山手機衛(wèi)士、360手機衛(wèi)士和QQ手機管家其中的手機防盜部分作為參考。學習并對比這3家在此功能上的不同。分別在UI(User Interface,用戶界面)、Function(功能)和Service上做了比較。

37、</p><p>  表格 1 手機防盜UI、Function和Service對比</p><p>  從表格1中我們可以很清楚的看到,在UI方面360更為注重,以多圖少字的方式展現(xiàn)功能,使用戶更加喜歡,也方便了用戶對功能的理解。不過從Function上來看,金山手機防盜的設計就要優(yōu)于另外兩家,在所有功能的基礎上還加進了一項防盜拍照,這是僅有4項功能的QQ所沒能想到的安全設計。</p

38、><p>  綜合以上軟件優(yōu)點便是此軟件將要實現(xiàn)并達到的目標。因此我將結合360的UI、金山的Function和Service做出一款即看上去漂亮而且功能也強大的手機防盜軟件。</p><p><b>  UI設計</b></p><p>  UI設計是指對軟件的人機交互、操作邏輯、界面美觀的整體設計。好的UI設計不僅是讓軟件變得有個性有品味,還要

39、讓軟件的操作變得舒適、簡單、自由,充分體現(xiàn)軟件的定位和特點。如圖3.1就是一副很美觀的UI。</p><p><b>  圖 3.1 UI</b></p><p>  軟件設計可分為兩個部分:編碼設計與UI設計。編碼設計大家都很熟悉,但是UI設計還是一個很陌生的詞,即使一些專門從事網(wǎng)站與多媒體設計的人也不完全理解UI的意思。UI的本意是用戶界面,是英文User和 In

40、terface的縮寫。從字面上看是用戶與界面2個組成部分,但實際上還包括用戶與界面之間的交互關系。</p><p>  在飛速發(fā)展的電子產(chǎn)品中,界面設計工作一點點的被重視起來。做界面設計的“美工”也隨之被稱之為“UI設計師”或“UI工程師”。其實軟件界面設計就像工業(yè)產(chǎn)品中的工業(yè)造型設計一樣,是產(chǎn)品的重要賣點。一個電子產(chǎn)品擁有美觀的界面會給人帶來舒適的視覺享受,拉近人與商品的距離,為商家創(chuàng)造賣點。界面設計不是單純的

41、美術繪畫,他需要定位使用者、使用環(huán)境、使用方式并且為最終用戶而設計,是建立在科學性之上的藝術設計[6]。</p><p>  綜合上述UI設計特點,加上方便實用的設計特點,我將本手機防盜應用的UI分為了5層,他們由UI窗口層、UI主層、UI功能體驗層、UI功能查看層和UI功能設置層組成。其層次流程如圖3.2所示。</p><p>  圖 3.2 UI總流程圖</p><

42、p><b>  UI窗口層</b></p><p>  UI窗口層分為兩個界面,一個是初次開啟應用時進入的設置初始化界面,另一個則是用戶在非第一次開啟應用時彈出的用戶身份驗證窗口。</p><p>  圖 3.3 初始化設置</p><p>  當用戶第一次開啟應用時,展現(xiàn)在用戶眼前的是一個設置初始化界面,如圖3.3所示。用戶可按照相應提

43、示完成放到設置,其中包括設置防盜安全密碼和設置安全電話號碼。防盜安全密碼將用于驗證應用本軟件用戶的身份,在非第一次開啟此防盜軟件時將需要用戶輸入防盜安全密碼。另外,設置好的防盜安全密碼將會編進防盜指令,用于控制手機實現(xiàn)相應的操作。安全手機號的設置非常重要,設置成功后,此號碼將被認為是唯一可信賴的手機號碼,當手機被盜后,防盜軟件將會按照指令向安全號碼手機發(fā)送手機狀態(tài)。</p><p>  圖 3.4 驗證窗口<

44、;/p><p>  圖3.4展現(xiàn)的是用戶在非首次開啟應用時彈出的驗證用戶信息窗口。此通行密碼為用戶設置的防盜安全密碼,通過此方式保證了用戶設置信息的安全性。</p><p>  UI窗口層為本應用軟件的最頂層,此層的UI設計好壞決定了用戶對本軟件的第一印象,所以要想得到用戶的肯定,這層的設計一定要做好。為此,在選擇文字的字體、顏色、大小以及擺放位置做了無數(shù)次的調(diào)整,努力達到最好、最舒適。除了這

45、些我還在輸入文本框里加進了提示信息如:輸入密碼框里的“6~12位數(shù)字或字母”等,在方便用戶應用的同時也美化了UI。</p><p><b>  UI主層</b></p><p>  UI主層是個選擇界面如圖3.5,本層為用戶提供3種主要操作,分別為防盜功能體驗、防盜指令查看、防盜信息設置。</p><p>  圖 3.5 UI主層</p&

46、gt;<p>  在本層UI的上面是一個宇宙圖片,寓意著安裝本應用后,即使你的手機被帶到了宇宙我們也能找到它,當然這有些夸張了,不過我們還是要對此軟件充滿信任的。</p><p>  除了這張宇宙圖片我還在每個選項前后都加附上了相應功能的logo,學習360的多圖設計,用視覺告訴用戶本條選項的功能。</p><p>  為達到UI布局整齊的效果,我采用列表式布局,將選項按照用

47、戶需求量進行排布,這樣的布局可是UI實現(xiàn)整齊、清晰、功能突出等效果,屬于理想的UI設計。</p><p><b>  UI功能體驗層</b></p><p>  UI功能體驗層如圖3.6所示,此UI界面同樣繼承優(yōu)良設計布局方案將本應用所有功能統(tǒng)一以列表形式列出,最前端圖標代表著此條選項所要實現(xiàn)的功能,然后每個選項的功能說明以大字功能名加小子簡要說明的形式整齊的展現(xiàn)在界

48、面上,讓用戶對選項功能一目了然。</p><p>  圖 3.6 UI功能體驗層</p><p>  當用戶點擊進入UI功能體驗層的每個選項后,就會看到每個功能實現(xiàn)的具體說明,而且在每個可以單機實驗的功能里都加進了功能體驗按鈕,可以讓用戶體驗本功能的真實效果。其效果圖見附錄一。 </p><p><b>  UI指令查看層</b></p&

49、gt;<p>  在UI指令查看層,總結羅列了開啟每個防盜功能的防盜指令,用戶可以在這里方便快捷的得到所需防盜指令,如圖3.7所示。</p><p>  圖 3.7 UI指令查看層</p><p><b>  UI信息設置層</b></p><p>  UI的設置層是UI非常重要的一個視圖層,此層要以最方便,最簡約,最快捷為核心排

50、版設計,而且要盡量覆蓋本軟件的所有功能設置?;谝陨弦c,首先總結本防盜軟件的設置功能如表2。</p><p><b>  表格 2設置功能</b></p><p>  按照表格2中的功能需求,我在設置UI里建立了與之相應的5個控件,以方便用戶對軟件的應用控制。最終設計出圖3.8的效果來實現(xiàn)功能。</p><p>  圖 3.8 UI設置層&l

51、t;/p><p>  Function設計</p><p>  我們在UI的設計中了解到一款軟件擁有一個美觀的UI是多么重要,那我們該如何實現(xiàn)這種華麗的顯示呢?這就需要又一個很好的后臺設計既功能設計。</p><p><b>  應用初始化</b></p><p>  初始化界面是讓用戶設置信息用的,所以首先我要告訴用戶需要

52、設置的信息都有哪些,介紹完后還要在相應的位置給出用于填寫信息的控件。</p><p>  這里我們用Android中最常用的TextView和EditText兩個布局控件滿足需求。并且在EditText里加入hint屬性顯示相關提示信息。對于密碼的設置,我們都希望處于不可見狀態(tài)以保證我們個人信息的安全,我用password屬性來控制輸入時的顯示狀態(tài)。在整個UI的最下面我還放置了兩個按鈕,方便用戶的進一步應用和退出

53、,此功能將用Button控件實現(xiàn)。</p><p><b>  功能選擇</b></p><p>  功能選擇的UI主要分為兩部分,可以從上到下分為兩段,在布局控件中用LinearLayout實現(xiàn),并設置排版屬性為垂直布局。上半部為一個圖片,下面則需要一個List控件完成效果,整個UI的程序將用繼承ListActivity類來描述已達到選項羅列的效果[7]。</

54、p><p>  圖3.9為Android的文件管理。在Android中所有資源文件要統(tǒng)一管理并放到res文件夾中,并把每個資源都加上各自的ID,以方便調(diào)用。所有的調(diào)用ID則會放到gen文件夾下的R.java文件中進行統(tǒng)一遍歷,我們所要的資源便可從這里索取。例如我們的宇宙圖片。</p><p>  圖 3.9 文件管理</p><p><b>  功能體驗<

55、;/b></p><p>  功能體驗UI分為兩層呈現(xiàn)。外面一層同樣用一個繼承ListActivity的類來實現(xiàn),在list空間里排布好每個圖標和文字的位置,這里要用到ImageView控件添加圖片。內(nèi)層則是一個介紹體驗層,這層的總體排布用LinearLayout的垂直分布就可以完成。添加Button按鈕實現(xiàn)用戶體驗功能。</p><p><b>  功能查看</b&

56、gt;</p><p>  這個界面完全是文字的排布,同樣用ListActivity加以LinearLayout垂直型布局就可以完成。</p><p><b>  功能設置</b></p><p>  功能設置UI為用戶可操控界面,所以要使用繼承PreferenceActivity的類來完成相應的功能,此類是Android專門用來做UI設置界面

57、用的,所以這個類中方法的應用也相對方便,但其布局文件與眾不同,需要在res文件中新建個XML文件進行單獨管理。其布局空間類型主要分為3大類AppWidget Provider、PreferenceScreen和Searchable,其中最常用的是PreferenceScreen,在這里又包含CheckBoxPreference、EditTextRreference、ListPreference、Preference、Rreference

58、Category、PreferenceScreen和RingtonePreference7個控件[8]。我們的UI設置界面就用PreferenceScreen來完成。</p><p><b>  Service設計</b></p><p>  手機防盜應用軟件在實際應用過程中一定是常駐后臺的軟件,所以不管用戶是否打開軟件,只要是開啟了防盜功能,那此軟件就會一直在后臺運

59、行,出于這樣的考慮,我們就必須引進一個強大的后臺支持,那就是Service既后臺服務。</p><p><b>  數(shù)據(jù)庫存儲服務</b></p><p>  在Android系統(tǒng)中,用于保存數(shù)據(jù)有3種方式:SQLite、SharedPreferences和File。</p><p>  SQLite是一種嵌入式系統(tǒng)中很常見的數(shù)據(jù)庫,而且所有的

60、數(shù)據(jù)都儲存在一個文件中,便于遷移。SQLite有見解的SQL訪問界面、相當快的速度,而且僅占用相對其他數(shù)據(jù)庫少量的內(nèi)存空間。在Android平臺上,SQLite庫可以用來存儲應用程序中使用到的數(shù)據(jù),還可以通過定義Content Provider等方式,來讓其他應用程序也可以取用其中的數(shù)據(jù)[9]。</p><p>  SharedPreferences是以鍵值對來存儲應用程序的配置信息的一種方式,它只能存儲基本數(shù)據(jù)

61、類型。一個程序的配置文件僅可以在本應用程序中使用,或者說只能在同一個包內(nèi)使用,不能在不同的包之間使用。實際上sharedPreferences是采用了XML格式將數(shù)據(jù)存儲到設備中,在DDMS中的File Explorer中的/data/data//shares_prefs下。</p><p>  File是一種文件存儲方式也是一種較常用的方法,在Android中讀取/寫入文件的方法,與Java中實現(xiàn)I/O的程序是

62、完全一樣的,提供了openFileInput()和openFileOutput()方法來讀取設備上的文件。</p><p>  具體問題具體分心,根據(jù)我們的需要與要求,本程序最終選定用SharedPreferences來存儲我們的數(shù)據(jù)。我們將用戶設置的安全密碼、安全手機號、防盜功能開關狀態(tài)、SIM卡的IMSI碼等信息以鍵值對的形式存入其中進行保存。一個Value對應一個Key值,如圖3.10所示,Key值便是我們

63、所保存的數(shù)據(jù)信息,這樣的保存方式既快捷又準確。</p><p>  圖 3.10 數(shù)據(jù)庫存儲方式</p><p><b>  監(jiān)聽按鈕事件服務</b></p><p>  監(jiān)聽器是Android設計的一種監(jiān)聽模式,當用戶執(zhí)行了某些動作時,需要系統(tǒng)對這些動作做出相應的反應,那么這時就需要監(jiān)聽器來捕獲這些來自用戶的信息,將其傳遞給系統(tǒng)再做處理。&l

64、t;/p><p>  在我們的軟件中將會運用大量的監(jiān)聽器,其中包括監(jiān)聽用戶點擊按鈕事件、監(jiān)聽開機廣播事件、監(jiān)聽短信廣播事件等。</p><p>  監(jiān)聽按鈕事件,是將每個按鈕綁定上一個監(jiān)聽器,用Button.setOnClickListener()方法來實現(xiàn),當觸發(fā)相應的監(jiān)聽器后我們就可以執(zhí)行我們想要的操作了。</p><p>  開機啟動和短信廣播服務</p&g

65、t;<p>  防盜應用開啟后會在第一時間對手機的SIM卡進行檢查,判斷時候更換。那么這種監(jiān)聽開機需要另一項Android機制的支持來完成——廣播機制。</p><p>  在 Android 里面有各種各樣的廣播,比如電池的使用狀態(tài),電話的接收和短信的接收都會產(chǎn)生一個廣播。圖3.11就是一張廣播的運行機制原理圖。</p><p>  圖 3.11 Android廣播機制&l

66、t;/p><p>  各種廣播在Android 系統(tǒng)中運行,當系統(tǒng)/應用程序運行時便會向 Android 注冊各種廣播,Android 接收到廣播會便會判斷哪種廣播需要哪種事件,然后向不同需要事件的應用程序注冊事件,不同的廣播可能處理不同的事件也可能處理相同的廣播事件,這時就需要Android 系統(tǒng)為我們做篩選。</p><p>  本軟件就利用開機廣播和短信接收廣播來判斷手機狀態(tài)和控制手機。

67、</p><p><b>  GPS服務</b></p><p>  對于GPS我想大家現(xiàn)在都很了解,至少不會陌生,一般情況下每個裝載GPS的設備都會由3顆衛(wèi)星進行定位,在需要時可將設備所在的位置信息發(fā)送到GPS上,例如返回的經(jīng)緯度,有了這些位置信息我們便可進行需要的操作[10]。</p><p>  在本應用中將會運用Android手機的GP

68、S定位系統(tǒng),為我們獲取手機的當前位置,便于用戶找回丟失的手機</p><p><b>  私人數(shù)據(jù)的管理</b></p><p>  當用戶的手機丟失后恐怕最擔心的就是自己私人信息的外露,出于此考慮,本軟件將通過繼承IntentService的類,對用戶的通訊錄、媒體圖片進行備份并向安全手機發(fā)送,同時將原有數(shù)據(jù)刪除,以防止不法分子的非法企圖。</p>&

69、lt;p>  手機防盜應用方案的實施</p><p>  按照手機防盜應用技術的設計理念,我將從UI入手,在做完界面的基礎上組合、銜接并加入相應的功能,最后通過Service實現(xiàn)后臺監(jiān)聽、儲存、處理等功能。</p><p>  在實現(xiàn)這些功能之前我們需要先搭建Android開發(fā)環(huán)境,其具體操作流程見附表二。</p><p><b>  UI的實現(xiàn)&l

70、t;/b></p><p>  在Android系統(tǒng)中,UI的構建主要都由Activity類來完成。為了開發(fā)方便,Android又構造了多個繼承Activity類的子類。其中在我們的軟件里用到了ListActivity和PreferenceActivity兩個子類和Activity本身。</p><p><b>  Activity </b></p>

71、<p>  要使用Activity以及其子類首先要知道Activity的生命周期,只有知道其生命周期的順序才能控制好界面的顯示。圖4.1為Google官方給出的Activity生命周期流程圖。</p><p>  圖 4.1 Activity生命周期</p><p>  在本軟件中有8個UI直接通過繼承Activity類構成,他們的應用方法大同小異,我就拿其中最復雜的初始化界

72、面來介紹。</p><p>  初始化界面的整體設計流程圖如圖4.2所示。</p><p>  圖 4.2 初始化UI流程圖</p><p><b>  .java文件:</b></p><p>  首先新建一個繼承Activity的類First</p><p>  Public class Fi

73、rst extends Activity{}</p><p>  在此類里面對UI界面進行編輯</p><p><b>  以下為關鍵代碼:</b></p><p>  圖 4.3 layout布局控件示意圖</p><p>  layout.xml文件:</p><p>  為Activity提

74、供布局支持的layout文件是UI如何顯示的控制中心,這個文件里的控件屬性決定了控件的顯示位置,圖4.3是為First提供布局控件的layout的示意圖,其主要代碼如下:</p><p>  AndroidManifest.xml文件:</p><p>  Android中設立了一個統(tǒng)一管理文件,這個文件可以理解為Android的一個注冊表文件,在這個文件中,我們可以聲明我們自己定義的權限

75、。如果所用的組件需要權限但沒有在這個文件注冊,應用程序就會無法正常運行。任何一個Activity類都是需要注冊的,所以本應用的 AndroidManifest.xml主要代碼如下:</p><p>  ListActivity</p><p>  ListActivity 直接繼承于Activity,是手機基本應用中最常用的一類應用程序。ListActivity用來在屏幕中顯示一個列表,當

76、點擊其中的某一列時,可以觸發(fā)一些操作。我們通過設置一個onListItemClick函數(shù),來得到用戶正選擇了哪一列的信息,并做后續(xù)處理。使用了ListActivity類后,如果整個屏幕上只需顯示一個列表,我們甚至可以把setContentView一行注釋掉,不用定義列表的XML說明文件。因為ListActivity類已經(jīng)默認綁定了一個ListView(列表視圖)界面組件。圖4.4就是一個典型的ListView示意圖。</p>

77、<p>  圖 4.4 ListView示意圖</p><p>  在本軟件中,UI主層和UI功能體驗層的列表視圖就是通過直接繼承ListActivity這個類得到的。在繼承ListActivity的類中要想顯示列表內(nèi)容就必須要調(diào)用setListAdapter(listAdapter)方法,在這個方法中需要傳進一個listAdapter參數(shù),這個Adapter通常我們叫做適配器,我們要顯示出來的數(shù)據(jù)

78、就儲存在這個listAdapter當中。在list中的每一個數(shù)據(jù)都是一個HashMap。HashMap就是一種Map,在Map中數(shù)據(jù)都是以鍵值對的方式存在的,這樣,我們的數(shù)據(jù)最終在List中的存儲方式就是以鍵值對的形式存在的。我們只需要給Value對應的Key賦值就可以把我們要顯示的數(shù)據(jù)裝進List中了。下面以UI功能體驗層為例根據(jù)圖4.5的程序流程圖分析下代碼:</p><p>  圖 4.5 體驗功能UI流程

79、圖</p><p><b>  Java文件:</b></p><p>  圖 4.6 ListActivity中l(wèi)ayout框架</p><p>  layout.xml文件:</p><p>  圖4.6展示了在ListActivity中兩個layout的布局框架,以下為代碼分析:</p><p&

80、gt;  tiyan.xml文件:</p><p>  在tiyan.xml文件中只有一個ListView控件</p><p>  PreferenceActivity</p><p>  在Android中有一個Preference類,用于手機的屬性設置。因此當我們在界面上做設置的時候自然就會想到Activity+Preference的組合,前者用于界面的構造,后

81、者用于設置數(shù)據(jù)的存放。不過雖然做法沒錯,但是會比較繁瑣,因為每個設置選項都要建立與其對應的Preference。當然Android的設計者也考慮到了這點,在系統(tǒng)中為我們提供了一個專門用于開發(fā)界面設置的類PreferenceActivity,這個類完美結合了Activity與Preference,很大程度的方便了我們的開發(fā),因此我們的UI功能設置界面就是通過繼承此類的類來實現(xiàn)。</p><p>  繼承Prefer

82、enceActivity的UI設置界面的java文件無需過多的編程代碼,因為在PreferenceActivity上做的任何設置,系統(tǒng)都會自動以鍵值對的方式儲存到數(shù)據(jù)庫里,當我們需要這些數(shù)據(jù)的時候,便可以直接從數(shù)據(jù)庫里調(diào)用。所以我們只需要在布局文件中按需求添加控件就可以了。</p><p>  PreferenceActivity的布局文件有些特殊,需要在res文件夾下新建一個xml文件夾用于單獨存放此類控件和布

83、局屬性,如圖4.7所示。</p><p>  圖 4.7 Preference的布局文件</p><p>  其shezhi.xml文件構架如圖4.8所示。</p><p>  圖 4.8 shezhi.xml文件構架</p><p>  控件屬性在本軟件中的應用如圖4.9所示。</p><p>  圖 4.9 she

84、zhi.xml文件屬性構架</p><p>  其代碼就是對屬性進行相應配置即可如android:password="true"等,這里就不做詳細介紹了,具體代碼請看附錄二。</p><p><b>  Dialog</b></p><p>  Dialog是android開發(fā)過程中最常用到的組件之一,它包括以下幾種類型:&

85、lt;/p><p>  警告對話框:Alertialog </p><p>  進度對話框:ProgressDialog </p><p>  日期選擇對話框:DatePickerDialog </p><p>  時間選擇對話框:TimePickerDialog </p><p>  自定義對話框:從Dialog繼承 &

86、lt;/p><p>  Dialog的創(chuàng)建方式有兩種:</p><p>  一是直接new一個Dialog對象,然后調(diào)用Dialog對象的show和dismiss方法來控制對話框的顯示和隱藏。</p><p>  二是在Activity的onCreateDialog(int id)方法中創(chuàng)建Dialog對象并返回,然后調(diào)用Activty的showDialog(int i

87、d)和dismissDialog(int id)來顯示和隱藏對話框。</p><p>  區(qū)別在于通過第二種方式創(chuàng)建的對話框會繼承Activity的屬性,比如獲得Activity的menu事件等。</p><p>  本軟件就采用第二種方法用于顯示彈出的對話框。其程序流程圖如圖4.10所示。</p><p>  圖 4.10 Dialog流程圖</p>

88、<p>  java文件關鍵代碼如下:</p><p>  經(jīng)過大量的調(diào)整、核對以及調(diào)試,我們的UI界面就這樣完成啦。到此為止把我們的軟件安裝到手機上就可以進行所有界面的切換了。</p><p>  由Sever支持的Function實現(xiàn)</p><p>  有了完整的UI,我們就可以在Function里實現(xiàn)這些UI對應的功能。對于任何一個軟件來說,無論

89、它有什么樣的UI,人們最終想要獲得的還是軟件的功能。所以,只有Function的完美實現(xiàn)才能體現(xiàn)出一個軟件的真正價值。</p><p><b>  廣播機制服務</b></p><p>  之前已經(jīng)介紹了Android系統(tǒng)中廣播機制的概念,這里就主要說明在本軟件中所用到的3種廣播——開機完成廣播、服務狀態(tài)廣播和短信接收廣播。</p><p> 

90、 開機完成廣播和服務狀態(tài)廣播用于監(jiān)測SIM卡的狀態(tài)改變。當用戶開機完成時,系統(tǒng)就會向接收開機完成廣播的應用軟件發(fā)送開機完成廣播,告訴他們已完成開機動作,此時軟件就可以在接收此指令后做出自己需要的動作,例如開機運行的軟件就都需要接收開機完成廣播。服務狀態(tài)廣播也是同樣的原理,當手機檢測到信號后就會由系統(tǒng)向所有應用發(fā)送服務狀態(tài)改變的廣播。</p><p>  短信接收廣播是當手機接收到短信時Android系統(tǒng)向應用程序

91、發(fā)送的一種廣播。手機系統(tǒng)中自帶的有些功能都要通過這種廣播來完成動作。例如手機收到短信時會產(chǎn)生音樂和振動等狀態(tài),這就是由短息模塊在接收到系統(tǒng)短信接收廣播后作出的動作。</p><p>  為了接收來自系統(tǒng)的廣播,Android為開發(fā)者提供了一個專門用于接收廣播的類既BroadcastReceiver類,本軟件就通過繼承此類實現(xiàn)接收所有廣播。在Android中光有接收的類還不行,要想讓系統(tǒng)把廣播發(fā)送到你的應用程序還必

92、須在AndroidManifest.xml文件中進行權限注冊,讓系統(tǒng)知道你需要接收廣播并給你開放ROOT允許你使用才行。下面代碼為本應用所有的權限注冊代碼:</p><p>  在本軟件中遠程控制手機就是通過此短信廣播接收機制實現(xiàn)的。當系統(tǒng)收到短信后會向需要接收廣播的應用發(fā)送短信廣播,本應用接收廣播后就可根據(jù)短信內(nèi)容做出相應的動作了。其服務程序流程圖如圖4.11所示。</p><p>  

93、圖 4.11 SMS服務流程圖</p><p>  短信接收后臺服務關鍵代碼解析如下:</p><p><b>  換卡短信通知</b></p><p>  本應用在開機完成后首先接收系統(tǒng)發(fā)出的開機完成廣播,這時軟件就會在后臺開始檢測SIM卡的IMSI碼信息,如果此信息與原保存的IMSI碼不一致,則說明手機處于非安全狀態(tài)。待手機檢測到信號,可執(zhí)

94、行移動服務的時候,服務狀態(tài)廣播就會向手機所有應用發(fā)送此廣播。當本應用接收到此廣播后就會立即向安全手機號發(fā)送SIM卡被更換的報告。其服務效果如圖4.12所示。</p><p>  圖 4.12 開機檢測SIM卡信息流程圖</p><p>  開機檢測SIM卡程序主要代碼分析如下:</p><p><b>  定位手機</b></p>

95、<p>  Android系統(tǒng)可通過手機的GPS模塊為我們提供當前手機的位置信息既經(jīng)緯度。然后我們再通過向服務器發(fā)送地址請求的方式得到手機的具體位置既街道等。其具體實現(xiàn)流程圖如圖4.13所示。</p><p>  圖 4.13 GPS定位流程圖</p><p>  GPS定位的主要代碼分析如下:</p><p>  有了提供具體位置的GPS服務類,我們只

96、需將信息通過SMS發(fā)送到指定安全號碼即可遠程獲得手機的具體位置了。</p><p><b>  數(shù)據(jù)銷毀</b></p><p>  為了避免隱私泄露,我們需要創(chuàng)建一個專門的類用于處理我們的用戶信息,此類應具有備份和刪除兩個功能。對于用戶的隱私文件我們把焦點主要放在聯(lián)系人和媒體上。因此,我們需要連接并提取聯(lián)系人和媒體的資料,并擁有刪除這些文件的權限方可達到目的。其實現(xiàn)

97、流程圖為圖4.14所示。</p><p>  圖 4.14 銷毀數(shù)據(jù)流程圖</p><p>  其主要代碼分析如下:</p><p><b>  鎖定手機</b></p><p>  當收到鎖定手機的指令后,要求手機立刻進入鎖屏狀態(tài),只能在屏幕上輸入安全密碼,密碼驗證通過后手機會恢復正常,要是密碼錯誤則會禁止用戶任何操作

98、,直到密碼輸入正確為止才能使用。其實現(xiàn)效果如圖4.15所示。</p><p>  圖 4.15 鎖屏流程圖</p><p>  根據(jù)程序流程,所以用戶一定要在安裝完本應用后實現(xiàn)一次鎖屏獲得ROOT權限后方可遠程控制鎖屏功能實現(xiàn)。以下為功能實現(xiàn)分析:</p><p>  DevicePolicyManager:顧名思義,這個類的作用是管理設備。通過這個類,我們可以實現(xiàn)

99、屏幕鎖定、亮度調(diào)節(jié)甚至是恢復出廠設置等功能。</p><p>  DeviceAdminReceiver:這個類的父類是BroadcastReceiver,通過其OnReceive方法可以根據(jù)不同的Action執(zhí)行不同的動作。</p><p>  這個程序的開發(fā)過程大致如下:</p><p>  要想使用DevicePolicyManager中的方法,首先要定義一個

100、Component。然后通過管理這個組件來啟動一個DeviceAdminReceiver。</p><p>  注冊一個廣播,用于監(jiān)聽權限的變化,代碼在AndroidMenifest.xml文件中:</p><p>  其中, android:resource="@xml/lock_screen_admin"所指向的內(nèi)容如下:</p><p> 

101、 實現(xiàn)一個繼承自DeviceAdminReceiver的類,實現(xiàn)必須的方法。這個類基本不用寫代碼,在此略過不表。</p><p>  這段代碼用來在第一次運行的時候激活component,只要激活一次之后,這個component就會一直是激活的。使用startActivityForResult()可以在onResult方法中調(diào)用lockNow()來鎖屏,當不是第一次運行的時候,直接調(diào)用lockNow()鎖屏。&l

102、t;/p><p><b>  發(fā)報警音</b></p><p>  發(fā)報警音的功能實現(xiàn)比較簡單,只需要在收到指令后在后臺開啟影音即可,主要代碼如下所示:</p><p><b>  數(shù)據(jù)庫存儲應用</b></p><p>  由于本程序正常工作時運行在后臺,所以要運用數(shù)據(jù)庫存放數(shù)據(jù)。這里數(shù)據(jù)庫的運用在每

103、個單元功能內(nèi)都必不可少,是否開啟防盜功能、是否是第一次啟動應用程序、安全手機號、安全密碼等數(shù)據(jù)都交由數(shù)據(jù)庫保存。以安全密碼為例在程序中運用代碼如下所示:</p><p><b>  手機防盜應用測試</b></p><p>  同時開啟兩臺模擬器,兩臺的電話號碼分別為15555215554和15555215556。在15555215554上安裝本應用軟件,另一臺用于發(fā)

104、送指令。</p><p><b>  防盜應用初始化</b></p><p>  安裝完成后初始化手機防盜應用,設置密碼為123456,安全手機號為15555215556。如圖5.1所示。</p><p>  圖 5.1 初始化設置</p><p>  在設置界面里開啟所有功能。</p><p>

105、  關閉此防盜應用,退回到手機主界面。</p><p><b>  手機定位功能測試</b></p><p>  用15555215556向15555215554發(fā)送指令:123456#dingwei,(因為是模擬器,所以需要預先在DDMS里給15555215554手機設定GPS地址。)等待片刻后即收到15555215554返回的地址信息如圖5.2所示。</p&

106、gt;<p>  圖 5.2 定位功能</p><p>  由于是模擬器演示,模擬器不支持中文,所以現(xiàn)在返回的是一些亂碼,到真機上就能看懂了。</p><p>  換卡短信通知功能測試</p><p>  接下來我們進入DDMS,在Devices窗口里選中emulator-5554,然后在File Explorer窗口中進入data/data/j.fa

107、ngdao文件夾,如圖5.3所示。</p><p>  圖 5.3 換卡通知date</p><p>  在shared_prefs文件夾中找到j.fangdao_preferences.xml文件并將其倒出。如圖5.4所示。</p><p>  圖 5.4 數(shù)據(jù)庫位置</p><p>  這個文件就是數(shù)據(jù)庫文件,將其SIM卡的IMSI號碼更

108、改,然后倒入源地址,這樣就能模擬換卡的狀態(tài)了。數(shù)據(jù)庫IMSI碼更換前后如圖5.5和圖5.6所示。</p><p>  圖 5.5 數(shù)據(jù)庫IMSI碼更換前</p><p>  圖 5.6 數(shù)據(jù)庫IMSI碼更換后</p><p>  關閉15555215554模擬器然后再打開,開機完成后15555215556收到更換SIM卡信息如圖所示。</p><

109、p><b>  鎖屏功能測試</b></p><p>  用15555215556手機響15555215554手機發(fā)送指令:123456#suoding</p><p>  收到指令的15555215554手機手機立即進入鎖屏狀態(tài)如圖5.7所示。</p><p>  圖 5.7 鎖屏功能</p><p><b

110、>  銷毀數(shù)據(jù)</b></p><p>  由于模擬器沒有SD卡,所以本功能只能在真機上測試,其測試方法同樣是靠短信指令實現(xiàn),測試后查看SD卡數(shù)據(jù)及手機通訊錄和媒體數(shù)據(jù)已全部清空。既銷毀數(shù)據(jù)功能實現(xiàn)。</p><p><b>  發(fā)報警音</b></p><p>  由于模擬器也無法播放媒體,所以也只能真機測試,由于本功能屬于

111、后臺運行,真機測試時,當收到指令立即以最大音量報警,既發(fā)報警音功能實現(xiàn)。</p><p><b>  手機防盜應用說明</b></p><p>  首先開啟防盜應用軟件進入初始化界面,在第一個文本框輸入安全密碼,第二個文本框輸入確認密碼,兩次密碼輸入必須符合提示要求,否則將不被軟件認可。在下面的文本框輸入安全手機號碼,此號碼建議輸入親友電話,在輸入非法號碼時,軟件將給

112、出相應提示并允許用戶重新輸入。</p><p>  手機SIM卡被更換:您向被盜手機發(fā)送了鎖定手機指令以上兩種情況,手機防盜將為您鎖定被盜手機,防止別人使用您的手機或查看隱私信息。</p><p>  手機定位:手機被盜后,可以用任意手機發(fā)送定位手機指令到被盜手機,獲取手機當前位置,幫您找回手機。定位手機成功后,將會發(fā)送短信告知您手機的位置。</p><p>  *

113、定位手機指令:dingwei#防盜密碼</p><p>  銷毀數(shù)據(jù):手機被盜后,用安全手機號發(fā)送銷毀指令到被盜手機,可徹底銷毀手機數(shù)據(jù),保護隱私不被泄露。銷毀的數(shù)據(jù)包括:通訊錄、短信、照片及SD卡的其他數(shù)據(jù)。特別提醒:銷毀數(shù)據(jù)指令必須使用安全手機號發(fā)送。</p><p>  *銷毀數(shù)據(jù)指令:xiaohui#防盜密碼</p><p>  鎖定手機:當手機收到鎖定手機

溫馨提示

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

評論

0/150

提交評論