android学习笔记之使用网络资源(二)

本文探讨了SaaS和云计算趋势下流行的网络服务,如Google Services APIs、Yahoo! Pipes、Google App Engine及Amazon Web Service,并介绍了如何通过优化数据下载策略以减少移动应用的能耗。

使用网络服务

软件作为一个服务--Software as a service(SaaS)和云计算变得越来越流行,作为公司努力去减少相关的软件安装,升级,维护的开支的手段。

这样的趋势也导致出现了一系列的网络服务,你可以以此来建立瘦客户端程序,利用丰富的网络服务来构建APP。

现在的网络服务有好多,列出几个主要的:

1.Google Services APIs

区别与本地的Google APP,Google提供了网络版的API,使你能够去访问他们的日历,文档,博客,毕加索网络相册平台。这些APIs都是以XML作为数据交换。

2.Yahoo!Pipes

不是很懂。

3.Google App Engine

使用Google App Engine 你可以创建一个托管云,将手机端APP复杂的操作移到云端处理。Google还提供了Cloud Storage和Prediction APIs服务。

当你自己写个WEB服务,可是服务器你要自己维护的,而使用GAE,你的程序是基于Google的服务器的,你无需维护,Google帮你维护。

具体细节请百度。

4.Amazon Web Service

Amazon提供了一系列的基于云端的服务,包括一些丰富的APIs服务来访问它的书,CD,DVD等一些媒体相关的数据库。Amazon还提供一个分布式的存储解决方案(Distributed storage solution --S3)和有弹性的云计算Elastic Compute Cloud(EC2)。

 

关于网络服务的细节这里不讨论了,大家有兴趣自己可以去百度。

 

最好的方式去下载数据,而不是耗光你的电

mobile_radio_state_machine.png

这是典型的3G无线电状态机。

1.当连接活跃的时候,比如传输数据的时候,将处于Full Power状态。耗能是最多的。

2.Low Power 相对耗能是满状态的一半。

3.Stanby 低耗能状态,无需要活跃的连接。

此图可见,假设你下载只花1了秒钟,那么接着会有17秒的状态转化,这个转化时间也是耗电的。我的意思是,比如你每隔17秒下载1次,且每次都只下载1秒钟,可见这个电量白白被好废在状态转化上了。所以为什么说1次性的预取数据多点。(当然不是说你老下载大量无用的数据,这个自己判断)

再者转回到活跃状态是有延迟的,所以你频繁断开,又连接,只会使延迟更明显。

 

你如何去下载数据,对你手机的电量影响很大。关于物理的知识就不解释了,需要注意点列出:

主要的原则就是:尽量减少连接的次数,珍惜每次连接,尽可能多得下载,而不是分开多次下载。

1.预取数据  比如你APP刚启动,预先加载部分数据,而不是不间断下载更新。

2.批处理下载任务。比如这部分你要更新,那部分也要更新,你可能会因此创建2个或者多个连接,其实你可以将其加入队列,合适的时候,批处理更新。

3.重用已存在的连接,而不是创建一个新的。这样可以动态得减少延迟,提供网络的表现。

4.重复下载的次数频率尽量少。比如App更新的频率,设置默认的更新频率尽可能低点,如果你的用户非要更新频繁点,那么你给他提供设置即可。

转载于:https://my.oschina.net/wangjunhe/blog/103575

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值