说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Android开发进阶之NIO非阻塞包(一)

HTML文档下载 WORD文档下载 PDF文档下载
Android开发进阶之NIO非阻塞包(一)

作者: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两个包了解。

VB如何取得磁盘序列号? VB如何让Window不接受键盘输入及Mouse Click VB如何让程序拥有多个热键? VB如何让用户自行输入方程式,并计算其结果? VB如何使程序不在Ctrl+Alt+Del弹出的对话框内? VB如何使用 VB 编写自动反安装的程序? VB如何用VB建立快捷方式 VB如何用VB在桌面建立快捷方式 VB如何在 VB 中控制 Modem 行为? VB如何在VB中判断Windows9x的运行模式 VB如何在Visual Basic中实现异步执行程序 VB如何在开机时自动更换墙纸? 使回车具有 Tab 的功能-VB资料 输入时,自动转换成小写? -VB资料 显示多媒体信息 -VB资料 也谈Windows 下的自动存盘 -VB资料 一个小巧精致的CPU监视器 -VB资料 应用VB4.0实现工业控制的实时曲线和历史曲线 应用程序中实现关机功能-VB资料 萤幕抓取与萤幕保护程式 -VB资料 用VB5.0创建Windows快捷方式 用VB5.0收集键盘和鼠标信息 用VBA限制非注册软件使用时间 用VB编程检测当前电池使用情况 用VB编写定时关闭计算机的程序 用VB编写键盘拦截程序 用VB函数轻松访问系统注册表 用VB设计一个定时闹钟程序 用VB实现拖放功能 在VB中启动控制面板 在VB中异步执行程序 webbrowse控件怎样控制直接打开一个WORD文档,而不用提示是打开还是下载呢? 急!!请高手指点,分不够可以加! 怎么使自己做出来的网页在IE浏览器中浏览中不出现水平滚动条 怎么解决? IE无法打开另弹出窗口的连接!为什么? 如何读写ini文件的问题?搜索的全打不开 cross join的问题 请微软专家、思归、江雨.net,spring.z进来!请问如何在winform模式下调用Web Service?想实现相当于asp下的XMLHTTP的功能!十万火急!!! 求教:在asp.net中能不能实现类似于javaApplet的功能,怎么实现 谁手上有地域情人的《三句话搞定QQ菜单》,能发一份给我吗?在线等待 Delphi 中怎样设置、取消 注释块?找到以前但是打不开,这个该死的CSDN!!! access数据库的数据要放入sql数据库,代码怎么写? 安装声卡的驱动alsa,make后,出现Need by“hwdep.o”stop.请问这是怎么会事?! 这样给二维指针分配内存可以吗?? 请问如何实现win2k server和DOS机之间的通讯 请微软专家、思归、江雨.net,spring.z进来!请问如何在winform模式下调用Web Service?想实现相当于asp下的XMLHTTP的功能!十万火急!!! 我的显示有问题,大家帮忙看一下好吗? 统计,大家都用哪里的php收费空间? 请教JTree中怎么任意设置TreeNode的图标? 在堆栈上分配结构与用new分配结构有何区别 是否可以对datareport中添加的控件编程呢 三层中数据返回的问题 在vb.net里有什么简便的办法可以处理所有控件的keydown消息? 菜鸟问题 在线等 Page.Response.Write("<img height=13 src='images\deleteTrue.gif' width=13 align=middle>");出错 我想买一款数码像机!!! 动态连接excel表的问题 用什么方法可以实现我计算的数字,只有两位小数,谢谢!! 知道26号放假!高兴!!放分!! 问个瓜问题 推荐几个好的编程论坛(中文的),不看的后悔呀!请不要移贴或删除! 关于脚本与代码的通信问题。。。 用WiseInstall作安装程序,怎么让可执行程序自动识别专用的文件,即点击专用文件即可用对应执行程序打开 在POWERDESIGN中将数据库设计倒入WORD报表的中文乱码问题 访问数据库时遇到的问题 如何把Excel的图表另存为图形文件?? 紧急求救!!(关于调用exe的问题) 关于动态删除记录的问题,大侠指点!!! 请问如何把用户上传的文件(所有)都保存在sql里面? 在POWERDESIGN中将数据库设计倒入WORD报表的中文乱码问题 时间设置 年关已到,谁有工作总结的模扳,给小弟发一份。 今天女朋友回家,放分,终于可以自由几天了,头一次放分,只有这么多了 生气!我真的很生气!现在的人怎么都这样? to shibichen(务必请近来一下) 在VC中怎么写关于猫的AT命令的程序?最好又程序。分数不过另外给 问一个傻傻的问题 帮帮忙,我送什莫礼物给女朋友好呢? 如何将选择出的内容存入文本文件??? Delphi中数据库操作Filter的原理,他和SQL语句查询输出的结果有什么不同? 在EXCEL中如何实现分两上SHEET打印!? 浙江教育厅:明年仍坚持民办初中招生不浙大教授陈英旭受审 亿元课题经费被控天热,补习更热,暑假惨成“第三学期”浙江省教育厅:全省已有79个县实现“大学专业冷热变迁昔日最热的计算机、法北大清华在浙高考录取结束 两校共录取杭州女大学生全球招募了一批支教志愿者六年级女孩读了30多个兴趣班 家长何浙大等国内名校加盟MOOC 在线教育浙江省出台政策促进大学生就业 鼓励自中美洲公交,爱选美国旧校车美防长:美国仍在寻求“国际联盟”共同驻日本冲绳美军举行“鱼鹰”飞行部队重2只顽皮小猫躲铁轨下 纽约地铁停驶9美防长:美国仍在寻求“国际联盟”共同驻日本冲绳美军举行“鱼鹰”飞行部队重多国在南海岛礁大搞基建埃及:以民主名义争夺新法老头衔浙江高考第二批分数线公布 文科468西班牙华侨华人协会举行换届交接杭州力争削减50%以上审批事项 严控大渡河双江口、雅砻江杨房沟两大水电站媒体评论:希腊危机远没有结束湖南耒阳市文联主席因作品遭网友差评“广州查获微信贩毒犯罪团伙 暗语联络交专家:抗战伤亡和损失调研用事实揭露日广东省中山市委副书记邓小兵违纪被查广西:农村饮用水水源保护区不得再建垃广东省中山市委副书记、政法委书记邓小【长城微评】贾玲恶搞花木兰 该道歉吗福建审结一起组织领导传销活动案清华监控现真相 “保安迫降无人机”事中国外交“下半场”“大手笔”推动世界俄罗斯一架轰炸机坠毁且末县80岁以上老人按季度领“长寿工电影《云情报》开机 再现河北抗战故事三伏天赣鄱大地骄阳似火 别上火!周末福建高校本科专业开始申报 优先增设“福建旅游景区、酒店推出百余项暑期优惠广西:农村饮用水水源保护区不得再建垃贵州发布社会责任报告企业首次破百广东13市和15县已完成不动产登记机
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘