亚洲免费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
        永久免费看黄在线观看| 老熟妇仑乱视频一区二区 | 日本一区二区三深夜不卡| 丝袜美腿诱惑区在线播放| 亚洲国产精品亚洲一区二区三区| 午夜福利理论片在线观看| 婷婷五月综合丁香在线| 国产精品玖玖玖在线资源| av永久天堂一区二区三区蜜桃| 国产愉拍91九色国产愉拍| 91九色老熟女免费资源| 久久精品国产亚洲av高清热| 日本亚洲国产一区二区三区| 亚洲欧美国产成人综合不卡| 人妻秘书被社长浓厚接吻| 免费亚洲一区二区三区av| 亚洲国产精品成人综合色| 色妞色综合久久夜夜| 久久精品国产亚洲AV高清y w| 国产我不卡在线观看免费| 久久久99精品免费视频| 亚洲国产成人精品无码区二本| 中国极品少妇videossexhd| 蜜桃视频色版在线观看| 激情五月天色婷婷久久| 大又大又粗又硬又爽少妇毛片| 国精品无码一区二区三区在线蜜臀| 精品视频在线观看免费无码 | 亚洲免费国产中文字幕久久久| 欧美亚洲国产一区二区三区| 破了亲妺妺的处免费视频国产| 亚洲AV日韩AV高潮喷潮无码| 高清国产亚洲精品自在久久| 很黄很色很污18禁免费| 久热综合在线亚洲精品| 国产v精品成人免费视频400条| 能看不卡视频网站在线| 精品无码人妻夜人多侵犯18 | 日本国产在线一区二区| 杨幂一区二区系列在线| 99久久亚洲精品日本无码|