項目八數(shù)據(jù)傳輸?shù)膶崿F(xiàn)-任務3驗證用戶登入信息_第1頁
項目八數(shù)據(jù)傳輸?shù)膶崿F(xiàn)-任務3驗證用戶登入信息_第2頁
項目八數(shù)據(jù)傳輸?shù)膶崿F(xiàn)-任務3驗證用戶登入信息_第3頁
項目八數(shù)據(jù)傳輸?shù)膶崿F(xiàn)-任務3驗證用戶登入信息_第4頁
項目八數(shù)據(jù)傳輸?shù)膶崿F(xiàn)-任務3驗證用戶登入信息_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Android物聯(lián)網(wǎng)應用程序開發(fā)資源轉化系統(tǒng)教材遼寧輕工職業(yè)學院遼寧輕工職業(yè)學院任務實現(xiàn)知識準備任務目標目 錄 遼寧輕工職業(yè)學院任務3 驗證用戶登錄信息項目8 數(shù)據(jù)傳輸?shù)膶崿F(xiàn)遼寧輕工職業(yè)學院【任務目標】 1. 掌握Android中XML解析方法 2. 掌握Android中JSON解析方法 創(chuàng)建一個Android工程,實現(xiàn)登錄界面并將EditText控件中讀取 到的用戶名密碼進行封裝并發(fā)送到服務器端進行驗證。Android端如下圖所示: 1. XML解析的使用遼寧輕工職業(yè)學院【知識準備】 XML(eXtensible Markup Language),即可擴展標記語言,是一種簡單的數(shù)據(jù)存儲語言,

2、使用一系列簡單的標記描述數(shù)據(jù)。從它誕生到現(xiàn)在,已經(jīng)得到了人們廣泛的支持與應用。因為它架起了復雜的標準通用標記語言(SGML)與功能有限的超文本標記語言(HTML)之間的橋梁。所謂XML文件的解析是指:把代表XML文檔的一個無結構的字符序列轉換成滿足XML語法的結構化組件的過程。解析XML文件通常有三種方式:DOM、SAX、PULL。 1. XML解析的使用遼寧輕工職業(yè)學院【知識準備】(1)DOM解析技術1)DOM的工作原理 使用DOM對XML文件進行操作時,首先要解析文件,將文件分為獨立的元素、屬性和注釋等,然后以節(jié)點樹的形式在內存中對XML文件進行表示,就可以通過節(jié)點樹訪問文檔的內容,并根據(jù)

3、需要修改文檔。DOM實現(xiàn)時首先為XML文檔的解析定義一組接口,解析器讀入整個文檔,然后構造一個駐留內存的樹結構,這樣代碼就可以使用DOM接口來操作整個樹結構。 1. XML解析的使用遼寧輕工職業(yè)學院【知識準備】2)常用的DOM接口和類 Document:該接口定義分析并創(chuàng)建DOM文檔的一系列方法,它是文檔樹的根,是操作DOM的基礎。 Element:該接口繼承Node接口,提供了獲取、修改XML元素名字和屬性的方法。 Node:該接口提供處理并獲取節(jié)點和子節(jié)點值的方法。 NodeList:提供獲得節(jié)點個數(shù)和當前節(jié)點的方法。這樣就可以迭代地訪問各個節(jié)點。 DOMParser:該類是Apache的

4、Xerces中的DOM解析器類,可直接解析XML文件。 1. XML解析的使用遼寧輕工職業(yè)學院【知識準備】3)DOM的解析流程對上述給出的XML文件的處理過程如下圖所示。 1. XML解析的使用遼寧輕工職業(yè)學院【知識準備】(2)SAX解析技術 SAX(SimpleAPIforXML)是XML簡單應用程序接口,是一個公共的基于事件的XML文檔解析標準。它以事件作為解析XML文件的模式,它將XML文件轉化成一系列的事件,由不同的事件處理器來決定如何處理。 1. XML解析的使用遼寧輕工職業(yè)學院【知識準備】1)SAX的工作原理 簡單地說就是對文檔進行順序掃描,當掃描到文檔(document)開始與結

5、束、元素(element)開始與結束、文檔(document)結束等地方時通知事件處理函數(shù),由事件處理函數(shù)做相應動作,然后繼續(xù)同樣的掃描,直至文檔結束。 SAX采用事件驅動,不需要完全讀完xml文件,他是讀到一個節(jié)點就解析一個節(jié)點是否符合xml語法。如果符合就調用相對應的方法其實就是回調方法,并且沒有記憶功能。 1. XML解析的使用遼寧輕工職業(yè)學院【知識準備】2)常用的SAX接口和類Attrbutes:用于得到屬性的個數(shù)、名字和值。 ContentHandler:定義與文檔本身關聯(lián)的事件(例如,開始和結束標記)。大多數(shù)應用程序都注冊這些事件。 DTDHandler:定義與DTD關聯(lián)的事件。它

6、沒有定義足夠的事件來完整地報告DTD。如果需要對DTD進行語法分析,請使用可選的DeclHandler。DeclHandler是SAX的擴展。不是所有的語法分析器都支持它。 EntityResolver:定義與裝入實體關聯(lián)的事件。只有少數(shù)幾個應用程序注冊這些事件。 ErrorHandler:定義錯誤事件。許多應用程序注冊這些事件以便用它們自己的方式報錯。 DefaultHandler:它提供了這些接口的缺省實現(xiàn)。在大多數(shù)情況下,為應用程序擴展DefaultHandler并覆蓋相關的方法要比直接實現(xiàn)一個接口更容易。 1. XML解析的使用遼寧輕工職業(yè)學院【知識準備】3)SAX的解析流程對上述給出

7、的XML文件的處理過程如下圖所示。 1. XML解析的使用遼寧輕工職業(yè)學院【知識準備】(3)PULL解析技術1)PULL的工作原理PULL提供了開始元素和結束元素。當某個元素開始時,我們可以調用parser.nextText()從XML文檔中提取所有字符數(shù)據(jù)。當解釋到一個文檔結束時,自動生成EndDocument事件。2)常用的PULL的接口和類XmlPullParser:XMLpull解析器是一個在XMLPULLV1API中提供了定義解析功能的接口。XmlSerializer:它是一個接口,定義了XML信息集的序列。XmlPullParserFactory:這個類用于在XMPULLV1API

8、中創(chuàng)建XMLPull解析器。XmlPullParserException:拋出單一的XMLpull解析器相關的錯誤。 1. XML解析的使用遼寧輕工職業(yè)學院【知識準備】3)PULL的解析流程對上述給出的XML文件的處理過程如下圖所示 1. XML解析的使用遼寧輕工職業(yè)學院【知識準備】(4)這幾種解析技術的比較1)DOM在處理XML文件時,將XML文件解析成樹狀結構并放入內存中進行處理。當XML文件較小時,我們可以選DOM,因為它簡單、直觀。 2)SAX則是以事件作為解析XML文件的模式,它將XML文件轉化成一系列的事件,由不同的事件處理器來決定如何處理。XML文件較大時,選擇SAX技術是比較合

9、理的。雖然代碼量有些大,但是它不需要將所有的XML文件加載到內存中。這樣對于有限的Android內存更有效,而且Android提供了一種傳統(tǒng)的SAX使用方法以及一個便捷的SAX包裝器。 使用Android.util.Xml類,從示例中可以看出,會比使用SAX來得簡單。 1. XML解析的使用遼寧輕工職業(yè)學院【知識準備】(3) PULL解析并未像SAX解析那樣監(jiān)聽元素的結束,而是在開始處完成了大部分處理。這有利于提早讀取XML文件,可以極大的減少解析時間,這種優(yōu)化對于連接速度較慢的移動設備而言尤為重要。對于XML文檔較大但只需要文檔的一部分時,PULL解析器則是更為有效的方法。2. JSON解析

10、的使用遼寧輕工職業(yè)學院【知識準備】(1)JSON(JavaScript Object Notation)的定義 一種輕量級的數(shù)據(jù)交換格式,具有良好的可讀和便于快速編寫的特性。業(yè)內主流技術為其提供了完整的解決方案(有點類似于正則表達式 ,獲得了當今大部分語言的支持),從而可以在不同平臺間進行數(shù)據(jù)交換。JSON采用兼容性很高的文本格式,同時也具備類似于C語言體系的行為。2. JSON解析的使用遼寧輕工職業(yè)學院【知識準備】二在Android中包含四個與JSON相關的類和一個Exceptions:1)JSONObject:這是系統(tǒng)中有關JSON定義的基本單元,其包含一對兒(Key/Value)數(shù)值。有

11、兩個不同的取值方法:get(): 在確定數(shù)值存在的條件下使用,否則當無法檢索到相關Key時,將會拋出一個Exception信息。opt(): 這個方法相對比較靈活,當無法獲取所指定數(shù)值時,將會返回一個默認數(shù)值,并不會拋出異常。2. JSON解析的使用遼寧輕工職業(yè)學院【知識準備】2)JSONArray:它代表一組有序的數(shù)值。將其轉換為String輸出(toString)所表現(xiàn)的形式是用方括號包裹,數(shù)值以逗號”,”分隔(例如:value1,value2,value3,大家可以親自利用簡短的代碼更加直觀的了解其格式)。這個類的內部同樣具有查詢行為,get()和opt()兩種方法都可以通過index索

12、引返回指定的數(shù)值,put()方法用來添加或者替換數(shù)值。 同樣這個類的value類型可以包括:Boolean、JSONArray、JSONObject、Number、String或者默認值JSONObject.NULL object。2. JSON解析的使用遼寧輕工職業(yè)學院【知識準備】3)JSONStringer: 根據(jù)官方的解釋,這個類可以幫助快速和便捷的創(chuàng)建JSON text。其最大的優(yōu)點在于可以減少由于格式的錯誤導致程序異常,引用這個類可以自動嚴格按照JSON語法規(guī)則(syntaxrules)創(chuàng)建JSON text。每個JSONStringer實體只能對應創(chuàng)建一個JSON text。根據(jù)下

13、邊的實例來了解其它相關信息:view plainString myString = new JSONStringer().object() .key(name) .value(小豬) .endObject() .toString(); 2. JSON解析的使用遼寧輕工職業(yè)學院【知識準備】 結果是一組標準格式的JSON text:name : 小豬 其中的.object()和.endObject()必須同時使用,是為了按照Object標準給數(shù)值添加邊界。同樣,針對數(shù)組也有一組標準的方法來生成邊界.array()和.endArray()。4)JSONTokener:這個是系統(tǒng)為JSONObject

14、和JSONArray構造器解析JSON source string的類,它可以從source string中提取數(shù)值信息。5)JSONException:是 類拋出的異常信息。遼寧輕工職業(yè)學院【知識準備】(3)JSON Vs XML的比較 1)JSON和XML的數(shù)據(jù)可讀性基本相同 2)JSON和XML同樣擁有豐富的解析手段 3)JSON相對于XML來講,數(shù)據(jù)的體積小 4)JSON與JavaScript的交互更加方便 5)JSON對數(shù)據(jù)的描述性比XML較差 6)JSON的速度要遠遠快于XML遼寧輕工職業(yè)學院【任務實現(xiàn)】1. 在Eclipse中新建Android項目AndroidDemo8_3。并將單元2任務8做好的界面導入到本項目中,作為本項目登錄之后的界面。2. 新建名為activity_login.xml.文件,結合單元2的知識制作登錄界面:遼寧輕工職業(yè)學院【知識準備】3. 在src文件夾中新建LoginActivity.java文件,并自定義initView方法實現(xiàn)控件的初始化,定義名為uri的string字符串存放服務器端地址。4. 自定義LoginThread類繼承Thread類,并對用戶名密碼進行封裝。5. 在該run方法中把已經(jīng)封裝好的數(shù)據(jù)通過HTTP發(fā)送到服務器,并將返回

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論