有效控制android应用程序的耗电量

有效控制android应用程序的耗电量

ID:5331473

大小:214.96 KB

页数:6页

时间:2017-12-08

有效控制android应用程序的耗电量_第1页
有效控制android应用程序的耗电量_第2页
有效控制android应用程序的耗电量_第3页
有效控制android应用程序的耗电量_第4页
有效控制android应用程序的耗电量_第5页
资源描述:

《有效控制android应用程序的耗电量》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、有效控制Android应用程序的耗电量首先我们来看看Android手机的电量都主要消耗在了什么地方:显而易见,大部分的电都消耗在了网络连接、GPS、传感器上了。简单的说也就是主要在以下情况下耗电比较多:1、大数据量的传输。2、不停的在网络间切换。3、解析大量的文本数据。那么我们怎么样来改善一下我们的程序呢?1、在需要网络连接的程序中,首先检查网络连接是否正常,如果没有网络连接,那么就不需要执行相应的程序。检查网络连接的方法如下:12ConnectivityManagermConnectivity;34TelephonyMa

2、nagermTelephony;56……78//检查网络连接,如果无网络可用,就不需要进行连网操作等910NetworkInfoinfo=mConnectivity.getActiveNetworkInfo();1112if(info==null

3、

4、1314!mConnectivity.getBackgroundDataSetting()){1516returnfalse;1718}1920//判断网络连接类型,只有在3G或wifi里进行一些数据更新。2122intnetType=info.getType();2324in

5、tnetSubtype=info.getSubtype();2526if(netType==ConnectivityManager.TYPE_WIFI){2728returninfo.isConnected();2930}elseif(netType==ConnectivityManager.TYPE_MOBILE3132&&netSubtype==TelephonyManager.NETWORK_TYPE_UMTS3334&&!mTelephony.isNetworkRoaming()){3536returninfo.i

6、sConnected();3738}else{3940returnfalse;4142}432、使用效率高的数据格式和解析方法。通过测试发现,目前主流的数据格式,使用树形解析(如DOM)和流的方式解析(SAX)对比情况如下图所示:很明显,使用流的方式解析效率要高一些,因为DOM解析是在对整个文档读取完后,再根据节点层次等再组织起来。而流的方式是边读取数据边解析,数据读取完后,解析也就完毕了。在数据格式方面,JSON和Protobuf效率明显比XML好很多,XML和JSON大家都很熟悉,Protobuf是Google提出的,

7、一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据串行化方法。有兴趣的可以到官方去看看更多的信息。从上面的图中我们可以得出结论就是尽量使用SAX等边读取边解析的方式来解析数据,针对移动设备,最好能使用JSON之类的轻量级数据格式为佳。3、目前大部门网站都支持GZIP压缩,所以在进行大数据量下载时,尽量使用GZIP方式下载。使用方法如下所示:4445importjava.util.zip.GZIPInputStream;4647HttpGetrequest=4849newHttpGet("http://ex

8、ample.com/gzipcontent");5051HttpResponseresp=5253newDefaultHttpClient().execute(request);5455HttpEntityentity=response.getEntity();5657InputStreamcompressed=entity.getContent();5859InputStreamrawData=newGZIPInputStream(compressed);60使用GZIP压缩方式下载数据,能减少网络流量,下图为使用GZI

9、P方式获取包含1800个主题的RSS对比情况。4、其它一些优化方法:回收java对象,特别是较大的java对像61XmlPullParserFactoryandBitmapFactory6263Matcher.reset(newString)forregex6465StringBuilder.sentLength(0)66对定位要求不是太高的话尽量不要使用GPS定位,可能使用wifi和移动网络cell定位即可。GPS定位消耗的电量远远高于移动网络定位。尽量不要使用浮点运算。获取屏幕尺寸等信息可以使用缓存技术,不需要进行多次

10、请求。很多人开发的程序后台都会一个service不停的去服务器上更新数据,在不更新数据的时候就让它sleep,这种方式是非常耗电的,通常情况下,我们可以使用AlarmManager来定时启动服务。如下所示,第30分钟执行一次。67AlarmManageram=(AlarmManager)6869cont

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。