Android 網路編程 記錄

來源:互聯網
上載者:User

標籤:android   des   style   class   code   java   

簡介

看了深入理解Android網路編程感覺不錯,今天對Android網路編程進行了要點記錄。


內容

Android基於網路技術和編程實踐

要點 定義 描述



 IP協議
用於報文交換網路的一種面向資料的協議  
TCP協議 傳輸控制通訊協定,傳輸層通訊協定。  
UDP協議 使用者資料包通訊協定,傳輸層協議。  
SMTP協議 簡易郵件傳輸通訊協定  
SOCKET 通訊端 應用程式層與TCP/IP協議族通訊的中間軟體抽象層。 類型有兩種:TCP通訊端和UDP通訊端。
TCP通訊端   在保證可靠性上,採用逾時重傳和捎帶確認機制,在流量控制上,採用滑動視窗協議;在擁塞控制上,採用慢啟動演算法。
UDP通訊端   將網路資料流量壓縮成資料包的形式。
FTP協議 檔案傳輸通訊協定,傳輸協議的應用程式層。 可直接操作Apache的包
Telnet協議 遠程登陸服務的標準協議 可直接操作Apache的包
C++和JAVA 通訊端的區別 Socket是Winsock裡的原始通訊端開發介面Api。 1、介面不同,java本身無socket通訊底層實現,而是調用系統底層的winsock api二次封裝;C++更接近系統層面的winsock,可以進行更多的底層擴充和控制。
2、java開發出來的可以在支援java虛擬機器上運行。
UDP和TCP區別   1、tcp可靠,udp不可靠
2、tcp支援的應用協議有:telnet,ftp,smtp,tcp可使用者傳輸資料量大
3、udp支援的應用協議:nfs(網路檔案系統),snmp(簡單網路管理系統),dns(主網域名稱稱系統),tftp通用檔案傳輸通訊協定等,使用者傳輸資料量少。
4、tcp是java.net.ServerSocket(用於伺服器端)和java.net.Socket(用於用戶端);UDP是java.net.DatagramSocket。
5、流模式與資料報模式:TCP保證資料正確性,UDP可能丟包;TCP 保證資料順序,UDP不保證。
     


Android基本Web技術和編程實踐

要點 定義 描述
HTTP協議 分布式超媒體資訊系統的應用程式層協議。
http://主機[":"連接埠][路徑]
特點:
1、支援C/S模式
2、簡單快速
3、靈活
4、無串連
5、無狀態
兩類報文:請求報文,響應報文。
HTTP編程
支援的功能有:自動轉向、https協議、Proxy 伺服器,方法(get、post、put、head、opption、connect)
實現:資料請求,資料上傳,資料刪除等操作。
可操作的類:HttpClient和URLConnection。
JSON JavaScript對象標記法,輕量級的文本資料交換格式。 可操作的類:
JSONObject、JSonArray、JSONArray、JSONTokener、JSONStringer。
SOAP 簡易物件存取通訊協定 (SOAP),應用程式層協議。 包含的元素:Envelope、Header、Body、Fault。
HTML 超文字標記語言 (HTML) 解析Html文檔的方法有:
1、Regex
2、字串定位
3、HTML Parser解析器
4、Jsoup解析器
如何加密? 資料轉送可添加某密碼編譯演算法進行加密 密碼編譯演算法有:自訂位移(其它)、MD5(無法復原)、對稱式加密(DES、AES)、非對稱式加密(RSA)
可引入crypto包。
     

Android常見網路介面編程

要點 定義 描述
XML 擴充性標記語音 使用XmlSerializer建立XML檔案
DOM解析 一種解析XML的方式,特點:將XML檔案的所有內容以文檔樹的方式存放在記憶體中,然後使用者使用DOM API遍曆XML樹、檢索所需的資料。 所需的類:
DocumentBuilderFactory、Document、Element、NodeList.
SAX解析 一種解析XML的方式,特點:基於事件驅動,邊載入邊解析。 所需的類:
XMLReader、ContentHandler、DTDHandler、ErrorHandler、EntityResolver
PULL解析 同上  
RSS 簡易資訊彙總,一種描述和同步網站內容的格式。訂閱:部落格、新聞。  
Email編程 顧名思義:發送郵件。 1、使用系統內建的郵件服務。
2、採用javamail功能包進行發送郵件。
加解密 加密是通過密碼編譯演算法和加密金鑰將明文轉變為密文的過程,解密相反。 1、Base64加密(字元表示位元據)
2、DES 是資料加密標準
3、AES是進階加密標準
4、MD5使用確保資訊傳輸完整性
OAuth認證 一個開放標準,允許使用者第三方使用。 四個步驟:
1、擷取未授權的請求token
2、擷取使用者授權的請求token
3、用授權的請求token換認證token
4、使用認證token訪問
DOM和SAX的區別 載入方式不同,DOM一次性載入全部內容,SAX邊載入邊讀取。  
     


Android網路模組編程

要點 定義 描述
USB編程 通用序列匯流排,一種主從結構。 涉及的類:
UsbManager、UsbAccessory、UsbDevice、UsbEndpoint
WIFI編程 802.11b標準,無線通訊的工業標準,特點:速度快、可靠、距離遠。
wifi直連技術是通過wifi直接互連。
相關類:WirelessSettings、WifiSettings、AccessPointDialog、WifiEnabler、WifiLayer、WifiManager、WifiState、WifiService、WifiMonitor、WifiNativie、ScanResult、WifiInfo、wifiConfiguration。
使用者角度看五層:硬體驅動程式、wpa_supplicant、JNI、Wifi Api、WifiSettings應用程式。
直連涉及的類:WifiP2pManager
藍芽編程 一種支援裝置短距離通訊的無線技術 涉及的類:BluetoothAdapter、BluetoothDevice、BluetoothSocket
NFC編程 近距離無線通訊的技術,3種工作模式:主動、被動、雙向。應用:接觸通過、接觸支付、接觸串連、接觸瀏覽。 涉及的類:NfcAdapter、NdefMessage、NdefRecord
     

基於Sip協議的Voip應用

要點 定義 描述
sip協議 會話發起協議,用於建立、修改和終止包括視頻、語音、即時通訊、線上遊戲和虛擬現實等多媒體元素在內的互動會話。 應用程式層的信令控制協議。
使用什麼協議傳輸的? UDP協議和TCP協議  
H.323協議和SIp協議的比較 1、H.323採用ASN.1和壓縮編碼規則的二進位方法表示其訊息,sip基於文本協議。
2、h.323由多點控制單元,所有終端都向mcu發送控制訊息;sip是分布式的呼叫模型,具備組播功能。
 
sip會話的構成? 四個組件:
1、SIP使用者代理程式(終端裝置)
2、SIP註冊伺服器(包含域中所有使用者代理程式的位置的資料庫)
3、SIPProxy 伺服器(介面UA的會話請求並查詢SIP註冊伺服器,擷取收件方UA的地址資訊)
4、SIP重新導向伺服器(允許SipProxy 伺服器講sip會話邀請資訊定向到外部域)
 
     

基於XMPP協議的即時通訊

要點 定義 描述
XMPP協議 可擴充訊息處理現場協議 一種以xml為基礎的開放式即時通訊協定。
Android的XMPP用戶端地址 http://asmack.freakempire.de/  
     


Android對HTML的處理

要點 定義 描述
HTML處理關鍵類 Android HTML處理關鍵類在源碼frameworks/base/core/java/android/webkit目錄下  
關鍵類以及描述 1、AccessibilityInjector 為WebView注入可以訪問的javaScript和其相關內容。
2、AutoCompletePopup 根據輸入內容自動不全
3、BrowserFrame  對WebCore中Frame對象的java層封裝。
4、CacheManager Cache管理對象。
5、CallbackProxy 處理WebCore與UI線程訊息的代理類
6、CerTool  WebView認證工具
7、ClientCerRequestHandler  處理用戶端認證請求
8、ConsoleMessage  javaScript控制台訊息
9、Cookiemanager  Cookies管理對象
10、CookieManagerClassic  Cookiemanager  擴充實作類別
11、CookieSyncManager  Cookies同步管理對象,負責同步RAM和FLASH之間的Cookies資料。
12、DataSorter 日期排序
13、DebugFlags 調試標誌
14、DevicemotionAndOrientationManager 實現DeviceMotion和DeviceOrientation
15、DeviceMotionService 實現SensorEventListener介面,處理方向變化。
16、Downloadlistener 下載監聽
17、FindActionModeCallback 搜尋動作回調
18、GeolocationPermissions WebView的地理位置JavaScript Api的許可權管理
19、GeolocationPermissionsClassic  GeolocationPermissions 擴充類,處理UI線程中調用的WebKit線程。
20、GeolocationService 封裝位置監聽。
21、HTML5Audio 音頻支援類
22、HTML5VideoFullScreen  全屏視頻視圖
23、HTML5VideoInline 內嵌視頻視圖
24、HTML5VideoView 瀏覽器視頻視圖
25、HTML5VideoViewProxy 視頻視圖處理類
26、HttpAuthHandler 處理http認證請求
27、JWebCoreJavaBridge 用於java與webcore庫中timer和Cookies對象互動的橋接
28、JniUtil  JNI使用的實用類,用於擷取cache目錄等C代碼無法直接擷取的資訊、以及讀取資源套件中的檔案。
29、JsPromptResult js結果提示,提示javascript運行結果。
30、JsResult  js結果,使用者互動。
31、KeyStoreHandler 負責認證安裝到系統金鑰儲存區區,從網路讀取認證傳給CertTool。
32、L10nUtils 負責字串國際化
33、MimeTypeMap MIME類型映射
34、MockGeolocation 類比地理位置資訊
36、MustOverrideException 擴充執行階段錯誤
37、OverScrollGlow 用於實現OverScroller結果
38、Plugin  定義外掛程式的類
39、PluginData  外掛程式資料
40、PluginFullScreenHolder  擷取外掛程式視圖的容器的大小,負責顯示等操作。
41、PluginList  維護外掛程式列表
42、PluginManager 外掛程式管理類
43、PluginStub WebView的實現外掛程式的介面
44、QuadF 定義一個四邊形
45、SearchBox 搜尋對話方塊介面
46、SearchBoxImpl 搜尋對話方塊介面實現
47、SelectActionModeCallback 選擇動作回調
48、SslCertLookupTable 儲存使用者是否使用一個認證的決定
49、SslClientCertLookupTable 儲存用戶端認證的使用者選擇
50、SslErrorHandler 處理SSL錯誤
51、URLUtil URL使用處理類
52、valueCallback 非同步返回資料值的回調介面
53、ViewManager 視圖管理類,管理外掛程式視圖
54、ViewStateSerializer WebView視圖序列化和還原序列化
55、WebBackForwardList WebView對象中顯示的曆史資料列表
56、WebBackForwardListClient 瀏覽曆史處理的用戶端介面
57、WebChromeClient Chrome用戶端
58、WebCoreThreadWatchdog WebCore看門狗
59、WebHistoryItem 一條網頁資料
60、WebIconDatabase 表徵圖資料庫管理對象
61、WebIconDatabaseClassic  WebIconDatabase 擴充類
62、WebResourceResponse 封裝資源的響應資訊
63、WebSettings WebView的管理設定資料,通過JNI介面從底層擷取。
64、WebStorage 資料庫
65、WebSyncManager 資料同步管理對象,用於RAM資料和FLASH資料的同步操作。
66、WebTextView 在HTML文本輸入控制項啟用時顯示系統原生編輯組件。
67、WebView 視圖對象
68、WebViewClient Web視圖客戶對象,在web視圖中有事件產生時,該對象獲得通知。
69、WebViewDatabase 資料庫
70、WebViewFactory WebView嵌入Fragment中。
71、WebViewFragment ebView嵌入Fragment中。
72、ZoomControlBase 縮放控制項介面。
73、ZoomControlEmbedded 內建縮放控制項。
74、ZoomManager 維護WebView的縮放狀態。
     


Android 網路處理分析

要點 定義 描述
網路處理關鍵類 Android HTML網路處理關鍵類在源碼frameworks/base/core/java/android/net目錄下  
關鍵類以及描述 1、ConnectivityManager 用於查詢網路連接的狀態。
2、Credentials UNIX身份資訊
3、DhcpInfo  一個Dhcp請求結果的對象
4、LocalServerSocket  建立下行unix域通訊端的非標準類
5、LocalSocket  在unix網域命名空間建立一個非伺服器socket
6、LocalSocketAddress  socket地址
7、MailTo  解析mailto協議格式的url
8、NetworkInfo 描述網路介面狀態
9、Proxy 訪問使用者及預設代理設定的類
10、SSLCertificateSocketFactory  實現了ssl操作的額外細節
11、SSLSessionCache  ssl會話緩衝
12、TrafficStats  網路流量統計
13、Uri   一個不可變的url引用
14、Uri.Builder  建立url引用的輔助類
15、UrlQuerySanitizer  過濾url查詢
16、UrlQuerySanitizer.IllegalCharacterValueSanitizer 用它們包含的字元過濾非法值
17、UrlQuerySanitizer.ParameterValuePair 參數值對的簡單元組
18、VpnService  應用擴充和建立自己的vpn解決方案的基類
19、VpnService.Builder  建立一個vpn介面的輔助類
 
Android封裝的http處理類 1、AndroidHttpClient(本質上是Apache DefaultHttpClient類在Android上的實現)
2、DefaultHttpClient(一個Http用戶端)
3、SSL認證資訊處理類(SSL協議的實現與數位憑證相關,涉及的類:SslCertificate、SslError)
1、AndroidHttpClient不能在主線程中執行,DefaultHttpClient在主線程中執行。
2、AndroidHttpClient通過靜態方法newInstance獲得執行個體,而DefaultHttpClient建立對象。
3、DefaultHttpClient預設啟動Cookie,但預設不保留Cookie,如要保留需增加CookieStore到HttpContext中。
Android RTP協議 即時傳輸協議,用來為ip網路的語音、映像、傳真等多種即時傳輸的多媒體資料提供端到端的即時傳輸服務。
RTP協議詳細說明了傳遞音頻和視頻的標準資料包格式。
涉及的類:AudioCodec、AudioStream、AudioGroup、RtpStream。



總結

該書詳細講解了Android開發要點,並用源碼案例進行了詳細說明,使筆者從原理上加深對相關知識點的理解。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.