999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析基于Android的大文本閱讀器

2014-04-29 00:44:03周一帆
電腦迷 2014年9期

周一帆

摘 要 Android是市場(chǎng)占有率最大的一個(gè)平臺(tái),Android平臺(tái)下的APP也各式各樣,各種各樣的文本閱讀器也隨之產(chǎn)生。傳統(tǒng)IO流與NIO流相差甚大,但在JDK 1.4 中原來(lái)的 I/O 包和 NIO 已經(jīng)很好地集成了,所以即使采用傳統(tǒng)IO流的方式讀取速度也不會(huì)相差很大。讀取方式需要采取分塊讀取的方式,否則會(huì)很占內(nèi)存。文本閱讀器還需要解決的問(wèn)題有編碼問(wèn)題,一個(gè)好的文本閱讀器應(yīng)該支持多種編碼格式的文本。

關(guān)鍵詞 Android IO 文本閱讀器 編碼

中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A

現(xiàn)如今,移動(dòng)市場(chǎng)發(fā)展十分迅速,而Android是移動(dòng)市場(chǎng)中所占比例最大的一個(gè)平臺(tái)。截至2013年年底,Android的市場(chǎng)占有率從2012年的68.8%提升至78.9%,而蘋(píng)果的IOS則從2012年的19.4%下降到15.5%,Microsoft的Windows Phone則從2.7%上升到3.6%。可以看出,在智能手機(jī)市場(chǎng)已經(jīng)接近飽和的情況下,IOS平臺(tái)和WP平臺(tái)小幅波動(dòng)下,Android平臺(tái)在上升了10個(gè)百分點(diǎn),實(shí)屬不易。相較于IOS,Android系統(tǒng)比較開(kāi)放,比較大眾化,而且支持Android系統(tǒng)的手機(jī)也比較多,所以很多人愿意選擇系統(tǒng)。

對(duì)于Android而言,Android應(yīng)用程序是JAVA語(yǔ)言編寫(xiě)的。同時(shí),對(duì)于JAVA語(yǔ)言而言,Android平臺(tái)的出現(xiàn),讓JAVA語(yǔ)言重生,因?yàn)锳ndroid平臺(tái)應(yīng)用開(kāi)發(fā)的語(yǔ)言就是JAVA,這讓許多癡迷于APP開(kāi)發(fā)的開(kāi)發(fā)者們都紛紛深入了解JAVA。

Android響應(yīng)速度主要指的是JVM,即JAVA 虛擬機(jī)的速度。隨著各式各樣的APP的風(fēng)靡,文本閱讀器也隨處可見(jiàn)。對(duì)于大文本來(lái)說(shuō),文本閱讀器的性能好壞就體現(xiàn)在響應(yīng)速度上。

對(duì)于手機(jī)等移動(dòng)設(shè)備來(lái)說(shuō),運(yùn)行內(nèi)存實(shí)在有限。所以,處理起各種應(yīng)用來(lái)最需要保證的就是占用內(nèi)存不能太大。而對(duì)于文本閱讀器來(lái)說(shuō),如果用傳統(tǒng)的方式去讀取,然后將讀取到的全部存起來(lái),如果這個(gè)文本有1G,那么這個(gè)程序就該被列入最爛APP排行榜了。

所以,Android文本閱讀器需要最解決的問(wèn)題就是內(nèi)存的問(wèn)題。所以現(xiàn)在的解決方案就是,少讀取到內(nèi)存。但是文本閱讀是一個(gè)動(dòng)態(tài)的過(guò)程,沒(méi)有一個(gè)開(kāi)發(fā)者會(huì)知道每一個(gè)使用者每次會(huì)讀多少的文本,會(huì)讀多大的文本。所以必須有一個(gè)合適的算法,來(lái)進(jìn)行對(duì)這個(gè)未知的文本進(jìn)行讀取。

對(duì)于JAVA而言,讀取文件需要的就是IO流。在J2SE1.4以上版本中發(fā)布了全新的I/O類庫(kù),即NIO包。選取使用哪種IO流對(duì)文本閱讀器的速度也有很大的影響。在傳統(tǒng)I O流是面向流的,就是說(shuō)這種流真的像流水一般,過(guò)去了就不能往回流。而NIO是面向緩沖的,它讀到的數(shù)據(jù)會(huì)存到一個(gè)緩沖區(qū)里。有了這個(gè)緩沖區(qū)事情就好辦了,必要的時(shí)候,它可以在緩沖區(qū)里前后移動(dòng)。這就使得流使用起來(lái)方便了許多。除此之外,傳統(tǒng)IO流都是阻塞的,當(dāng)一個(gè)線程調(diào)用了讀或者寫(xiě)的方法的時(shí)候,該線程就會(huì)阻塞,直至數(shù)據(jù)完全取得或者數(shù)據(jù)完全寫(xiě)入。這就降低了效率,而NIO是非阻塞的。當(dāng)該線程啟動(dòng)了流之后,該線程不需要等待數(shù)據(jù)完全取得或者完全寫(xiě)入,就可以執(zhí)行其他的操作。經(jīng)過(guò)不完全準(zhǔn)確測(cè)試,讀取一個(gè)10M的文本,使用NIO的所需要的平均時(shí)間為2秒,而使用傳統(tǒng)IO則平均需要3秒。

但在JDK1.4中原來(lái)的I/O包和NIO已經(jīng)很好地集成了。java.io.* 已經(jīng)以 NIO 為基礎(chǔ)重新實(shí)現(xiàn)了,所以現(xiàn)在它可以利用 NIO 的一些特性。這使得傳統(tǒng)IO雖然面向流,但是處理速度提高了不少。

這個(gè)時(shí)候還會(huì)遇到的一個(gè)問(wèn)題是編碼問(wèn)題,文檔的編碼方式有很多,一個(gè)文本閱讀器應(yīng)支持多種編碼。解決編碼問(wèn)題的方式有多種,可以通過(guò)讀取文件頭來(lái)判斷。對(duì)于txt文檔來(lái)說(shuō),如果只需要支持UTF-8,Unicode和GBK的話,只需要讀取文件的頭兩個(gè)字節(jié)就可以了。網(wǎng)上也有一些開(kāi)源的判斷編碼的jar包,比如說(shuō)cpdetector.jar等。但是讀取文件頭是一種很不錯(cuò)的選擇,因?yàn)橄噍^于調(diào)用開(kāi)源的jar包,讀取文件頭的方式十分快速。

再回到分塊讀取的問(wèn)題上來(lái)。無(wú)論采用哪種流進(jìn)行分塊讀取,定位都是一個(gè)很棘手的問(wèn)題,比如說(shuō)以字節(jié)讀取,那么就要根據(jù)編碼來(lái)處理定位,否則就會(huì)出現(xiàn)亂碼。如果直接讀取字符,比如說(shuō)BufferedDRead里面的readline()方法。根據(jù)這種方法讀取雖然不會(huì)出現(xiàn)亂碼的問(wèn)題,但是定位起來(lái)相當(dāng)麻煩。但是采用內(nèi)存映射還是一種不錯(cuò)的方法。

一個(gè)文本閱讀器的實(shí)現(xiàn)方法有很多種,基于Android的文本閱讀器需要考慮的最基本問(wèn)題就是以上提出的用哪種流,如何編碼以及如何定位問(wèn)題。

參考文獻(xiàn)

[1] 熊健.基于Android平臺(tái)的企業(yè)移動(dòng)應(yīng)用開(kāi)發(fā)框架的分析與設(shè)計(jì)[J].軟件,2012,33(11).

[2] 姚昱曼,劉衛(wèi)國(guó). Android的架構(gòu)與應(yīng)用開(kāi)發(fā)研究[M].湖南《計(jì)算機(jī)與現(xiàn)代化》2008,11.

[3] 李剛. 瘋狂Android講義(第2版).電子工業(yè)出版社,2013,3.

[4] 景寶玉.2010中國(guó)移動(dòng)應(yīng)用開(kāi)發(fā)現(xiàn)狀與趨勢(shì)大調(diào)查,2011.

[5] ITEYE.技術(shù)網(wǎng)站. http://www.iteye.com/

[6] JavaEE.技術(shù)社區(qū).http://www.j2eedv3.com/

主站蜘蛛池模板: 老司机午夜精品网站在线观看| 无码一区二区波多野结衣播放搜索 | 91精品亚洲| 国产日韩精品一区在线不卡| 青草娱乐极品免费视频| 亚洲欧美日韩久久精品| 丁香婷婷在线视频| 日本在线免费网站| 中文字幕无码中文字幕有码在线 | 久爱午夜精品免费视频| 无码中文字幕精品推荐| 性激烈欧美三级在线播放| 国产手机在线观看| 狠狠做深爱婷婷综合一区| 国产色网站| 欧美成人免费午夜全| 四虎永久免费在线| 91年精品国产福利线观看久久 | 国产在线观看第二页| 久久国产精品波多野结衣| 91丝袜乱伦| 国产第八页| 97青草最新免费精品视频| 青青草91视频| 欧美一区国产| 88av在线| 精品夜恋影院亚洲欧洲| 亚洲三级色| 日韩av手机在线| av大片在线无码免费| 久久久久久尹人网香蕉| 欧美日韩精品一区二区在线线 | 欧美精品三级在线| 日本AⅤ精品一区二区三区日| 色爽网免费视频| 色综合天天娱乐综合网| 国产亚洲精品97在线观看| 无码中文AⅤ在线观看| 99在线视频网站| 亚洲欧美精品一中文字幕| 国产Av无码精品色午夜| 精品伊人久久久大香线蕉欧美| 91毛片网| 国产又粗又猛又爽视频| 亚洲欧美国产视频| 55夜色66夜色国产精品视频| 亚洲无码91视频| 免费一级无码在线网站| 国产情精品嫩草影院88av| 欧洲亚洲一区| 欧亚日韩Av| 国产视频a| 欧美精品高清| 高清亚洲欧美在线看| 亚洲人成色在线观看| 国产精品无码影视久久久久久久| 中文字幕无码av专区久久| 日韩高清在线观看不卡一区二区 | 2024av在线无码中文最新| 久久永久视频| 亚洲无码免费黄色网址| 婷婷成人综合| 色偷偷av男人的天堂不卡| 久久夜夜视频| 国产福利一区二区在线观看| 国产欧美日韩精品第二区| 亚洲h视频在线| 亚洲综合专区| 91日本在线观看亚洲精品| 性做久久久久久久免费看| 国产精品成人久久| 韩日免费小视频| 色综合五月婷婷| a级毛片免费播放| 亚洲高清无码精品| 亚洲日韩精品综合在线一区二区| 午夜欧美理论2019理论| 国产精品亚洲综合久久小说| 亚洲黄色激情网站| 久久青青草原亚洲av无码| 免费无码AV片在线观看国产| 好吊妞欧美视频免费|