位置: 编程技术 - 正文

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

  • 一般纳税人的现金收入
  • 制造费用的结转公式
  • 税务ukey使用教程视频
  • 企业以买一赠一
  • 抵扣的发票可以部分红冲吗
  • 收入支出结余公式原理
  • 红字发票需要认证吗之前的发票还有用吗
  • 进销存账需要合并吗
  • 弥补以前年度亏损会计分录
  • 年未决算的现金利润怎么算
  • 个人购买房产是指什么
  • 出纳都需要做什么表格
  • 长期借款借方登记归还的本金和利息
  • 开出产品折扣的发票怎么入账?
  • 报关单增值税税单收货人更改
  • 不同项目之间进项税能否抵扣?
  • 一般纳税人有哪些费用
  • 物业会计科目设置
  • 个体户需要申报工资薪金吗
  • 委托收款有哪些
  • 资产减值损失填在资产负债表哪里
  • 代订住宿费可以开专票吗
  • 资产收购的特殊性税务处理方法
  • 股票质押得到的钱怎么算
  • 外聘人才一次性工资费用入账什么分录?
  • 华硕p8h61主板升级更换什么主板合适
  • 会计差错更正账务处理 对股价影响
  • 申报补贴项目 审计
  • yii2.0使用Plupload实现带缩放功能的多图上传
  • 共用水电无法取水怎么办
  • python中各种颜色
  • 上级拨付的债券会计分录
  • 购买财务软件的费用
  • 工业企业制造费用包括
  • chat怎么用
  • string对象放在哪里
  • return函数
  • ps的cc和sp
  • 什么叫python
  • 外贸进出口企业注册资金
  • 预存电费余额怎么突然多了
  • js与或运算符
  • 两个公司的钱转来转去
  • 捐款怎么组织
  • 分成收入计入什么科目
  • 交通运输企业有什么优惠政策
  • 出口货物的报关时间为货物运抵海关
  • 分公司民事责任由谁承担
  • 增值税一般纳税人是什么意思
  • 先付款后开票怎样写证明
  • 股权转让怎么做账
  • 建筑公司工程款税率
  • 销售商品返还现金
  • 列入固定资产的标准
  • 销售商品房适用的增值税税率是多少
  • 利息收入算什么
  • 现金发放工资有什么风险
  • 企业所得税费用标准
  • 租赁行业的成本
  • 小规模免增值税吗
  • xp系统控制面板在哪里打开
  • 路由怎么配
  • mac10.15系统
  • winxp系统停止服务
  • win 7操作系统安装
  • 虚拟机的ubuntu
  • WINDOWS操作系统属于什么操作系统
  • windows8.1 preview
  • xp更改系统区域设置
  • centos简易安装
  • win10系统打开cad出现致命错误
  • linux系统怎么更改语言
  • opengl入门视频教程
  • bootstrap表单模板
  • linux使用adb
  • 超链接打开比较合适的方式是什么
  • python2设置环境变量
  • 小规模纳税企业的增值税税率一律为3%
  • 丹阳税务局一分局领导
  • 山西土地增值税清算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设