亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2014-04-29 00:44:03周一帆
        電腦迷 2014年9期
        關(guān)鍵詞:編碼

        周一帆

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

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

        中圖分類號:TP3 文獻標識碼:A

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

        對于Android而言,Android應(yīng)用程序是JAVA語言編寫的。同時,對于JAVA語言而言,Android平臺的出現(xiàn),讓JAVA語言重生,因為Android平臺應(yīng)用開發(fā)的語言就是JAVA,這讓許多癡迷于APP開發(fā)的開發(fā)者們都紛紛深入了解JAVA。

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

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

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

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

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

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

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

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

        參考文獻

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

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

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

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

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

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

        猜你喜歡
        編碼
        編碼中心(一)
        中國編碼APP
        基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達圖像配準
        《全元詩》未編碼疑難字考辨十五則
        子帶編碼在圖像壓縮編碼中的應(yīng)用
        電子制作(2019年22期)2020-01-14 03:16:24
        Genome and healthcare
        91免费播放日韩一区二天天综合福利电影| 国产精品视频永久免费播放| 国产欧美日韩一区二区三区| 永久黄网站色视频免费| 无码中文字幕专区一二三| 国产精品美女主播在线| 精品久久久久久亚洲综合网| 久久国产热这里只有精品 | 2020亚洲国产| 好看的中文字幕中文在线| 熟女乱乱熟女乱乱亚洲| 日韩精品免费一区二区三区观看| 亚洲日韩在线中文字幕综合| 性色做爰片在线观看ww| 精品香蕉久久久爽爽| 日本丰满妇人成熟免费中文字幕| 亚洲一区二区丝袜美腿| 亚洲av综合国产av日韩| 国产精品理论片| 国产不卡一区二区三区免费视| 精品国产成人一区二区不卡在线| 日韩一级黄色片一区二区三区| 天天躁日日躁狠狠躁欧美老妇| 国产乱人视频在线看| 在线看片免费人成视久网不卡| 亚洲中文字幕av天堂自拍| 国产乱妇乱子在线播视频播放网站| 久久精品性无码一区二区爱爱| 精品粉嫩国产一区二区三区| 亚洲麻豆视频免费观看| 久久aⅴ人妻少妇嫩草影院| 久青草国产视频| 91麻豆精品一区二区三区| 中文国产乱码在线人妻一区二区 | 欧美老妇多毛xxxxx极瑞视频| 无码av免费一区二区三区| 91精品久久久久含羞草| 亚洲肥婆一区二区三区| 精品久久久无码人妻中文字幕豆芽| 欧美日韩中文国产一区发布 | 国产最新AV在线播放不卡|