Android對網絡編程提供3中接口,即:Java接口,Apache接口,Android接口。Android提供了對HTTP,SSL,Cookie,DHCP等協議的封裝,並支持套接字編程,同時對UTI也提供了支持。另外,還提供了鏈接管理器和WiFI管理器來加強對網絡的支持。java
一、HTTP協議:
Android中HTTP協議的主要體如今android.net.http和org.apache.http等包中。在android.net.http包中,主要經過AndroidHttpClient來實現HTTP協議,AndroidHttpClient實際上就是實現了org.apache.http.client.HttpClient,實際上就是DefaultHttpClient的子類,經過AndroidHttpClient newInstance(String userAgent, Context context)方法得到一個實例。其可以處理Cookie,可是在默認狀況下沒法維護Cookie,設置Cookie的方法:
context.setAttribute(ClientContext.COOKIE_STORE,cookieStore);
AndroidHttpClient一般和HttpHost、HttpUriRequest、HttpContext、ResponseHandler一塊兒發起HTTP請求以及處理服務器響應。
二、SSL協議:
針對Web的網絡安全協議,常見的HTTPS連接就採用了SSL技術,SSL協議的實現與數字證書密切相關。在android.net.http包中提供了SslCertificate和SslError來描述X509數字證書信息。在WebView中經過getCertificate()方法能夠 查看當前頁面是否擁有SSL證書。
三、Cookie實現:
Cookie用於識別用戶信息,進行Session跟蹤而存儲在用戶本地終端的數據,Cookie擁有本身的生命週期,能夠存儲用戶信息,所以可能暴露用戶信息,使用Cookie具備必定風險。Android中,Cookie的管理主要位於WebView,java.net,org.apache.http.cookie中,能夠經過httpClient.getCookieStore().getCookies()來或得Cookie,使用Cookie的相關方法能夠得到Cookie的信息。在WebView中,CookieManager能夠用來設置、清除和獲取Cookie。清空Cookie的方法CookiewManager.getInstance().removeAllCookie();
另:Cookie的信息保存在data\data\com.android.browser\databases目錄下的webview.db中。
四、鏈接性管理:
Android經過ConnectivityManager提供對網絡如WiFi,UMTS,GPRS的鏈接性管理。經過ConnectivityManager。getActiveNetworkInfo()方法能夠得到介入方式,判斷網絡類型和當前狀態。須要有權限android.permission.ACCESS_NETWORK_STATE.當網絡發生變化時,系統會廣播Action爲android.net.conn.CONNECTIVITY_CHANGE的Intent消息。
五、WiFi管理:
對WiFi的管理,Android提供了WifiManager來進行管理。獲取WiFi服務的的方法,context.getSystemService(WIFI_SERVICE);經過該服務能夠得到設備可用網絡的列表,得到當前激活網絡的信息,執行熱點掃描,測定信號強度等等。其具體方法能夠自行查看API。Android4.0開始支持WiFi點對點的通訊,得到WifiP2pManager服務的方法以下:
WifiP2pManager p2pManager = (WifiP2pManager) getSystemService(WIFI_P2P_SERVICE);
爲了進行點對點同窗須要下面幾個步驟:
①經過initialize()初始化P2P鏈接
②經過discoverPeers()發現附近的設備
③經過connect()啓動P2P鏈接。android