• 记录: Android测试网速实现


    2.3开始android提供了一个流量统计类, android.net.TrafficStats,通过使用这个类提供的方法,就可以获取设备流量。
    下面为该类中的常用方法,欢迎大家完善补充

    static long getMobileRxBytes() //获取通过Mobile连接收到的字节总数,不包含WiFi
    static long getMobileRxPackets() //获取Mobile连接收到的数据包总数
    static long getMobileTxBytes() //Mobile发送的总字节数
    static long getMobileTxPackets() //Mobile发送的总数据包数
    static long getTotalRxBytes() //获取总的接受字节数,包含Mobile和WiFi等
    static long getTotalRxPackets() //总的接受数据包数,包含Mobile和WiFi等
    static long getTotalTxBytes() //总的发送字节数,包含Mobile和WiFi等
    static long getTotalTxPackets() //发送的总数据包数,包含Mobile和WiFi等 
    static long getUidRxBytes(int uid) //获取某个网络UID的接受字节数,某一个进程的总接收量
    static long getUidTxBytes(int uid) //获取某个网络UID的发送字节数,某一个进程的总发送量

    实现方法

            var TrafficStats;  //TrafficStats类实例对象
            var total_data;    //总共接收到的流量
            var traffic_data;  //一定时间内接收到的流量
            var intervalId;    //定时器的返回值,用于控制计时器的停止
            document.addEventListener('plusready', function(){
                //console.log("所有plus api都应该在此事件发生后调用,否则会出现plus is undefined。"
                TrafficStats = plus.android.importClass("android.net.TrafficStats");
                total_data = TrafficStats.getTotalRxBytes();
                intervalId = window.setInterval("getNetSpeed()", 1000); 
            });
    
            /**
             * 核心方法
             */
            function getNetSpeed(){
                traffic_data = TrafficStats.getTotalRxBytes() - total_data;
                total_data = TrafficStats.getTotalRxBytes();
                document.getElementById("net").value = bytesToSize(traffic_data);
                console.log(bytesToSize(traffic_data));
            }
    
            //将byte自动转换为其他单位
            function bytesToSize(bytes) {
                if (bytes === 0) return '0 B/s';
                var k = 1000, // or 1024
                    sizes = ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'],
                    i = Math.floor(Math.log(bytes) / Math.log(k));
               return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];
            }
    

      原文连接: http://ask.dcloud.net.cn/article/773

    https://www.tongbiao.xyz/
  • 相关阅读:
    调用系统相机导致照片旋转问题的修复
    JavaLearning:日期操作类
    PHP实现事件机制实例分析
    按下葫芦起了瓢
    win系统下的eclipse连接和使用linux上的hadoop集群
    利用gradle加入构建版本
    从设计到实现,一步步教你实现Android-Universal-ImageLoader-辅助类
    I帧、P帧和B帧的特点
    tcp_tw_recycle检查tcp_timestamps的内核代码
    OBS源码编译开发
  • 原文地址:https://www.cnblogs.com/tongbiao/p/10177398.html
Copyright © 2020-2023  润新知