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

原创
2013/01/21 22:52
阅读数 294

使用网络服务

软件作为一个服务--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)。

 

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

 

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

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

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

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

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

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

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

 

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

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

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

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

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

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

展开阅读全文
加载中
点击加入讨论🔥(1) 发布并加入讨论🔥
打赏
1 评论
9 收藏
0
分享
返回顶部
顶部