畢業(yè)論文-基于Android的文件管理器設(shè)計(jì)與開發(fā)_第1頁
畢業(yè)論文-基于Android的文件管理器設(shè)計(jì)與開發(fā)_第2頁
畢業(yè)論文-基于Android的文件管理器設(shè)計(jì)與開發(fā)_第3頁
畢業(yè)論文-基于Android的文件管理器設(shè)計(jì)與開發(fā)_第4頁
畢業(yè)論文-基于Android的文件管理器設(shè)計(jì)與開發(fā)_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 太原理工大學(xué)畢業(yè)設(shè)計(jì)(論文)用紙.前言11選題經(jīng)過 在這個(gè)科技不斷發(fā)展經(jīng)濟(jì)越來越發(fā)達(dá)的時(shí)代,電子技術(shù)獲得了飛速的發(fā)展,移動(dòng)設(shè)備越來越普及,其硬件性能也得到了極大的提升。從最早的“大哥大”,到現(xiàn)在的商務(wù)PDA手機(jī)、智能手機(jī)、音樂手機(jī)等等,功能也從單純的打電話發(fā)展到了發(fā)短信、聽歌、上網(wǎng)等。手機(jī)和我們生活的聯(lián)系越來越緊密,手機(jī)的功能成為很多人們關(guān)注的焦點(diǎn)。與此同時(shí),產(chǎn)生的大量軟件文件的管理也備受人們的關(guān)注。人們希望手機(jī)的文件管理界面簡(jiǎn)潔,文件使用方便。目前國(guó)內(nèi)最常見的移動(dòng)開發(fā)平臺(tái)有Symbian,iPhone,Windows Phone以及當(dāng)下正在逐步興起的Android。其中的安卓操作系統(tǒng),由于

2、其免費(fèi)、開源和良好產(chǎn)業(yè)運(yùn)作策略而發(fā)展迅猛,為其在智能手機(jī)市場(chǎng)贏得更多的發(fā)展機(jī)遇。因此,根據(jù)Android市場(chǎng)和手機(jī)市場(chǎng),開發(fā)一個(gè)完善的多功能文件管理系統(tǒng)將會(huì)具有良好的市場(chǎng)和應(yīng)用前景。 普通的非智能手機(jī)已經(jīng)不能滿足人們?nèi)粘I畹男枨螅娫?,短信,上網(wǎng),成為了人們選擇手機(jī)必不可少的條件,但是現(xiàn)在已經(jīng)有更高需求的用戶選擇了更高需求的手機(jī)。那就是Android , 作為Android 手機(jī)用戶來說。使用應(yīng)用程序來完成日常生活需要,也是必不可少的了,手機(jī)的使用越來越多。隨著要處理的信息的增多,手機(jī)SDcard內(nèi)存越來越大,手機(jī)上存儲(chǔ)的文件也越來越多,但是對(duì)于一般的手機(jī)用戶來說,這些文件管理起來非常麻煩。

3、隨著基于Android的文件管理工具日益增多,對(duì)于處于發(fā)展初級(jí)階段的Android來說,一個(gè)很完善的文件管理工具還不是很多。能滿足用戶需求的工具更是少之又少。所以為了大多數(shù)用戶的需求,也方便開發(fā)者使用,選擇了這個(gè)基于Android的文件管理器的題目來進(jìn)行深入的研究。 本次設(shè)計(jì)運(yùn)用Android平臺(tái)手機(jī)作為研究開發(fā)對(duì)象,配合Java語言程序設(shè)計(jì)以及面向?qū)ο笏枷朐O(shè)計(jì)了一種手機(jī)文件瀏覽器。本設(shè)計(jì)完成后,能夠?qū)崿F(xiàn)以下功能:文件的瀏覽、文件的一些基本操作,一些遠(yuǎn)程模塊的調(diào)用、根據(jù)不同文件擴(kuò)展名來實(shí)現(xiàn)打開文件的功能。 在設(shè)計(jì)時(shí),按照設(shè)計(jì)的要求,從可靠性、經(jīng)濟(jì)性、安全性三個(gè)方面進(jìn)行考慮,通過設(shè)計(jì)方案的比較,

4、確定出來一套即經(jīng)濟(jì)又可行的方案。本次設(shè)計(jì)是對(duì)所學(xué)知識(shí)的綜合運(yùn)用,把理論知識(shí)和實(shí)踐相結(jié)合。在本次設(shè)計(jì)與檢驗(yàn)過程中遇到了許多實(shí)際問題,比如Android平臺(tái)手機(jī)及其運(yùn)行環(huán)境的選擇,不熟悉Eclipse軟件的使用方法,不熟悉開發(fā)技巧,可能會(huì)發(fā)生一些微小功能不能實(shí)現(xiàn)、軟件運(yùn)行不穩(wěn)定,如何設(shè)計(jì)軟件的最佳外觀效果等。所有的這些問題,我們都通過查閱資料,咨詢老師一一解決了,為設(shè)計(jì)的成功提供了保障。12 Android發(fā)展的國(guó)內(nèi)外動(dòng)態(tài)Google一開始并沒有創(chuàng)造Android。Android一開始屬于Android公司,這個(gè)公司是由Andy Rubin創(chuàng)立的,發(fā)展了一段時(shí)間后,Google才收購了它。而且Go

5、ogle公司的Android產(chǎn)品負(fù)責(zé)人也成了Andy Rubin。Android1.0手機(jī)系統(tǒng)是最老版本的,2007年11月由Google發(fā)布,一開始并沒有獲得廣大的支持。直到Android1.5手機(jī)操作系統(tǒng)版本的發(fā)布,Android才引起了廣大開發(fā)愛好者的關(guān)注。從這以后,版本更新就變得很快了,現(xiàn)在最新的版本已經(jīng)達(dá)到了Android4.4.21。現(xiàn)在Android手機(jī)系統(tǒng)的使用人數(shù)已經(jīng)遠(yuǎn)遠(yuǎn)超過了IOS,成了世界上使用最廣的一款手機(jī)操作系統(tǒng)Android開發(fā)平臺(tái)是一個(gè)完全開放式的手機(jī)平臺(tái),從國(guó)內(nèi)的環(huán)境看來,已經(jīng)有一大部分手機(jī)生產(chǎn)商家生產(chǎn)Android系統(tǒng)的手機(jī),他們不用掏錢便能使用,何樂不為?無

6、論是出名的手機(jī)生產(chǎn)商家也好,數(shù)量龐大的山寨手機(jī)生產(chǎn)商家也罷,單從減少開發(fā)費(fèi)用的角度想一想,Android平臺(tái)都是一個(gè)很好的選擇。在國(guó)外,Google 于2007年11月5日宣布推出基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)Android。Android憑借其良好的用戶體驗(yàn),低廉的成本和較高的開放性吸引著越來越多的終端廠商采用,因此基于Android系統(tǒng)的手機(jī)增量也成為業(yè)內(nèi)津津樂道的話題,根據(jù)Gartner等國(guó)際研究機(jī)構(gòu)的報(bào)告,Android在2010年第三季度全球智能手機(jī)市場(chǎng)的份額已達(dá)25.5%,而在去年同期Android市場(chǎng)份額只有3.5%。Android出現(xiàn)之前,智能手機(jī)OS市場(chǎng)中Symbian

7、和WM兩者占據(jù)大部分市場(chǎng)份額,但在移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,終端+應(yīng)用的趨勢(shì)逐漸成為主流的情況下,兩者的劣勢(shì)逐漸突出。Symbian由于發(fā)展多年,底層架構(gòu)較為陳舊,且對(duì)觸摸屏支持不佳,用戶體驗(yàn)交叉;再加上系統(tǒng)較為封閉,支持的應(yīng)用較少。WM系統(tǒng)同樣較為封閉,對(duì)終端廠商來講引入成本較為昂貴,娛樂性平平,多用于商務(wù)機(jī)型。2007年,蘋果iPhone上市后IOS憑借iPhone優(yōu)秀的用戶體驗(yàn)和App Store 在線商店模式獲得了巨大的成功,特別值得一提的是App Store 應(yīng)用開發(fā)分成模式刺激了開發(fā)者的不斷進(jìn)入,截止2010年8月,可用于IOS的應(yīng)用已超25萬,蘋果公司順應(yīng)了終端+應(yīng)用的智能手機(jī)發(fā)展趨

8、勢(shì),取得了快速的發(fā)展。但I(xiàn)OS也遇到了許多問題。IOS屬于半開放的OS,實(shí)現(xiàn)移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)鏈上的各環(huán)節(jié)的普贏是較為困難;其次iPhone定價(jià)較高,短期內(nèi)難以滿足中低端市場(chǎng)的需求,反觀Android系統(tǒng),擁有低廉的引入成本,良好的用戶體驗(yàn)開放性較強(qiáng)的特點(diǎn),加上Android Market 和眾多第三方應(yīng)用商店做后盾,在應(yīng)用資源也非常豐富;雖然Android目前存在安全性和版本混亂等問題,但由于其適應(yīng)了移動(dòng)互聯(lián)網(wǎng)的發(fā)展趨勢(shì),切合了移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)鏈各方的發(fā)展變化和需求,所以取得了迅猛的發(fā)展。 2014年3月10日早間消息,谷歌(1214.79, -4.82, -0.40%)Android、應(yīng)用和Ch

9、rome高級(jí)副總裁桑達(dá)爾皮采(Sundar Pichai)上周六在SXSW互動(dòng)大會(huì)上宣布,該公司很快就將推出針對(duì)可穿戴設(shè)備設(shè)計(jì)的Android SDK(軟件開發(fā)套件)。 谷歌將在SDK中向開發(fā)者闡述谷歌對(duì)該市場(chǎng)運(yùn)作方式的愿景。從拉斯維加斯國(guó)際消費(fèi)電子展(CES)到巴塞羅那移動(dòng)世界大會(huì)(MWC),可穿戴設(shè)備一直都是今年各大科技盛會(huì)的重要主題。 可穿戴設(shè)備中那些體積小巧、性能強(qiáng)大的芯片將給Android帶來巨大提升,他對(duì)這一前景頗感振奮。 這一新的SDK不僅是針對(duì)智能手表的。谷歌的職責(zé)是為開發(fā)者提供系統(tǒng)軟件和API(應(yīng)用編程接口),而具體針對(duì)哪種產(chǎn)品進(jìn)行開發(fā),則取決于開發(fā)者和合作伙伴。 在國(guó)內(nèi),電

10、信運(yùn)管商方面,通過產(chǎn)業(yè)鏈優(yōu)勢(shì)(銷售渠道優(yōu)勢(shì)、用戶優(yōu)勢(shì)、資源整合優(yōu)勢(shì))向操作系統(tǒng)領(lǐng)域進(jìn)行擴(kuò)張,達(dá)到控制更多產(chǎn)業(yè)鏈話語權(quán)的目的是現(xiàn)階段移動(dòng)互聯(lián)網(wǎng)發(fā)展的必然趨勢(shì)。相對(duì)于其他系統(tǒng) Android 的開放性和可定制性使得運(yùn)營(yíng)商從系統(tǒng)層面打造自己的用戶界面,并內(nèi)置增值服務(wù)更加容易。終端廠商方面,企業(yè)紛紛開始從單純出售手機(jī)向終端+服務(wù)/應(yīng)用的業(yè)務(wù)模式轉(zhuǎn)型,操作系統(tǒng)作為承載 應(yīng)用的平臺(tái),對(duì)于智能手機(jī)終端廠商的重要性不言而喻。在 Android 問世之前,智能手機(jī)大多使用 WM 平 臺(tái),不僅成本較高,而且系統(tǒng)封閉應(yīng)用體驗(yàn)較差。而 Android 系統(tǒng)除了低廉的成本和良好的用戶體驗(yàn)外,因采用了開源的平臺(tái),給予了終

11、端廠商和開發(fā)者更大的靈活性,開發(fā)者在程序的開發(fā)移植上更為方便且不需要考慮廠商端內(nèi)容審核等問題,終端廠商則可以按需深度定制系統(tǒng)開發(fā)本地化應(yīng)用環(huán)境,用戶可選擇的 應(yīng)用資源將會(huì)進(jìn)一步豐富。在國(guó)內(nèi)三星、摩托羅拉等手機(jī)廠商也延續(xù)著這一策略,紛紛推出 Android 新機(jī),創(chuàng)新工廠旗下的點(diǎn)心操作系統(tǒng)。未來這些企業(yè)可能會(huì)憑借 Android 的特性,定制針對(duì)細(xì)分應(yīng)用市場(chǎng)的 OS,推動(dòng) Android 的多樣化發(fā)展。而從用戶的角度,Android 良好發(fā)展前景主要源于優(yōu)秀的用戶體驗(yàn)和高性價(jià)比這兩個(gè)方面,中國(guó)手機(jī)用戶對(duì)價(jià)格較為敏感,中國(guó)移動(dòng)也在近期完成了 600 萬臺(tái) TD 終端的采購,其中大部分為1500 元

12、以下的 Android 手機(jī)終端;而 WM 和 IOS的機(jī)種目前市場(chǎng)價(jià)普遍在 2000 元以上, Android 如此的價(jià)格定位,對(duì)占大多數(shù)的中低端消費(fèi)者有很大吸引力。而根據(jù)各大手機(jī)賣場(chǎng)的回饋情況表示,55%的計(jì)劃換機(jī)的用戶都對(duì) Android 手機(jī)表示了較強(qiáng)的購買意愿。 當(dāng)然,經(jīng)歷了熱議和快速發(fā)展的 Android 同樣面臨著一些挑戰(zhàn)。 首先,目前 Android 由于過于開放,版本繁多造成發(fā)展分裂的狀況,引來了兼容性和安全方面的問題; 不同版本 Android 之間的硬件要求不同造成了 Android 及其衍生系統(tǒng)的應(yīng)用兼容性下降,在一定程度上影 響了用戶體驗(yàn)。而過于開放帶來許多安全問題,

13、例如最近的“Android SD 卡漏洞”爆發(fā)后一些基于 Android 的定制系統(tǒng)無法及時(shí)有效應(yīng)對(duì),而“安卓短信臥底”等病毒木馬也頻頻出現(xiàn),威脅 Android 用戶的安全。Android 在發(fā)展中雖遇到一些問題,而在多方面因素推動(dòng)下,總體趨勢(shì)仍舊看好。當(dāng)前,Android 在國(guó)內(nèi)的迅速發(fā)展才起步不久,預(yù)計(jì)隨著 HTC 進(jìn)入中國(guó)市場(chǎng),以及酷派、華為、中興等終端廠商的發(fā)力,Android 手機(jī)在中國(guó)市場(chǎng)的銷量在未來還將有較大發(fā)展空間。 隨著新技術(shù)的不斷開發(fā)與應(yīng)用,近年來Java技術(shù)發(fā)展十分迅速,一個(gè)以Java應(yīng)用為主的新技術(shù)革命浪潮正在蓬勃興起。而基于Andriod的軟件開發(fā)是一個(gè)前景很大的技

14、術(shù),然而市面上基于Android的文件瀏覽器雖然有不少種,各種的文件瀏覽器都能實(shí)現(xiàn)文件瀏覽的功能的應(yīng)用,但是由于版本繁多,開發(fā)思路不同,加之Google開放的源代碼,Android的SDK的版本不同,API不同使得各種文件瀏覽器的版本、實(shí)現(xiàn)的功能也進(jìn)而不同。所以基于Android的文件瀏覽器卡發(fā)顯得非常必要。13課題內(nèi)容以及意義131課題研究?jī)?nèi)容 目前Android平臺(tái)手機(jī)滲透到我們生活,20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,基于Android平臺(tái)手機(jī)的現(xiàn)代電子產(chǎn)品在我們生活的各個(gè)角落都能見到,有力地推動(dòng)了社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏

15、也越來越快?;贏ndroid平臺(tái)手機(jī)的發(fā)展趨勢(shì),本設(shè)計(jì)以Android平臺(tái)手機(jī)為核心制作了一個(gè)文件瀏覽器。本課題的主要任務(wù)是針對(duì)Android平臺(tái)的手機(jī)文件管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),基于Android系統(tǒng)應(yīng)用開發(fā)的特征和現(xiàn)實(shí)需求,設(shè)計(jì)出一款可以滿足手機(jī)使用者對(duì)文件進(jìn)行瀏覽、對(duì)文件進(jìn)行操作等一系列的需求,同時(shí)能夠很好的融入整套開發(fā)系統(tǒng)平臺(tái)的應(yīng)用軟件解決方案。本文對(duì)Android發(fā)展的國(guó)內(nèi)外現(xiàn)狀做了介紹,從實(shí)際的要求出發(fā),結(jié)合軟件使用功能等方面,通過具體的操縱流程和要實(shí)現(xiàn)的目標(biāo)的概述,制定了詳盡的Android手機(jī)文件管理系統(tǒng)的開發(fā)需求。在明確需求的前提下,通過對(duì)整個(gè)Android系統(tǒng)架構(gòu)和應(yīng)用開發(fā)

16、背景的分析,設(shè)計(jì)出Android文件管理器的整體解決方法。系統(tǒng)總體設(shè)計(jì)完成后,文件管理器的軟件架構(gòu)在Android系統(tǒng)中的層次也就明確了。本文對(duì)應(yīng)用開發(fā)中的重要技術(shù)也做了詳細(xì)的研究,結(jié)合Android基本編程技術(shù)等其它一些知識(shí),論述了文件管理應(yīng)用的具體實(shí)現(xiàn)過程。132課題研究意義 理論上,看似簡(jiǎn)單的文件管理器,由于采用Android平臺(tái)開發(fā),所以對(duì)界面的要求比較高。由于本文件管理器是基于手機(jī)或者平板等移動(dòng)終端,所以對(duì)開發(fā)的難度大大提高。因此,解決對(duì)于平臺(tái)的選擇,不僅重要,而且有助于本文件管理器的系統(tǒng)的真正推廣以及應(yīng)用,具有著重要的意義。在現(xiàn)實(shí)生活中,一方面,如前所述,文件管理器本質(zhì)上是一種日常

17、應(yīng)用,在大量現(xiàn)實(shí)應(yīng)用中,我們不難發(fā)現(xiàn),一個(gè)很好的文件管理器能夠讓用戶很方便的管理手機(jī)中的文件,甚至對(duì)手機(jī)中的應(yīng)用程序管理更加方便,我們通常,對(duì)于文件管理器要求不是很高,但是本文件管理器中。對(duì)于開發(fā)者和普通用戶來說區(qū)別很大,很容易讓Android用戶群中的兩類用戶產(chǎn)生濃厚的興趣。因此,我所做的文件管理器,在代碼完成方面會(huì)由一定難度,而已,在界面的簡(jiǎn)潔程度,以及推廣方面,也有一定難度。因?yàn)檫@一程序的必要,所以為不得不開發(fā)一款這樣的應(yīng)用程序。 1.4相關(guān)技術(shù)及開發(fā)工具簡(jiǎn)介Android:Android是基于Linux核心的軟體平臺(tái)和作業(yè)系統(tǒng),早期由Google,后由開放手機(jī)聯(lián)盟開發(fā)。 美國(guó)檢索公司G

18、oogle在2007年11月5日公布的手機(jī)系統(tǒng)平臺(tái)。該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。它采用了軟體堆層2(software stack,又名以軟體疊層)的架構(gòu),主要分為三部分。 低層以Linux核心工作為基礎(chǔ),只提供基本功能,其他的應(yīng)用軟體則由名公司自行開發(fā),以java作為編寫程式的一部分。 另外,為了推廣此技術(shù),Google和其它幾十個(gè)手機(jī)公司建立了開放手機(jī)聯(lián)盟(Open Handset Alliance)。 Eclipse: Eclipse 是一款相當(dāng)優(yōu)秀的開放源代碼的、基于 Java 的可擴(kuò)展的集成開發(fā)環(huán)境。就其本身而言

19、,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。Eclipse是一個(gè)開放源代碼的軟件開發(fā)項(xiàng)目,專注于為高度集成的工具開發(fā)提供一個(gè)全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺(tái)。要想開發(fā)Android還必須在Eclipse上安裝ADT插件和Android SDK。ADT是Android Development Tools的縮寫,是布置開發(fā)環(huán)境時(shí)為了方便在Ecplise里開發(fā)Android程序而裝的插件。Android SDK是用于Android開發(fā)的工具包,里面有各種版

20、本用于開發(fā)、檢測(cè)、調(diào)試的API文檔和開發(fā)工具。下載好Android SDK后,開始安裝,Android SDK采用了HYPERLINK /view/229611.htmJava語言,所以需要先安裝JDK 5.0及以上版本。直接下載jdk安裝文件安裝更為方便。Android SDK不用安裝,下載后,直接解壓即可, 將下載后的SDK的HYPERLINK /view/3090351.htm壓縮包解壓到適當(dāng)?shù)奈恢茫瓦@么簡(jiǎn)單;SDK安裝OK。其中需要注意的是使用Eclipse進(jìn)行HYPERLINK /view/1241829.htmAndroid應(yīng)用開發(fā)需要給HYPERLINK /subview/23

21、576/9374802.htmEclipse裝adt插件,這樣HYPERLINK /subview/23576/9374802.htmEclipse就可以和Android sdk建立連接,可以在Eclipse中啟動(dòng)Android模擬器進(jìn)行HYPERLINK /view/182316.htm程序調(diào)試等ADT插件安裝這里不再累贅,插件的安裝URL為:也可以下載adt的zip包安裝 安裝完插件后,需要做一些簡(jiǎn)單的配置:在HYPERLINK /subview/23576/9374802.htmEclipse中,選擇Window Preference;從左側(cè)的菜單中,選擇Android項(xiàng);設(shè)置SDK L

22、ocation,點(diǎn)Browse選擇SDK的安裝根目錄;OK,完成。2文件管理系統(tǒng)的需求分析和可行性論述21系統(tǒng)要達(dá)到的目標(biāo)和要解決的問題 本章需求分析的目的是規(guī)范化本軟件的編寫,旨在于提高軟件開發(fā)過程中的能見度,便于對(duì)軟件開發(fā)過程中的控制與管理,同時(shí)提出了本軟件開發(fā)過程,并作為工作成果的原始依據(jù),同時(shí)也表明了本軟件的共性,以期能夠獲得更大范圍的應(yīng)用。 在Android系統(tǒng)在手機(jī)平臺(tái)風(fēng)靡的同時(shí),文件管理器在系統(tǒng)中越來越普及,人們通文件管理軟件對(duì)文件進(jìn)行文件管理,既方便了用戶,又為傳統(tǒng)文件管理帶來了革新的契機(jī)。現(xiàn)今Android操作系統(tǒng)逐漸成熟,尤其是伴隨著各大手機(jī)廠商如三星(Samsung),多

23、普達(dá)(HTC)出款的多款A(yù)ndroid手機(jī)大熱。人們不僅要求采用手機(jī)連接PC進(jìn)行文件管理,更加盼望在手機(jī)操作系統(tǒng)上實(shí)現(xiàn)快捷方便的文件管理。隨之帶來的是android手機(jī)給功能強(qiáng)大,使用簡(jiǎn)單快捷,擁有良好操作界面的手機(jī)文件管理系統(tǒng)的具體需求。跟電腦上的文件管理界面一樣,手機(jī)文件管理工具就像是一座橋梁用來連通用戶和手機(jī)文件系統(tǒng),準(zhǔn)確的讓用戶了解到手機(jī)上文件的信息,并且讓用戶對(duì)這些文件進(jìn)行簡(jiǎn)單的操作以便達(dá)到管理的目的。本軟件基于Android技術(shù)開發(fā),規(guī)模不大,開發(fā)本軟件意圖是為了深入學(xué)習(xí)Android技術(shù),鍛煉自主學(xué)習(xí)能力,為以后開發(fā)積累經(jīng)驗(yàn),鍛煉發(fā)現(xiàn)問題解決問題的能力?,F(xiàn)在,有很多手機(jī)軟件使手機(jī)

24、的應(yīng)用更方便,本設(shè)計(jì)開發(fā)的目的就是開發(fā)一款實(shí)用的手機(jī)文件管理器對(duì)一系列的手機(jī)軟件及文件進(jìn)行管理,方便快捷。本設(shè)計(jì)為Android系統(tǒng)的手機(jī)用戶提供服務(wù),可以安裝到手機(jī)上使用。由于Android手機(jī)基于Linux內(nèi)核開發(fā),所以對(duì)于Linux 文件來說就由安全性的問題,同時(shí)也由這用戶權(quán)限的問題,對(duì)于一些非普通用戶來說,有一些文件是無法訪問的,如果一旦訪問就會(huì)出現(xiàn)一些系統(tǒng)級(jí)的問題,所以對(duì)于此處Android 文件管理器中需要注意將用戶不需要也不應(yīng)該訪問的文件目錄隱藏從而達(dá)到安全有效的使用文件列表需要過濾。文件打開,復(fù)制,粘貼,重命名,刪除,打開文件需要針對(duì)每一種類型的文件選擇適應(yīng)的打開方式,以及打開

25、形式。 復(fù)制粘貼文件,可能需要判斷文件的類型,對(duì)文件采取必要的保護(hù)措施。 重命名文件,可能需要對(duì)其進(jìn)行修改權(quán)限處理。刪除文件,需要用戶的權(quán)限來判斷,也需要判斷刪除之后是否會(huì)對(duì)系統(tǒng)造成損失,如果是文件夾,需要了解是否可以刪除文件夾的文件或者空文件夾處理。文件檢索:對(duì)文件的過濾,對(duì)文件夾的過濾。文件信息查看:文件信息處理,對(duì)文件信息的采集,文件夾內(nèi)容的遍歷。文件收藏:存儲(chǔ)文件路徑信息。文件移動(dòng):文件位置的改變。文件路徑的權(quán)限。在應(yīng)用程序管理中,應(yīng)用程序安裝:對(duì)可支持的應(yīng)用程序安裝。應(yīng)用程序卸載:對(duì)安全,可卸載的應(yīng)用程序卸載。應(yīng)用程序備份:應(yīng)用程序打包處理。應(yīng)用程序信息查看:查看應(yīng)用程序信息。獲取應(yīng)

26、用文件。應(yīng)用程序運(yùn)行:安全的執(zhí)行應(yīng)用程序。進(jìn)程管理:對(duì)用戶想關(guān)閉的進(jìn)程進(jìn)行關(guān)閉處理。22系統(tǒng)主要功能需求文件管理工具最終是要安裝到手機(jī)上以供用戶操作,所以應(yīng)該從用戶出發(fā)和Android系統(tǒng)手機(jī)的使用者進(jìn)行不斷的溝通,深入了解以便很好的獲取需求。將用戶的模糊需求轉(zhuǎn)化成為具體的軟件模型,這樣才能簡(jiǎn)化用戶的操作,使用戶更加方便的管理自己手機(jī)里面存放的文件。本課題所設(shè)計(jì)的基于Android的文件管理應(yīng)用,安裝到手機(jī)上后,能夠識(shí)別手機(jī)SD卡和手機(jī)內(nèi)存中存放的文件。221文件的瀏覽打開FileManager之后,主界面就會(huì)顯示/sdcard路徑下的所有東西,包括各種文件和目錄并且通過不同的圖標(biāo)加以區(qū)分,我

27、們也可以在稍后的瀏覽過程中對(duì)這個(gè)目錄的信息進(jìn)行操作。如果要進(jìn)行目錄的跳轉(zhuǎn),可以選擇所在目錄一個(gè)子文件夾點(diǎn)擊,或者返回到所在目錄的上一級(jí)目錄。目錄跳轉(zhuǎn)的時(shí)候要預(yù)先判斷有效性,保證所在目錄和要跳到的文件夾所處的狀態(tài),動(dòng)態(tài)的監(jiān)聽新建文件、文件刪除或者一些其他的事情造成的路徑的變化情況,對(duì)文件列表進(jìn)行動(dòng)態(tài)的更新。文件管理工具FileManger打開之后的主界面相當(dāng)于是一個(gè)列表,每一個(gè)列表顯示的是一個(gè)對(duì)應(yīng)目錄下的所有內(nèi)容,列表又分成許多的行,每一行或是一個(gè)可以打開的目錄,或是一個(gè)可以通過手機(jī)上的其他應(yīng)用打開的實(shí)實(shí)在在的信息文件,為了讓系統(tǒng)的反應(yīng)更加迅速,每一行不能包括很多的信息,要盡量做的簡(jiǎn)潔,讓用戶一

28、目了然。222文件的操作 文件管理工具不光能顯示文件讓用戶瀏覽文件,還要讓用戶能夠操作文件,例如新建文件、新建文件夾、刪除文件、復(fù)制、剪切、粘貼等一系列操作。當(dāng)用戶長(zhǎng)按文件列表上的某一行或者點(diǎn)擊手機(jī)上的菜單按鈕的情況下,就會(huì)彈出許多供選擇的操作,只要接著點(diǎn)擊選擇想要進(jìn)行的操作就行了。23系統(tǒng)非功能性需求 Android文件管理系統(tǒng)面向用戶功能明確,并且由于是基于Android系統(tǒng)手機(jī)嵌入式軟件,所以滿足文件管理主要功能的同時(shí),還需要滿足一些非功能性需求。非功能性需求在以往的軟件開發(fā)中經(jīng)常被研發(fā)人員忽視,導(dǎo)致非功能性需求得不到保障,進(jìn)而致使保障不了功能性需求的定義和實(shí)現(xiàn)。為了更好的實(shí)現(xiàn)文件管理系

29、統(tǒng)的帶給用戶的價(jià)值,基于提高軟件質(zhì)量和遵守Android軟件設(shè)計(jì)的主流標(biāo)準(zhǔn)和規(guī)范的考慮,文件管理系統(tǒng)非功能性需求有以下幾個(gè)方面: (1)界面設(shè)計(jì)需求:此處的界面設(shè)計(jì)需求不同于詳細(xì)的界面的設(shè)計(jì),主要體現(xiàn)的是用戶在手機(jī)上使用文件管理軟件的體驗(yàn)感覺。作為手機(jī)應(yīng)用,應(yīng)該注重軟件界面設(shè)計(jì)的美觀,簡(jiǎn)單,大方。由于文件類型的較多,不同文件類型模塊間的切換要求平滑實(shí)現(xiàn)。界面主題顏色采用醒目亮色。調(diào)用Android操作系統(tǒng)的控件時(shí)充分考慮系統(tǒng)對(duì)控件的支持是否良好和使用范圍是否超出軟件需求。 (2)執(zhí)行需求:執(zhí)行需求要充分考慮當(dāng)前主流手機(jī)的硬件配置,要求文件管理軟件精確完成文件操作和完成功能時(shí)間在用戶可接受的范圍

30、之內(nèi)。軟件在響應(yīng)用戶的文件操作時(shí),對(duì)初始化界面顯示文件列表的速度,完成諸如文件移動(dòng),刪除,重命名等操作的精確性,完成操作后更新列表的時(shí)間,驗(yàn)證root權(quán)限的準(zhǔn)確度等。 (3)易用性需求:在滿足用戶功能的需求的同時(shí),軟件最終提供給用戶的功能的調(diào)用要符合用戶使用手機(jī)軟件的習(xí)慣操作和對(duì)軟件的前期期望值。系統(tǒng)需求分析中心圍繞的用戶的使用習(xí)慣展開,細(xì)分用戶習(xí)慣和需求,和軟件應(yīng)用功能相結(jié)合,最終達(dá)到用戶可以更快的操作軟件。 (4)適應(yīng)性需求:適應(yīng)性需求主要包括文件管理軟件對(duì)手機(jī)軟件環(huán)境和硬件環(huán)境的適應(yīng)。系統(tǒng)適應(yīng)的軟件環(huán)境主要是適應(yīng)手機(jī)Android操作系統(tǒng),軟件適合于Android 21以上的所有版本的系

31、統(tǒng),可以調(diào)用Android相應(yīng)的服務(wù)和Android自帶的控件;系統(tǒng)適應(yīng)的硬件環(huán)境主要是識(shí)別手機(jī)內(nèi)存和自帶的SD卡,軟件安裝后占有極少的手機(jī)空間前提下,提供完整的文件管理功能。 24系統(tǒng)運(yùn)行環(huán)境規(guī)定系統(tǒng)基于Android系統(tǒng)進(jìn)行開發(fā),考慮到Android的基于Linux本質(zhì),開發(fā)語言選擇使用成熟的高級(jí)語言Java。在pc端windows平臺(tái)下使用Android SDK自帶移動(dòng)虛擬手機(jī)開發(fā)調(diào)試,生成軟件包,在手機(jī)端安裝apk來達(dá)到最終系統(tǒng)運(yùn)行的目標(biāo)。下面講述下Android虛擬機(jī)的組成部分和一些構(gòu)造原理,在介紹Android虛擬機(jī)之前,先要了解下什么是Android操作系統(tǒng),所謂的Android

32、:是基于Linux內(nèi)核的軟件平臺(tái)和操作系統(tǒng),早期由Google開發(fā),后由開放手機(jī)聯(lián)盟Open Handset Alliance)開發(fā)。Linux系統(tǒng)中進(jìn)程間通信的方式有:socket, named pipe,message queque, signal,share memory。Java系統(tǒng)中的進(jìn)程間通信方式有socket, named pipe等。android應(yīng)用程序理所當(dāng)然可以應(yīng)用JAVA的IPC機(jī)制實(shí)現(xiàn)進(jìn)程間的通信,取而代之的是Binder通信。Google為什么要采用這種方式呢,這取決于Binder通信方式的高效率。 Binder通信是通過linux的binder driver來實(shí)現(xiàn)

33、的。Binder通信操作類似線程遷移(thread migration),兩個(gè)進(jìn)程間IPC看起來就象是一個(gè)進(jìn)程進(jìn)入另一個(gè)進(jìn)程執(zhí)行代碼然后帶著執(zhí)行的結(jié)果返回。Binder的用戶空間為每一個(gè)進(jìn)程維護(hù)著一個(gè)可用的線程池,線程池用于處理到來的IPC以及執(zhí)行進(jìn)程本地消息,Binder通信是同步而不是異步。Android中的Binder通信是基于Service與Client的,所有需要IBinder通信的進(jìn)程都必須創(chuàng)建一個(gè)IBinder接口。系統(tǒng)中有一個(gè)進(jìn)程管理所有的system service,Android虛擬機(jī)不允許用戶添加非授權(quán)的System service,當(dāng)然現(xiàn)在源碼開發(fā)了,我們可以修改一些代

34、碼來實(shí)現(xiàn)添加底層system Service的目的。對(duì)用戶程序來說,我們也要?jiǎng)?chuàng)建server,或者Service用于進(jìn)程間通信,這里有一ActivityManagerService管理JAVA應(yīng)用層所有的service創(chuàng)建與連接(connect)。disconnect,所有的 Activity也是通過這個(gè)service來啟動(dòng),加載的。ActivityManagerService也是加載在Systems Servcie中的。Android虛擬機(jī)啟動(dòng)之前系統(tǒng)會(huì)先啟動(dòng)service Manager進(jìn)程,service Manager打開binder驅(qū)動(dòng),并通知binder kernel驅(qū)動(dòng)程序這個(gè)進(jìn)

35、程將作為System Service Manager。然后該進(jìn)程將進(jìn)入一個(gè)循環(huán),等待處理來自其他進(jìn)程的數(shù)據(jù)。用戶創(chuàng)建一個(gè)System service后,通過defaultServiceManager得到一個(gè)遠(yuǎn)程ServiceManager的接口。通過這個(gè)接口我們可以調(diào)用 addService函數(shù)將System service添加到Service Manager進(jìn)程中,然后client可以通過getService獲取到需要連接的目的Service的IBinder對(duì)象。這個(gè)IBinder是 Service的BBinder在binder kernel的一個(gè)參考,所以service IBinder 在

36、binder kernel中不會(huì)存在相同的兩個(gè)IBinder對(duì)象。每一個(gè)Client進(jìn)程同樣需要打開Binder驅(qū)動(dòng)程序。對(duì)用戶程序而言,我們獲得這個(gè)對(duì)象就可以通過binder kernel訪問service對(duì)象中的方法。Client與Service在不同的進(jìn)程中,通過這種方式實(shí)現(xiàn)了類似線程間的遷移的通信方式,對(duì)用戶程序而言當(dāng)調(diào)用Service返回的IBinder接口后,訪問Service中的方法就如同調(diào)用自己的函數(shù)。 利用Eclipse開發(fā)的Android應(yīng)用程序,能夠與安裝有Android操作系統(tǒng)的手機(jī)硬件相聯(lián)系,快速便捷的訪問手機(jī)SD卡和本機(jī)內(nèi)存中各個(gè)類型文件。有條理的將手機(jī)文件與系統(tǒng)中

37、劃分的文件類型集合相對(duì)應(yīng),比如系統(tǒng)中分為圖片集合,音樂集合等,通過窗口集合的方式顯示各個(gè)對(duì)象和不同類型文件的對(duì)應(yīng)關(guān)系。基于Android的文件管理器完成設(shè)計(jì)編碼、調(diào)試工作后,不僅可以在Android虛擬機(jī)上運(yùn)行,凡是具有android操作系統(tǒng)的手機(jī),都可使用。25 可行性論述在開發(fā)該文件管理器之前,我查詢了前人所寫過的諸多論文以及源程序,在開發(fā)之時(shí),結(jié)合了資料中的算法并揉進(jìn)了自己的一些思想,使程序可以完整實(shí)現(xiàn)。(1)技術(shù)可行性 文件管理器的應(yīng)用有很多,但是Android的應(yīng)用程序,目前還很少在android market中使用,也很少在國(guó)內(nèi)的應(yīng)用市場(chǎng)中所見到。由于在國(guó)內(nèi)外Android領(lǐng)域中,

38、還處于發(fā)展的初級(jí)階段,還很少有開發(fā)者能對(duì)整體設(shè)計(jì)有一定的思想以及理念,成熟度非常低,有待于完善的地方也很多。 在開發(fā)中可能會(huì)遇到的問題,比如android文件的安全性BUG,對(duì)于一個(gè)屏幕有限制的項(xiàng)目如何展現(xiàn)出盡可能讓用戶了解更多的內(nèi)容,對(duì)于安全性的問題。所以。對(duì)于技術(shù)上的實(shí)現(xiàn)可能有一定的問題。但是為會(huì)努力的克服困難。完成技術(shù)方面的問題。(2)操作可行性該文件管理器需要如下的運(yùn)行環(huán)境:CPU:500MHZ及以上;內(nèi)存:256 M及以上。安裝有Android 2.1以上的操作系統(tǒng)。因此,從操作可行性來看,只要系統(tǒng)用戶的硬件軟件設(shè)備滿足以上條件,即可用該文件管理器。3系統(tǒng)的整體設(shè)計(jì)和規(guī)劃31Andr

39、oid開發(fā)平臺(tái)系統(tǒng)的基本架構(gòu) 圖3-1 Android開發(fā)平臺(tái)系統(tǒng)的基本架構(gòu)如圖3-1可以很明顯看出,Android系統(tǒng)架構(gòu)由五部分組成,分別是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications?,F(xiàn)在我們拿起手術(shù)刀來剖析各個(gè)部分。其實(shí)這部分SDK文檔已經(jīng)幫我們做得很好了,我們要做的就是拿來主義,然后再加上自己理解。下面自底向上分析各層。Linux Kernel:Android基于Linux 2.6提供核心系統(tǒng)服務(wù),例如:安全、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)堆棧、驅(qū)動(dòng)模型。Linux Kernel4也作為

40、硬件和軟件之間的抽象層,它隱藏具體硬件細(xì)節(jié)而為上層提供統(tǒng)一的服務(wù)。分層的好處就是使用下層提供的服務(wù)而為上層提供統(tǒng)一的服務(wù),屏蔽本層及以下層的差異,當(dāng)本層及以下層發(fā)生了變化不會(huì)影響到上層。也就是說各層各司其職,各層提供固定的SAP(Service Access Point),專業(yè)點(diǎn)可以說是高內(nèi)聚、低耦合。如果你只是做應(yīng)用開發(fā),就不需要深入了解Linux Kernel層。Android Runtime:Android包含一個(gè)核心庫的集合,提供大部分在Java編程語言核心類庫中可用的功能。每一個(gè)Android應(yīng)用程序是Dalvik虛擬機(jī)中的實(shí)例,運(yùn)行在他們自己的進(jìn)程中。Dalvik虛擬機(jī)5設(shè)計(jì)成,在

41、一個(gè)設(shè)備可以高效地運(yùn)行多個(gè)虛擬機(jī)。Dalvik虛擬機(jī)可執(zhí)行文件格式是.dex,dex格式是專為Dalvik設(shè)計(jì)的一種壓縮格式,適合內(nèi)存和處理器速度有限的系統(tǒng)。大多數(shù)虛擬機(jī)包括JVM(Java Virtual Machine即Java虛擬機(jī))都是基于棧的,而Dalvik虛擬機(jī)則是基于寄存器的。兩種架構(gòu)各有優(yōu)劣,一般而言,基于棧的機(jī)器需要更多指令,而基于寄存器的機(jī)器指令更大。dx 是一套工具,可以將 Java .class 轉(zhuǎn)換成 .dex 格式。一個(gè)dex文件通常會(huì)有多個(gè).class。由于dex有時(shí)必須進(jìn)行最佳化,會(huì)使文件大小增加1-4倍,以O(shè)DEX結(jié)尾。Dalvik虛擬機(jī)依賴于Linux 內(nèi)核

42、提供基本功能,如線程和底層內(nèi)存管理。Libraries6:Android包含一個(gè)C/C+庫的集合,供Android系統(tǒng)的各個(gè)組件使用。這些功能通過Android的應(yīng)用程序框架(application framework)暴露給開發(fā)者。Application Framework:通過提供開放的開發(fā)平臺(tái),Android使開發(fā)者能夠編制極其豐富和新穎的應(yīng)用程序。開發(fā)者可以自由地利用設(shè)備硬件優(yōu)勢(shì)、訪問位置信息、運(yùn)行后臺(tái)服務(wù)、設(shè)置鬧鐘、向狀態(tài)欄添加通知等等,很多很多。開發(fā)者可以完全使用核心應(yīng)用程序所使用的框架APIS。應(yīng)用程序的體系結(jié)構(gòu)旨在簡(jiǎn)化組件的重用,任何應(yīng)用程序都能發(fā)布他的功能且任何其他應(yīng)用程序可

43、以使用這些功能(需要服從框架執(zhí)行的安全限制)。這一機(jī)制允許用戶替換組件。所有的應(yīng)用程序其實(shí)是一組服務(wù)和系統(tǒng)。Applications:Android裝配一個(gè)核心應(yīng)用程序集合,包括電子郵件客戶端、SMS程序、日歷、地圖、瀏覽器、聯(lián)系人和其他設(shè)置。所有應(yīng)用程序都是用Java編程語言寫的。更加豐富的應(yīng)用程序有待我們?nèi)ラ_發(fā)!我們所要做的事情就是在這個(gè)架構(gòu)上設(shè)計(jì)自己的文件管理應(yīng)用,它在整個(gè)系統(tǒng)中的結(jié)構(gòu)如圖3-2所示:圖3-2 文件管理在整個(gè)系統(tǒng)中的架構(gòu)層次由于本課設(shè)計(jì)的是基于Android的文件管理系統(tǒng),而Android開發(fā)使用的是java語言,那么這里就要用到Java中比較重要的一個(gè)類File。它直接

44、處理文件和文件系統(tǒng)。也就是說,F(xiàn)ile類沒有指定信息怎樣從文件讀取或向文件存儲(chǔ);它描述了文件本身的屬性。File對(duì)象用來獲取或處理與磁盤文件相關(guān)的信息,例如權(quán)限,時(shí)間,日期和目錄路徑。此外,F(xiàn)ile還瀏覽子目錄層次結(jié)構(gòu)。很多程序中文件是數(shù)據(jù)的根源和目標(biāo)。盡管它們?cè)谛?yīng)用程序中因?yàn)榘踩蚨艿絿?yán)格限制,文件仍是存儲(chǔ)固定和共享信息的主要資源。Java中的目錄當(dāng)成File 對(duì)待,它具有附加的屬性一個(gè)可以被 list( )方法檢測(cè)的文件名列表下面的構(gòu)造函數(shù)可以用來生成File 對(duì)象: File(String directoryPath) File(String directoryPath, Stri

45、ng filename) File(File dirObj, String filename)這里,directoryPath是文件的路徑名,filename 是文件名,dirObj 一個(gè)指定目錄的File 對(duì)象。下面的例子創(chuàng)建了三個(gè)文件:f1,f2,和f3。第一個(gè)File對(duì)象是由僅有一個(gè)目錄路徑參數(shù)的構(gòu)造函數(shù)生成的。第二個(gè)對(duì)象有兩個(gè)參數(shù)路徑和文件名。第三個(gè)File對(duì)象的參數(shù)包括指向f1文件的路徑及文件名。f3和f2指向相同的文件。 File f1 = new File(/); File f2 = new File(/,autoexec.bat); File f3 = new File(f1,

46、autoexec.bat); Java 能正確處理UNIX和Windows/DOS約定路徑分隔符。如果在Windows版本的Java下用斜線(/),路徑處理依然正確。記住,如果你用Windows/DOS使用反斜線(/)的約定,你需要在字符串內(nèi)使用它的轉(zhuǎn)義序列(/)。Java約定是用UNIX和URL風(fēng)格的斜線來作路徑分隔符。 File 定義了很多獲取File對(duì)象標(biāo)準(zhǔn)屬性的方法。例如getName( )返回文件名,getParent( )返回父目錄名,exists( )在文件存在的情況下返回true,反之返回false。然而File類是不對(duì)稱的。說它不對(duì)稱,意思是雖然存在允許驗(yàn)證一個(gè)簡(jiǎn)單文件對(duì)象屬

47、性的很多方法,但是沒有相應(yīng)的函數(shù)來改變這些屬性。下面的例子說明了幾個(gè)File方法:import java.io.File;class FileDemo static void p(String s) System.out.println(s); public static void main(String args) File f1 = new File(/java/COPYRIGHT); p(File Name: + f1.getName(); p(Path: + f1.getPath(); p(Abs Path: + f1.getAbsolutePath(); p(Parent: + f1

48、.getParent(); p(f1.exists() ? exists : does not exist); p(f1.canWrite() ? is writeable : is not writeable); p(f1.canRead() ? is readable : is not readable); p(is + (f1.isDirectory() ? : not + a directory); p(f1.isFile() ? is normal file : might be a named pipe); p(f1.isAbsolute() ? is absolute : is

49、not absolute); p(File last modified: + f1.lastModified(); p(File size: + f1.length() + Bytes); 運(yùn)行該程序,你將看到下面的結(jié)果:File Name: COPYRIGHTPath: /java/COPYRIGHTAbs Path: /java/COPYRIGHTParent: /javaexistsis writeableis readableis not a directoryis normal fileis absoluteFile last modified: 812465204000File s

50、ize: 695 Bytes大多數(shù)File方法是自說明的,但isFile( )和isAbsolute( )不是。isFile( )在被文件調(diào)用時(shí)返回true,在被目錄調(diào)用時(shí)返回false。并且,isFile( )被一些專用文件調(diào)用時(shí)返回false,例如設(shè)備驅(qū)動(dòng)程序和命名管道,所以該方法可用來判定文件是否作為文件執(zhí)行。isAbsolute( )方法在文件擁有絕對(duì)路徑時(shí)返回true,若是相對(duì)路徑則返回false。File 還包括兩個(gè)有用的實(shí)用工具方法。第一個(gè)是renameTo( ),顯示如下:boolean renameTo(File newName)這里,由newName指定的文件名變成了所調(diào)用

51、的File 對(duì)象的新的名稱。如果更名成功則返回ture,文件不能被重命名(例如,你試圖重命名文件以使它從一個(gè)目錄轉(zhuǎn)到另一個(gè)目錄,或者你使用了一個(gè)已經(jīng)存在的文件名),則返回false。第二個(gè)實(shí)用工具方法是delete( )該方法刪除由被調(diào)用的File對(duì)象的路徑指定的磁盤文件。它的形式如下:boolean delete( )同樣可以在目錄為空時(shí)用delete( )刪除目錄。如果刪除了文件,delete( )返回true,如果文件不能被刪除則返回false。 Java還為File類增添了一些新的方法,你會(huì)發(fā)現(xiàn)在某些場(chǎng)合這些新增方法很有用。一些最有趣的方法顯示如下: void deleteOnExit

52、( ) 在java虛擬機(jī)終止時(shí)刪除與調(diào)用對(duì)象相關(guān)的文件 boolean isHidden( ) 如果調(diào)用的文件是隱藏的,返回true;否則返回 false。 boolean setLastModified(long millisec) 設(shè)置由millisec指定的調(diào)用文件的時(shí)間標(biāo)志,Millisec是從1970年1月1號(hào)開始的標(biāo)準(zhǔn)時(shí)間(UTC)的毫秒數(shù) boolean setReadOnly( ) 設(shè)置調(diào)用文件為只讀并且,因?yàn)镕ile類現(xiàn)在支持Comparable 接口,compareTo( )方法也被支持。 32簡(jiǎn)單概要設(shè)計(jì) 軟件系統(tǒng)和產(chǎn)品設(shè)計(jì)當(dāng)中的主體結(jié)構(gòu)和主要矛盾是軟件架構(gòu),優(yōu)秀的軟件產(chǎn)

53、品肯定是在成熟的軟件架構(gòu)的基礎(chǔ)上實(shí)現(xiàn),軟件架構(gòu)的設(shè)計(jì)對(duì)軟件系統(tǒng)的實(shí)現(xiàn)起到支持和促進(jìn)作用,主要包括設(shè)計(jì)軟件的組織,選擇結(jié)構(gòu)元素及其組成系統(tǒng)所籍接口,規(guī)定元素特定于其相互協(xié)作的行為,設(shè)計(jì)結(jié)構(gòu)和行為元素到規(guī)模更大的子系統(tǒng)的組成,指導(dǎo)系統(tǒng)結(jié)構(gòu)的架構(gòu)風(fēng)格等方面。 基于Android的文件管理軟件架構(gòu)的選擇和設(shè)計(jì)要充分考慮Android系統(tǒng)的分層架構(gòu)(分為四層,應(yīng)用程序?qū)樱绦蚩蚣軐?,Android系統(tǒng)庫層和核心層),基于MVC的基礎(chǔ)的同時(shí)考慮與Android架構(gòu)相結(jié)合,以此來指導(dǎo)文件管理軟件的設(shè)計(jì)。 根據(jù)上一章節(jié)的功能性和非功能性需求分析可知,系統(tǒng)需要將文件的類型,數(shù)量等信息匯總到前端界面顯示的同時(shí),還

54、需要對(duì)手機(jī)存儲(chǔ)空間中的文件進(jìn)行遍歷更新。系統(tǒng)設(shè)計(jì)成兩大核心模塊:文件分類模塊和文件管理模塊。軟件架構(gòu)針對(duì)用戶的具體需求和系統(tǒng)面向的文件管理,采用面向?qū)ο蟮木幊趟枷?,使用基于JAVA的MVC多層次架構(gòu)設(shè)計(jì),加以調(diào)用Android系統(tǒng)庫和控件,來完成系統(tǒng)主要功能。系統(tǒng)的層次的特點(diǎn)是以手機(jī)存儲(chǔ)空間內(nèi)的文件集合為核心,根據(jù)文件類型,將不同的功能劃分為各個(gè)模塊。文件分類模塊采用設(shè)計(jì)的前端界面進(jìn)行區(qū)分式顯示,體現(xiàn)不同的業(yè)務(wù)模型。文件管理模塊調(diào)用控件和服務(wù),對(duì)文件進(jìn)行相應(yīng)的操作。33系統(tǒng)功能的設(shè)計(jì)規(guī)劃低耦合、增強(qiáng)組件的重用性是Android開發(fā)比較推崇的,Android的基本編程思想、Android開發(fā)的四

55、大組件實(shí)際上就是為了實(shí)現(xiàn)MVC8架構(gòu)模式的。M代表模型(Model)是應(yīng)用程序的主體部分,表示要處理的數(shù)據(jù) 。V代表視圖(View)是應(yīng)用程序中界面相關(guān)的部分,是用戶看到并與之交互的界面。 C代表控制器(Controller)就是根據(jù)用戶的操作,控制View層數(shù)據(jù)顯示和更新Model層對(duì)象狀態(tài)。MVC模式在Android開發(fā)中的對(duì)應(yīng)情況如下:Model層是數(shù)據(jù)層,數(shù)據(jù)通過文件系統(tǒng)保存在硬件設(shè)備上,Linux內(nèi)核通過相應(yīng)的驅(qū)動(dòng)會(huì)把這些數(shù)據(jù)映射到一個(gè)目錄下面,這樣我們就可以像瀏覽文件一樣來訪問這些存放數(shù)據(jù)的物理地址。當(dāng)然,業(yè)務(wù)控制層的模塊就能夠訪問這些數(shù)據(jù)了??偟膩碚f就是對(duì)底層網(wǎng)絡(luò)數(shù)據(jù)和文件信息進(jìn)

56、行訪問,數(shù)據(jù)層和視圖層是相互獨(dú)立的。View層是應(yīng)用開發(fā)的界面部分,在Android開發(fā)中是用.xml文件來實(shí)現(xiàn)的,開發(fā)的過程中如果想要修改界面的顯示效果,可以隨意的修改,不會(huì)影響到其它層,使用的時(shí)候引入也很方便。Controller層的操作是基于具體問題的,處理的東西是數(shù)據(jù)層的業(yè)務(wù)邏輯,相當(dāng)于對(duì)數(shù)據(jù)層的方法做一些調(diào)用處理。Android開發(fā)中控制層的操作相對(duì)來說比較簡(jiǎn)單,一個(gè)Activity有時(shí)候包括多個(gè)View層的界面,用一些布局方法就能把View層視圖的id傳遞到Activity,進(jìn)一步來決定用什么視圖顯示Model層的數(shù)據(jù)信息。由于大部分應(yīng)用不一定只有一個(gè)Activity,大多數(shù)的應(yīng)用

57、是由多個(gè)Activity之間相互跳轉(zhuǎn)來實(shí)現(xiàn)的,所以Controller層要處理這些Activity之間的關(guān)系。如果過多的代碼寫到活動(dòng)層,處理起來比較耗時(shí),有可能會(huì)超過Android的活動(dòng)的響應(yīng)時(shí)間而造成程序被回收的尷尬局面。本課題所研究的基于Android文件管理應(yīng)用也是根據(jù)MVC模式設(shè)計(jì)的,下面就本課題對(duì)每一層的設(shè)計(jì)進(jìn)行描述:文件管理應(yīng)用設(shè)計(jì)由不同的視圖構(gòu)成,其中有文件瀏覽的基本界面、文件操作的界面還有菜單界面。文件瀏覽的基本界面本來可以用ListView9實(shí)現(xiàn),但是我們并沒有使用它,我們使用的是ListActivity10,ListActivity顯示一個(gè)綁定到數(shù)組或游標(biāo)這些數(shù)據(jù)源的一個(gè)列

58、表,并且列表的每一項(xiàng)提供一個(gè)點(diǎn)擊事件的管理方法,當(dāng)用戶點(diǎn)擊其中的列表項(xiàng)的時(shí)候就能進(jìn)行相應(yīng)的處理,LisActivity的默認(rèn)布局由一個(gè)位于屏幕中心的全屏列表構(gòu)成。但是,如果你不想使用默認(rèn)的布局,也可以定義自己的布局。因?yàn)長(zhǎng)istActivity本身就容納了ListView對(duì)象,這個(gè)對(duì)象能夠被綁定到不同的數(shù)據(jù)源,這樣實(shí)現(xiàn)起來就更加簡(jiǎn)單了。每一個(gè)ListView都和一個(gè)Adapter綁定在一起,Adapter會(huì)把數(shù)據(jù)源對(duì)應(yīng)到ListView上進(jìn)行顯示。這里我們通過繼承BaseAdapter并重寫其中的方法來完成ListView自己的適配器,這樣就可以把文件對(duì)應(yīng)的圖標(biāo)和文件名字顯示到Listview

59、上。對(duì)于數(shù)據(jù)層來說設(shè)計(jì)所需要的大部分?jǐn)?shù)據(jù)資源都放在res目錄中,其中包括各種圖片資源、顏色資源、字符串資源等,Android會(huì)自動(dòng)的將這些資源封裝到一個(gè)名字為R的類中以供其它類來調(diào)用,如下頁圖3-3所示。 圖3-3 項(xiàng)目中R類中用到的資源這樣一來控制層的任務(wù)就由src下面的Activity類或其子類結(jié)合Android配置文件AndroidManifest.xml來完成。這層設(shè)計(jì)中需要用到AlertDialog,長(zhǎng)按ListView中的每一項(xiàng)時(shí)會(huì)彈出一系列的操作選項(xiàng),點(diǎn)擊menu按鍵也會(huì)彈出一個(gè)操作的菜單,此外還應(yīng)該有一些操作提示的彈出對(duì)話框。34整體設(shè)計(jì)的流程系統(tǒng)的整體流程如圖3-4所示: 圖

60、3-4 應(yīng)用整體的設(shè)計(jì)流程4.文件管理系統(tǒng)詳細(xì)功能的實(shí)現(xiàn) 如第三章總體設(shè)計(jì)中所述,文件管理器基本功能部分主要位于Android系統(tǒng)應(yīng)用層,直接與用戶進(jìn)行交互,完成文件瀏覽、文件操作管理等功能。本章將結(jié)合Android應(yīng)用開發(fā)相關(guān)技術(shù),分別介紹文件管理器中文件瀏覽、文件操作功能的實(shí)現(xiàn)及應(yīng)用中相關(guān)數(shù)據(jù)的存儲(chǔ)。41 整個(gè)項(xiàng)目中主要包、類的功能的實(shí)現(xiàn) 作為應(yīng)用的主界面,文件系統(tǒng)的瀏覽、文件操作的執(zhí)行以及其它一些相關(guān)操作都在MainActivity活動(dòng)中進(jìn)行,同時(shí)該活動(dòng)也是啟動(dòng)應(yīng)用后的第一個(gè)活動(dòng)??梢栽趹?yīng)用的配置文件Androidmanifest.xml中設(shè)置。這樣在系統(tǒng)初始化時(shí),文件管理器中MainA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論