位置: 编程技术 - 正文

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

  • 营业额超500万会罚款吗
  • 浙江税务网上办税大厅官网
  • 什么是关税自主权
  • 平行结转分步法各步骤的费用
  • 应付账款转营业外收入进项税转出
  • 报关单保费000/0.1/1
  • 基本户可以开立几个
  • 航空公司能开电动车吗
  • 本期应补退税额怎么算
  • 销项发票导出格式不对怎么办
  • 一般纳税人印花税是季报还是月报
  • 出口销售收入会计分录
  • 收到外国客户的祝福怎么回复
  • 委托加工物资贷方
  • 处置全资子公司税务处理
  • 药品回扣2021
  • 股东拿不到钱
  • 收到销项负数发票
  • 股东分红如何合理节税
  • 企业固定资产出租取得的收入属于
  • 房产税计税依据房产原值怎么算
  • 销售折让的税收分类编码
  • 税务公司属于什么性质
  • 企业增加的留存收益计入
  • 营改增后视同销售的税务处理怎么做?
  • 税收筹划有哪些特点?
  • Win11不支持鼠标宏
  • 银行承兑汇票有纸质的吗
  • 如果注册资本没有到账如何处理
  • 出纳交接工作注意
  • 小规模纳税企业在应交增值税明细科目
  • 域名服务费属于什么会计科目
  • Windows10开始菜单透明
  • PHP:pg_untrace()的用法_PostgreSQL函数
  • 冲销去年多计提所得税怎么做
  • 同业代付会计分录
  • 收到汽车维修费的会计分录
  • 柏林亚历山大广场1980
  • php二维数组查询指定值
  • 公司出租房屋如何给对方单位开发票
  • 新成立公司建账
  • ChatGPT5是否会影响人类的发展和工作?
  • linux 高并发网络编程
  • 设备折旧费怎么使用
  • 汽车4s店,厂家返修
  • 开票额度超了怎么办
  • 购买的烟酒怎么入账
  • 免税普票要交企业所得税吗
  • PostgreSQL教程(十八):客户端命令(2)
  • 营改增后房屋租赁税变化
  • 直接计入所有者权益的利得和损失
  • 广告制作交文化建设税吗
  • 保洁服务属于
  • 未开票收入申报有税务风险吗
  • 实际成本法下采购材料的会计分录
  • 查询发票真伪
  • 实际报销金额
  • 房租收不回来会计分录
  • 企业票据贴现属于什么业务
  • 报销单可以当记账凭证吗
  • 购入固定资产的增值税计入成本吗
  • 申报高新技术企业专利有什么要求
  • 办公家具可以一次性抵扣吗?
  • 会计实务实操
  • access数据库导入到sqlserver
  • sql server使用
  • mysql@变量
  • win10预览版绿屏重启解决
  • Kaspersky Rescue Disk 2009.04.16 卡巴斯基救援盘
  • 正确安全管理操作手册
  • linux系统中make的用法
  • linux计划任务执行脚本
  • 环境搭建怎么写
  • java 解析javascript
  • jquery代码实现鼠标点击
  • jquery 使用
  • 申报税务登记日期怎么填
  • 走访情况登记表 不想写怎么办
  • 通讯费报销会计分录
  • 医保电子凭证怎么激活
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设