- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android 网络业务的封装与调度
手机客户端程序由于网络宽带的约束, 尤其在 GPRS网络环境下, 大数据量的网络交互很大程度
上降低应用的响应,影响用户体验。比如,如果做一个手机网盘客户端,在后台上传文件时 ( 大数据
量的交互 ) ,获取文件列表( 命令类的交互 )这个过程就显得太别慢。而我们的要求是希望这些命令
类操作能尽快得到响应。
通常,在手机客户端,我们设计一个网络操作的管理器,来统一管理这些需要联网的操作。
具体做法是把网络操作封装成一个 Command(或者说是 Task) ,管理器实现特定的调度规则来调
度运行这些 Task 。
这样做的 好处 至少有三:
一. 用 Command封装了网络操作,使得这些操作与上传的业务分离,解除了强耦合。
二. 可以根据网络情况来确定来采用不同的调度规则,提高用户体验。
三 . 重用,这些 Task 和 TaskManager 的代码在别的手机应用上基本上能照搬过去。
四. 扩展,当应用需要扩展新的业务时,只有扩展一个新的 Command(或者说是 Task) ,接受调
度即可,易于扩展。
例子:
还是以上文提到的微盘为例,可以概括我们对管理器的设计要求有:
在 Wifi 网络环境下:
一:各种网络操作可以并行运行。
在 GPRS网络环境下:
二:支持优先级抢占调度, 命令类操作的优先级比数据传输类的优先级高, 当命令类的 Task (获
取文件列表)提交后,打断数据传输的 Task (如上传,下载),等命令类的任务运行完毕,再接着
运行数据类任务(断点上传,下载)。
二:同一个优先级的任务可以并行运行,如多个命令一起在网络上传输。
实现思路:
TaskManager :
1. TaskManager 开辟一个后台线程进行调度工作。
2. 由于要支持多个优先级的抢占调度,我们需要两个队列来维护运行中的 Task 和等待中的
Task。
3. 由于 Task 的调度是基于优先级的, 我们可以使用优先级队列, 运行队列采用 PriorityQueue ,
等待队列使用 PriorityBlockingQueue ,当没有网络业务需要运行时, 调度线程阻塞挂起, 避免空转。
4. TaskManager 设计为单一实例(单一模式)。
5. 每个 Task 被调度运行时,该 Task 被从等待队列移动运行队列,当 Task 执行完毕时,从运
行队列删除,唤醒调度线程进行新的调度。
下面是简单的 设计代码 :
public final class TaskEngine implements Runnable{
private PriorityQueueTask runningQueue;// 运行的 task 队列
private PriorityBlockingQueueTask readyQueue;// 就绪的 task 队列, 准备接受调度的 task
列表
private final AtomicLong taskIdProducer = new AtomicLong(1);//Task Id 生成器
private Object sheduleLock = new Object();// 同步锁
private static TaskEngine instance;
public long addTask(BusinessObject bo){
Task task = new Task(bo
您可能关注的文档
- 2018年6月16日大学英语四级真题参考答案.pdf
- 2018年6月英语四级真题及答案第3套.pdf
- 2018年6月英语六级真题答案解析(卷一).pdf
- 2018年6月英语四级真题答案及解析(卷一).pdf
- 2018年6月英语六级真题答案解析(卷二).pdf
- 2018年6月英语四级考试真题试卷附答案(完整版第2套).pdf
- 2018年TI杯大学生电子设计竞赛无线话筒扩音系统(F题)报告.pdf
- 2018年《专业技术人员创新能力和创新思维》考试答案解析.pdf
- 2018年光棍节创意短信201X[1]word版本(3页).pdf
- 2018年大学生英语竞赛知识点整理之作文篇.pdf
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 2025年江西管理职业学院教师招聘考试笔试备考题库.docx VIP
- 2024中国中信金融资产管理股份有限公司人力资源部(党委组织部)社会招聘笔试模拟试题及答案解析.docx VIP
- 高考英语完型填空汇总.doc VIP
- 合作经营合同(2020).docx VIP
- 关节活动度测定ppt课件.pptx VIP
- 体育教师专业发展计划.doc VIP
- 影视产业概论 教学大纲.docx VIP
- 明星志愿3群星合辑(星光圆舞曲+银色幻想曲)攻略-详细整理版精要.docx
- Q-CR 570-2017 电气化铁路接触网用力矩控制式胶粘型锚栓.docx VIP
- 煤矿机电事故专项应急预案及现场处置方案.pdf VIP
文档评论(0)