標籤: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開發要點,並用源碼案例進行了詳細說明,使筆者從原理上加深對相關知識點的理解。