| [原]Android中XML的三種解析方式 |
XML解析方式Android 提供了三種解析XML的方式:SAX(Simple API XML), DOM(Document Object Model), Pull 1. SAX解析方式SAX(Simple API for XML)解析器是一種基於事件的解析器,事件驅動的流式解析方式是,從文件的開始順序解析到文檔的結束,不可暫停或倒退。
2.創建函數 parseXMLWithSAX 代碼如下: 創建函數 parseXMLWithSAX 調用的時候只需傳入xmlData即可 **【注:在Android API中,另外提供了Android.util.Xml類,同樣可以解析XML文件,使用方法類似SAX,也都需編寫Handler來處理XML的解析,但是在使用上卻比SAX來得簡單 ,如下所示: 2. Pull 方式解析PULL解析器的運行方式和SAX類似,都是基於事件的模式。不同的是,在PULL解析過程中返回的是數字,且我們需要自己獲取產生的事件然后做相應的操作,而不像SAX那樣由處理器觸發一種事件的方法,執行我們的代碼。
優點: PULL解析器小巧輕便,解析速度快,簡單易用,非常適合在Android移動設備中使用,Android系統內部在解析各種XML時也是用PULL解析器,Android官方推薦開發者們使用Pull解析技術。Pull解析技術是第三方開發的開源技術,它同樣可以應用於JavaSE開發。 3. DOM方式解析DOM,即對象文檔模型,它是將整個XML文檔載入內存(所以效率較低,不推薦使用),每一個節點當做一個對象,結合代碼分析。DOM實現時首先為XML文檔的解析定義一組接口,解析器讀入整個文檔,然后構造一個駐留內存的樹結構,這樣代碼就可以使用DOM接口來操作整個樹結構。 由於DOM在內存中以樹形結構存放,因此檢索和更新效率會更高。但是對於特別大的文檔,解析和加載整個文檔將會很耗資源。 當然,如果XML文件的內容比較小,采用DOM是可行的。
總結:三種方式的總結比較SAX是一個用於處理XML事件驅動的“推”模型, DOM是一種文檔對象模型,DOM可以以一種獨立於平台和語言的方式訪問和修改一個文檔的內容和結構。 Pull解析和Sax解析很相似,Pull解析和Sax解析不一樣的地方是pull讀取xml文件后觸發相應的事件調用方法返回的是數字,還有pull**可以在程序中控制想解析到哪里就可以停止解析。** DOM方式最直觀和容易理解,但是只適合XML文檔較小的時候使用,而SAX方式更適合在移動終端系統中使用,因為相比DOM占用內存少,適合處理比較大的XML文檔,最后的Pull方式使用場合和SAX類似,但是更適合需要提前結束XML文檔解析的場合。
作者:WILLMAX_007 發表於2016/5/15 14:30:03
原文鏈接
閱讀:1120 評論:0
查看評論
|
| [原]Android Activity 生命周期 |
|
1.每個活動在其生命周期最多有四種狀態* 運行狀態 ---------活動處於棧頂,可見,可交互 * 暫停狀態 ---------活動不在棧頂,但可見,不可交互 * 停止狀態 ---------活動不再棧頂,不可見,不可交互,有可能被回收 * 銷毀狀態 ---------活動從棧中移除 2.活動的生命周期Activity中定義了七個回調方法,覆蓋了活動的生命周期的每一個環節。七個方法的流程圖如下: |

