位置: 编程技术 - 正文

Developing for Android, IV: The Rules: Networking

编辑:rootadmin

推荐整理分享Developing for Android, IV: The Rules: Networking,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

This section covers practices around network behavior of applications.

Don’t Over-Sync

Sending data to and from the cloud is one of the largest consumers of battery. The problem is not that any particular network transaction kills the device, but rather the sheer number of background applications and services making these requests and the side effect on the inability of the device to sleep (or for the radio to enter low power mode) for any reasonable length of time causes a significant drain on the battery in general. If you don’t need the data immediately, don’t get it. If you need the data sometime in the future, batch it up with other system requests with JobScheduler or GCM Network Manager.

Here are some general tips for avoiding over-syncing:

Use Google Cloud Messaging (GCM). Do not establish new persistent connections to the device.Use JobScheduler (on API and later) or GCM Network Manager(which works across many releases, using JobScheduler internally on API and later) to benefit from batching and coalescing from other sync requests on the device. These APIs can also be used to ensure that some operations only happen when the device is in an appropriate idle state.Do not poll. Ever.Only sync what you need to. Data syncing has been found to be one of the biggest culprits of battery usage and overall system health, so app developers need to think carefully about the type of data that really needs to be synced, as well as how often it should be synced for a good user experience.See these reference articles for more information and strategies:Minimizing the Effect of Regular Updates, Transferring Data Using Sync Adapters, and Optimizing Downloads for Efficient Network Access.Avoid Overloading the Server

When a server request fails, use exponential back-off techniques to avoid hammering the server with constant, repeated requests. Also, never synchronize against wall-clock time to avoid problems with the server being hit by large loads at these absolute times.

Don’t Make Assumptions about the Network

When making network calls, be sure to call NetworkInfo.isConnected() to ensure connectivity.

Developing for Android, IV: The Rules: Networking

Also, it is not possible to know when or if a network request will actually succeed, which is yet another good reason to not make network requests on the UI thread or in other places requiring fast or synchronous behavior.

Develop for Low End Networks

The Develop for the Low End rule in the Performance chapter is as true for network performance as it is for raw device hardware performance. If your application is dependent upon network performance for content (such as a video or music application), then you should develop on a device that has a slower network connection, just to understand the implications in markets that do not have easy access to fast network speeds. If your application can get much of the content across with text (such as messaging or social apps), it is important to be able to make that work without being dependent on slower network times for associated media components. 2G networks, in particular, are important to test against since this is a slow network speed that is very prevalent in some markets.

Design Back-End APIs to Suit Client Usage Patterns

There is a tendency in back-end applications to provide a general purpose API for all of their clients. Although this is a reasonable strategy for back-end systems, it is not good for the client because the application ends up transferring and processing a lot of data on a small device while some calculations could be made on the server.

For example, if your application displays a feed of mixed content, make sure the client can fetch that information in a single request and that the returned data is suitable for caching in pieces. You generally want your client to be able to identify entities so that it can persist them and also avoid duplicates of the same objects in memory.

While doing this, many APIs return hierarchical data where all relations are denormalized. Although this approach is preferred for most web clients, it is not good for mobile clients where persisting data and serving it from disk is important.

The more information the client has about the data it is displaying, the more efficient it can be. The application can make a careful selection of what to cache, what to prune, and how to invalidate layout when new data arrives. Treating the client application like a simple HTML renderer will miss out on all of these advantages.

Developing for Android, III: The Rules: Performance OnAndroid,performanceandmemoryarecloselyintertwined,sincethememoryfootprintoftheoverallsystemcanaffecttheperformanceofalloftheprocesses,andsincethegarbagecollectorcanhaveasignificantimpactonruntimeper

AsyncTask 转载自

android中解析doc、docx、xls、xlsx格式文件 解析doc,要tm-extractors-0.4.jar这个包解析xls,要jxl.jar这个包下载jxl.jarpublicstaticStringreadDOC(Stringpath){//创建输入流读取doc文件FileInputStreamin;Stringtext=null;//Envir

标签: Developing for Android, IV: The Rules: Networking

本文链接地址:https://www.jiuchutong.com/biancheng/384185.html 转载请保留说明!

上一篇:Android入门——电话拨号器和四种点击事件(android零基础入门教程)

下一篇:Developing for Android, III: The Rules: Performance

  • 税务机关采取哪些行政
  • 个所税包括什么
  • 增值税纳税人是委托方还是受托方
  • 税务登记管理办法2023
  • 几个月以前发现便血是肠癌吗
  • 购房契税应该交给谁
  • 固定资产到期怎么处理
  • 土地使用税延期还延续吗
  • 销售产品产生的运杂费分录
  • 公司注销是不是破产了
  • 商贸企业增值税优惠政策
  • 发票的金额可以答应客户多开
  • 购入工程物资的账务处理
  • 营改增后二手房转让 一般计税 可以差额
  • 资产处置损益和营业外收支的区别和联系
  • 房地产企业开发资质等级
  • 境内个人去境外开设公司
  • 低值易耗品属于资产类
  • 暂估入库会影响利润吗
  • 借主营业务成本表示什么
  • 增值税小规模纳税人免征增值税政策
  • 管理费用没发票能入账吗
  • 应付职工薪酬科目的应用
  • 新会计准则下建筑业会计科目设置
  • win11任务栏没有输入法图标
  • 公司之间往来借款利息怎么记账
  • 总分公司企业所得税合并申报
  • elementui能做什么
  • 浅谈php技术
  • nvm安装及全局配置node
  • 个人所得税的现状分析
  • html 提交表单
  • user-interface console 0 指令无效
  • 收到购置税完税通知书
  • 手工账结转
  • 产生滞纳金有什么影响
  • python2多进程
  • python中numpy数组和列表的区别
  • pandas常见操作
  • 帝国cms专题
  • python中except用法
  • 差旅费需要缴纳增值税吗
  • sqlmap暴力破解
  • c#连接access数据库实例
  • mysql和mongo的区别
  • 开具发票要注意方面是有哪些?
  • 资产负债表一般由什么组成
  • 小规模纳税人的增值税怎么算
  • 支付给职工以及为职工支付的现金增加说明什么
  • 普通发票做账需要价税分离吗
  • 公司支付工伤赔偿,是先签字还是先打钱
  • 暂估入库的税务怎么处理
  • 房地产行业预缴土地增值税
  • 更新改造过程中的固定资产需要计提折旧吗
  • 返利开红字发票怎么做账
  • 小微企业要记账吗
  • 教育费返还款计入收入吗
  • 应付职工薪酬为负数什么意思
  • 公司买茶具帐务处理流程
  • 企业所得税收入是含税还是不含税
  • 供货商做产品配送怎么做
  • 原始凭证分割单怎么填写
  • use crt secure
  • win1020h2版好不好
  • 番茄花园论坛
  • win7旗舰版显示不全屏
  • javascript学习指南
  • 2014 ChinaJoy落下帷幕 十大年度热门事件盘点
  • android toast位置
  • javascript parseInt 函数分析(转)
  • android事件处理方式有几种
  • python中input的用法
  • android完整开源项目
  • jquery修改href
  • 电子税务局的社保不能扣款怎么办
  • 核准类和备案类项目
  • 航天金税开票软件服务费可以抵扣税款吗
  • 乌市沙区医保局电话是多少
  • 拟录用是正式录用吗
  • 火车票是否出票查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设