編輯:Android開發實例
對於Android的網絡通訊性能的提高,我們可以使用Java上高性能的NIO (New I/O) 技術進行處理,NIO是從JDK 1.4開始引入的,NIO的N我們可以理解為Noblocking即非阻塞的意思,相對應傳統的I/O,比如Socket的accpet()、read()這些方法而言都是阻塞的。
NIO主要使用了Channel和Selector來實現,Java的Selector類似Winsock的Select模式,是一種基於事件驅動的,整個處理方法使用了輪訓的狀態機,如果你過去開發過Symbian應用的話這種方式有點像活動對象,好處就是單線程更節省系統開銷,NIO的好處可以很好的處理並發,對於Android網游開發來說比較關鍵,對於多點Socket連接而言使用NIO可以大大減少線程使用,降低了線程死鎖的概率,畢竟手機游戲有UI線程,音樂線程,網絡線程,管理的難度可想而知,同時I/O這種低速設備將影響游戲的體驗。
NIO作為一種中高負載的I/O模型,相對於傳統的BIO (Blocking I/O)來說有了很大的提高,處理並發不用太多的線程,省去了創建銷毀的時間,如果線程過多調度是問題,同時很多線程可能處於空閒狀態,大大浪費了CPU時間,同時過多的線程可能是性能大幅下降,一般的解決方案中可能使用線程池來管理調度但這種方法治標不治本。使用NIO可以使並發的效率大大提高。當然NIO和JDK 7中的AIO還存在一些區別,AIO作為一種更新的當然這是對於Java而言,如果你開發過Winsock服務器,那麼IOCP這樣的I/O完成端口可以解決更高級的負載,當然了今天Android123主要給大家講解下為什麼使用NIO在Android中有哪些用處。
NIO我們分為幾個類型分別描述,作為Java的特性之一,我們需要了解一些新的概念,比如ByteBuffer類,Channel,SocketChannel,ServerSocketChannel,Selector和SelectionKey。有關具體的使用,Android開發網將在明天詳細講解。網友可以在Android SDK文檔中看下java.nio和java.nio.channels兩個包了解。
本文實例講述了Android中WebView用法。分享給大家供大家參考,具體如下: WebView相當於一個迷你浏覽器,采用WebKit內核,因此完美支持html
前面文章介紹了Android利用麥克風采集並顯示模擬信號的實現方法,這種采集手段適用於無IO控制、單純讀取信號的情況。如果傳感器本身需要包含控制電路(例如采集血氧
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用