位置: 编程技术 - 正文

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

  • 民营医院一般纳税人帐务处理视频税收风险
  • 工业企业取得土地使用权专用发票可以抵扣吗?
  • 公司向个人借款是否合法
  • 员工借款业务流程
  • 固定资产直接计入成本的规定
  • 简易征收适用哪条法律
  • 自然人城建税减半征收
  • 税收优惠退税账户是什么
  • 第一季度亏损第=季度盈利但累计还是亏损要交所得税吗?
  • 一般纳税人销售使用过的固定资产
  • 固定资产不能抵扣进项税额
  • 材料收到发票未到怎么记账
  • 业务宣传及广告费超比例
  • 房产税法律制度的重要内容
  • 企业接收政府划入资产的税务处理办法
  • 房地产企业作为甲方开票给施工单位
  • 滞留票是什么意思
  • 提成工资可以扣发吗?
  • 服务行业也有合伙人吗
  • 广告公司税收分析
  • 2018税务金四发展预测会有哪些?
  • 税收征管法实施条例
  • 统一社会信用代码查询和税号一致吗
  • 对方公司税务注销了发票没有开给我怎么办
  • 财务兼职怎么算工资
  • 代账会计的职责
  • 在Win7系统中,文件的属性包括
  • 商业保险费包括哪些
  • 销项税多了冲销部分的怎么做账
  • win7的文件系统
  • 完美解决win11间歇性掉线
  • 固定资产减值如何确定
  • win10系统多任务功能的快捷键
  • hp workwise service是什么
  • 收取逾期包装物押金怎么算税
  • FUXA个人学习总结(一)
  • 以前年度未入账固定资产账务处理
  • 办公室装修费怎么入账
  • 总分机构 分总机构
  • 来料加工企业需注意什么
  • 企业纳税额包括个人所得税吗
  • vue3项目搭建
  • 宝塔怎么做?
  • 金税盘服务费可以跨年抵扣
  • 职工教育经费扣除限额怎么算
  • 清算的基本流程
  • 社保所属期怎么填
  • 商场收取租金如何入账
  • 公司广告费用咨询费都应当作为管理费用对还是错
  • 哪个命令可以对mysql数据库做完全备份
  • 预缴了增值税在申报增值税时申报
  • 预收货款未发货怎么办
  • 企业构建固定资产无形资产和其他长期资产支付
  • 广告制作费属于现代服务吗
  • 没有开票的收入要交增值税吗
  • 非营利医疗机构是什么单位
  • xtrabackup备份原理
  • mysql5717安装及配置超详细教程
  • win10蓝屏怎么修复系统
  • Windows Server 2008域环境下组策略两例应用
  • 苹果的mac系统
  • windrv.exe
  • macbook os x
  • win10 Build 10565中Edge浏览器新增对HTML5视频的播放控制及下载
  • linux文本模式无法打字
  • win7系统桌面右键没有个性化
  • win7如何查询电脑使用记录
  • bios升级失败后如何恢复
  • linux查看hz
  • js实现功能
  • css教程推荐
  • ssh连不上centos
  • 怎么用批处理显示文字
  • 安卓拍照闪退
  • js中的类是什么
  • 如何使用jquery实现点击按钮弹出一个对话框
  • js类的定义方法
  • 网上跨区预缴
  • 广东地税服务电话
  • 中央财经大学法学院
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设