Android官方文档---优化下载让网络访问更高效(四)



使用DDMS网络流量工具来识别关注的区间

Android的DDMS(Dalvik Debug Monitor Server)包含了详细的网络使用情况选项卡,这使得跟踪应用程序使用网络情况成为可能。使用这个工具,可以监视应用程序传输数据的方式和时机,并在此基础上可以优化底层相关的代码。

图3显示了大约每隔15秒钟传输一次少量数据时网络使用情况,建议通过预先获取每个请求的数据或打包上传的数据来改善网络使用效率。

图3. 使用DDMS跟踪网络的使用情况

通过监视数据传输的频率和每次连接的传输的数据量,可以识别出应用程序耗电较多的区域。通常,应该寻找那些可以被延迟的短时峰值,或是那些由于被抢占而延后的传输。

要更好的识别传输峰值所产生的原因,就要使用流量统计API,它允许你使用TrafficStats.setThreadStatsTag()方法来标记线程内部发生的数据传输情况,也可以使用tagSocket()和untagSocket()方法手动的标记(和解除标记)单独的网络套接字。例如:

TrafficStats.setThreadStatsTag(0xF00D);
TrafficStats
.tagSocket(outputSocket);
// Transfer data using socket
TrafficStats.untagSocket(outputSocket);

ApacheHttpClientURLConnection类库会基于当前的getThreadStatsTag()方法的返回值来自动的标记网络套接字。这些类库也可以通过活动的保持池(keep-alive pools)标记网络套接字,并在回收时解除标记。

TrafficStats.setThreadStatsTag(0xF00D);
try
{
  // Make network request usingHttpClient.execute()
} finally {
  TrafficStats.clearThreadStatsTag();
}

网络套接字标记在Android4.0以后被支持,但是实时的统计结果只会被显示在运行Android4.0.3以后的设备上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值