位置: 编程技术 - 正文

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政策
  • 厂家订货会合同
  • 去年多计提的生育津贴
  • 补记上年度计提所得税费用的会计分录
  • 制造费用折旧费怎么结转
  • 发票复印件能报账吗
  • 营改增后小规模ktv怎么纳税
  • 独生子女费属于什么费用
  • 计提缴纳社保的会计分录
  • 股东增资印花税税目
  • 以前年度多做了收入怎样调账
  • 附加税零申报怎么申报
  • 个税在发工资的时候直接扣下来吗
  • 收取对方损失赔偿
  • 企业高管需要什么证书
  • 退税技术有什么影响
  • 总分公司分税
  • 政府补助具有哪些特点?
  • 小规模餐饮企业增值税申报表填写
  • 企业接受母公司代为缴纳税款会计分录
  • php设计模式及使用场景
  • 同一控制下的控股合并中,合并方个别财务报表
  • 哪一年底,由linux基金会成立?
  • 消费税的会计分录怎么写
  • 深入解析wordpress
  • 售后回租融资租赁案例
  • 空调维修费进什么会计科目
  • cookie与session的作用和原理
  • 集团公司对子公司的内部审计
  • 小微企业免税额怎么计算
  • 申报增值税税额正确,销售额少0.94
  • 劳务派遣公司的注册资本最低限额为
  • 用于应酬用的烟有哪些
  • 建筑施工企业增值税税率调整时间
  • 其他应收款借贷方表示什么意思
  • 员工持股平台合伙企业如何设立
  • 认缴制无实收资本怎么算
  • 红字发票是可以抵扣吗
  • 营改增后的计税方式
  • 企业向个人借款协议范本
  • 个税申报赡养老人可以填公婆吗
  • 工会筹备金有优惠政策吗
  • 年末财务报表是什么
  • 费用报销的程序是什么
  • 土地使用权转让合法吗
  • 小规模纳税人利润表季报
  • 政府会计制度应收账款坏账准备
  • 银行承兑汇票背书转让会计分录
  • 实际成本法下采购材料的会计分录
  • 进项税留底怎么处理
  • 发放股票股利如何影响计算基本每股收益
  • 本期预付的费用属于本期费用吗
  • 服务业收入的会计分录
  • 装修费用怎么结算
  • 年数总和法和双倍余额递减法的公式
  • 残保金计算人数1.02怎么计算
  • 净资产总计等于什么
  • Ubuntu下mysql安装和操作图文教程
  • redhat安装yum
  • win8连接wifi界面消失
  • centos安装v2
  • 微软内测
  • win7提示计算机内存不足
  • javascript字符串大小写转换
  • cocos2dx schedule
  • javascript基于
  • 命令行输入以下哪个命令可以画出样条曲线
  • javascript基础入门教程
  • 你知道什么是布
  • 简单的智能家居
  • windows安装程序安装在哪里
  • 住房货币化什么意思
  • 增值税发票综合服务平台升级
  • 哪些保险有免赔额
  • 关税由谁来承担
  • 微信 税务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设