软件做为一个服务--Software as a service(SaaS)和云计算变得愈来愈流行,做为公司努力去减小相关的软件安装,升级,维护的开支的手段。数据库
这样的趋势也致使出现了一系列的网络服务,你能够以此来创建瘦客户端程序,利用丰富的网络服务来构建APP。服务器
如今的网络服务有好多,列出几个主要的:网络
1.Google Services APIs 分布式
区别与本地的Google APP,Google提供了网络版的API,使你可以去访问他们的日历,文档,博客,毕加索网络相册平台。这些APIs都是以XML做为数据交换。云计算
2.Yahoo!Pipes 队列
不是很懂。ip
3.Google App Engine文档
使用Google App Engine 你能够建立一个托管云,将手机端APP复杂的操做移到云端处理。Google还提供了Cloud Storage和Prediction APIs服务。博客
当你本身写个WEB服务,但是服务器你要本身维护的,而使用GAE,你的程序是基于Google的服务器的,你无需维护,Google帮你维护。io
具体细节请百度。
4.Amazon Web Service
Amazon提供了一系列的基于云端的服务,包括一些丰富的APIs服务来访问它的书,CD,DVD等一些媒体相关的数据库。Amazon还提供一个分布式的存储解决方案(Distributed storage solution --S3)和有弹性的云计算Elastic Compute Cloud(EC2)。
关于网络服务的细节这里不讨论了,你们有兴趣本身能够去百度。
这是典型的3G无线电状态机。
1.当链接活跃的时候,好比传输数据的时候,将处于Full Power状态。耗能是最多的。
2.Low Power 相对耗能是满状态的一半。
3.Stanby 低耗能状态,无须要活跃的链接。
此图可见,假设你下载只花1了秒钟,那么接着会有17秒的状态转化,这个转化时间也是耗电的。个人意思是,好比你每隔17秒下载1次,且每次都只下载1秒钟,可见这个电量白白被好废在状态转化上了。因此为何说1次性的预取数据多点。(固然不是说你老下载大量无用的数据,这个本身判断)
再者转回到活跃状态是有延迟的,因此你频繁断开,又链接,只会使延迟更明显。
你如何去下载数据,对你手机的电量影响很大。关于物理的知识就不解释了,须要注意点列出:
主要的原则就是:尽可能减小链接的次数,珍惜每次链接,尽量多得下载,而不是分开屡次下载。
1.预取数据 好比你APP刚启动,预先加载部分数据,而不是不间断下载更新。
2.批处理下载任务。好比这部分你要更新,那部分也要更新,你可能会所以建立2个或者多个链接,其实你能够将其加入队列,合适的时候,批处理更新。
3.重用已存在的链接,而不是建立一个新的。这样能够动态得减小延迟,提供网络的表现。
4.重复下载的次数频率尽可能少。好比App更新的频率,设置默认的更新频率尽量低点,若是你的用户非要更新频繁点,那么你给他提供设置便可。