TrafficStats: относительно потребления данных Tx и Rx (getUidRx/TxBytes)

Время для меня, чтобы появиться ^^

Ну, я немного новичок в программировании, но я быстро расту ^^

Надеюсь, у меня не будет головной боли с моим английским '-'

Поэтому я здесь, чтобы поговорить о функции TrafficStats, и особенно о Rx.

На самом деле, на самом деле я разрабатываю приложение для Android, и в этом я показываю потребление данных об этих приложениях.

Я использую так "getUidRxBytes" и "getUidTxBytes" Так что, если я хорошо понимаю в документации Android, Tx передается, так что это Upload (UL), а Rx получен, так что это Download (DL), верно? Ооочень потребление данных должно быть добавлением обоих прав (UL + DL = потребление данных)???

Таким образом, я столкнулся с проблемой, прежде чем запустить мое приложение, вот мое потребление данных для этого приложения (в варианте использования данных):

Использование данных перед использованием приложения

Как видите, у меня использовано 588 МБ

Я запускаю свои приложения, я запускаю видео в этих приложениях, начиная с dailymotion (вызывая sdk этого), несколько раз, чтобы получить достаточно данных.

Мои приложения со счетчиками

Похоже, у меня 59,25 МБ используется в Tx и 122,08 МБ используется в Rx. (так должно быть 181,33 МБ)

Когда я оглядываюсь назад на потребление данных в этих приложениях (вроде этого):

(Не позволяйте размещать более 2 ссылок, так что поверьте мне: x)

Это показывает, на самом деле разницу (до 650 МБ), поэтому разница в 62 МБ

ТАК, кажется, что он совпадает только (с небольшой ошибкой%) с данными Tx (поэтому UL)

Я использую третью "сторону"(которую я не могу вам сказать), которая предоставляет мне данные, используемые в приложении, и они тоже совпадают только с Tx!

-> Мой вопрос: куда делись данные Rx (так DL)??? Вы не думаете, что есть проблема с методом Rx? (метод или функция? xD) или в Tx также, потому что это должно быть Tx + Rx, а не только Tx.

Приложение: вот мой код, где я использую TrafficStats

public class youtube_activity  extends AppCompatActivity {

private Handler mHandler1 = new Handler();
private Handler mHandler2 = new Handler();
private Handler mHandler3 = new Handler();

private long mStartRX1 = 0;
private long mStartTX1 = 0;
private long mStartRX2 = 0;
private long mStartTX2 = 0;
private long mStartRX3 = 0;
private long mStartTX3 = 0;
private long mStartRX4 = 0;
private long mStartTX4 = 0;

private PlayerWebView mVideoView;

int UID = android.os.Process.myUid();

public static final String API_KEY = "my API KEY";

public static final String VIDEO_ID = "e4gDgggbWAM";

int a,b,c,d,e,f;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.rien);

    mStartRX1 = TrafficStats.getUidRxBytes(UID);
    mStartTX1 = TrafficStats.getUidTxBytes(UID);


    mHandler1.postDelayed(mRunnable1, 1);

    mVideoView = (PlayerWebView) findViewById(R.id.youtube_player);
    mVideoView.load("x4ct1a5");

    Button button6 = (Button) findViewById(R.id.button6);
    button6.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            String mySdkKey = "Confidential";

            String myUserId = "Confidential";

            int sdIconId = R.drawable.ic_launcher2;


            Boolean sdkUserMessaging = true;


            mStartRX3 = TrafficStats.getUidRxBytes(UID);
            mStartTX3 = TrafficStats.getUidTxBytes(UID);


            mHandler2.postDelayed(mRunnable2, 1);

            mHandler3.postDelayed(mRunnable3, 1);

        }
    });

}

private final Runnable mRunnable1 = new Runnable() {
    public void run() {
        TextView RX1 = (TextView)findViewById(R.id.RX1);
        TextView TX1 = (TextView)findViewById(R.id.TX1);

        long rxBytes1 = (TrafficStats.getUidRxBytes(UID) - mStartRX1) ;
        RX1.setText(Long.toString(rxBytes1));
        long txBytes1 = (TrafficStats.getUidTxBytes(UID) - mStartTX1) ;
        TX1.setText(Long.toString(txBytes1));
        mHandler1.postDelayed(mRunnable1, 1);

    }
};

public final Runnable mRunnable2 = new Runnable() {
    public void run() {
        TextView RX2 = (TextView)findViewById(R.id.RX2);
        TextView TX2 = (TextView)findViewById(R.id.TX2);

        long rxBytes2 = (TrafficStats.getUidRxBytes(UID) - mStartRX3) ;
        RX2.setText(Long.toString(rxBytes2));
        long txBytes2 = (TrafficStats.getUidTxBytes(UID) - mStartTX3) ;
        TX2.setText(Long.toString(txBytes2));
        mHandler2.postDelayed(mRunnable2, 1);
    }
};

public final Runnable mRunnable3 = new Runnable() {
    public void run() {
        TextView RX1 = (TextView)findViewById(R.id.RX1);
        TextView TX1 = (TextView)findViewById(R.id.TX1);

        TextView RX2 = (TextView)findViewById(R.id.RX2);
        TextView TX2 = (TextView)findViewById(R.id.TX2);

        TextView RX3 = (TextView)findViewById(R.id.RX3);
        TextView TX3 = (TextView)findViewById(R.id.TX3);

        a = Integer.parseInt(RX1.getText().toString());
        b = Integer.parseInt(RX2.getText().toString());

        c = Integer.parseInt(TX1.getText().toString());
        d = Integer.parseInt(TX2.getText().toString());

        e = a - b;

        f=c-d;

        RX3.setText(Integer.toString(e));
        TX3.setText(Integer.toString(f));
        mHandler3.postDelayed(mRunnable3, 1);
    }
};}

0 ответов

Другие вопросы по тегам