1. 程式人生 > >Android網路程式設計和多執行緒程式設計

Android網路程式設計和多執行緒程式設計

Android對網路程式設計提供3中介面,即:Java介面,Apache介面,Android介面。

-- Android三種網路通訊方式/網路通訊機制:
 1.標準Java介面
java.net.*提供與聯網有關的類,包括流、資料包套接字(socket)、Internet協議、常見Http處理等。 
 2、Apache介面 Apache HttpClient
 3、android.net網路介面
常常使用此包下的類進行Android特有的網路程式設計,如:訪問WiFi,訪問Android聯網資訊,郵件等功能。

-- Android網路程式設計分為兩種:基於http協議的,和基於socket的。
基於Http協議:HttpClient、HttpURLConnection、AsyncHttpClient框架等
基於Socket:
(1)針對TCP/IP的Socket、ServerSocket
(2)針對UDP/IP的DatagramSocket、DatagramPackage
(3)Apache Mina框架

> 網路應用程式設計 Android
今日頭條面試,TCP擁塞控制和流量控制- https://blog.csdn.net/Go_hack/article/details/79850183
-- Android與伺服器的資料互動方式吧:
1、Socket(TCP/UDP)
2、NIO,還有衍生的NIO框架例如Netty
3、WebService(特指Soap協議下用XML傳輸資料)
4、JSON(特質http協議下用基於Rest風格的傳輸方式)

-- Socket程式設計與HTTP程式設計 TCP協議與UDP協議的區別與適用場景
針對HTTP進行網路通訊的方法主要有兩種,一種是使用HttpURLConnection實現;另一種是使用HttpClient實現。
Socket封裝,長連線socketclient庫-

https://github.com/vilyever/AndroidSocketClient
有效判斷Socket連線斷開和安卓TCP測試APP(客戶+服務端一體)-http://www.laitech.cn/2016/07/14/34/   
Socket連線斷開和安卓TCP測試APP(客戶+服務端一體)- https://pan.baidu.com/s/1bqlB31l
WebSocket安卓客戶端實現- https://blog.csdn.net/zly921112/article/details/72973054/  
WebSocket安卓客戶端實現- https://github.com/TakahikoKawasaki/nv-websocket-client

同wifi環境下android裝置自動獲取socket服務端的ip地址和埠號的方法-UDP廣播(MulticastSocket)- https://blog.csdn.net/suyiyang888/article/details/21446655

-- Android Socket實現多個客戶端連線同一個服務端
android Socket長連線及多客戶端管理- https://blog.csdn.net/suyiyang888/article/details/22667867
android Socket長連線及多客戶端管理- http://download.csdn.net/detail/suyiyang888/7061259
 
> 多執行緒程式設計
-- 為主執行緒減輕負的多執行緒方案有哪些呢?這些方案分別適合在什麼場景下使用?
 1.AsyncTask: 為 UI 執行緒與工作執行緒之間進行快速的切換提供一種簡單便捷的機制。適用於當下立即需要啟動,但是非同步執行的生命週期短暫的使用場景。
 2.HandlerThread: 為某些回撥方法或者等待某些任務的執行設定一個專屬的執行緒,並提供執行緒任務的排程機制。
 3.ThreadPool: 把任務分解成不同的單元,分發到各個不同的執行緒上,進行同時併發處理。
 4.IntentService: 適合於執行由 UI 觸發的後臺 Service 任務,並可以把後臺任務執行的情況通過一定的機制反饋給 UI

怎樣在 Android 面試中聊聊多執行緒- https://blog.csdn.net/H176Nhx7/article/details/79988346
【Bugly乾貨】Android效能優化典範之多執行緒篇- https://www.cnblogs.com/bugly/p/5519510.html