\hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats}{}\doxysection{io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats Class Reference}
\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats}\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}


Statistics of a call session.  


\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a1876edaefa8eda36c0c1e31a64626f10}{total\+Duration}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_afe4d39b63ebc9e83406f3dcaf29f9da4}{tx\+Bytes}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a82cfdfb125cedff706140c2ee786ff20}{rx\+Bytes}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a340702d4a302ab0a2e235d814b1b0251}{tx\+K\+Bit\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a32bfc87d4522a1d5a0fb6831600c2834}{tx\+Audio\+Bytes}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a0f1aa9a2e3f4efb950a00376b009dd26}{rx\+Audio\+Bytes}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_ac79167ea0dd853c67103f30739c0d646}{tx\+Video\+Bytes}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a91e5bc727887f6b46ea3a79fcd72ea75}{rx\+Video\+Bytes}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a37be1e66d742e8720311733bec8c6f42}{rx\+K\+Bit\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a4a4b7e86dade5f80d674b6e7f8b4b37e}{tx\+Audio\+K\+Bit\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_aba6b9a40d41dbfda4569344598d8a71a}{rx\+Audio\+K\+Bit\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a8b61ef0156330ce2cec39821db60d22b}{tx\+Video\+K\+Bit\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a4e80928014fd8b792be1b63d48b5ae2b}{rx\+Video\+K\+Bit\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a0059c840dec4f4cc4ab5ae0d09a9e345}{lastmile\+Delay}}
\item 
double \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a14717174ee4a2eebd93f12b9abcc5137}{cpu\+Total\+Usage}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_afa64dad671b819aa3c6fc4ff83d7da96}{gateway\+Rtt}}
\item 
double \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a08203eeda8eeaed7c34c88814dedb6fd}{cpu\+App\+Usage}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a39ded8be1ea9ad9ad66e6bcc255c6ace}{users}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_ad6525de5099d62d23917d7b37efd4df8}{connect\+Time\+Ms}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a59a9368fb6d0f3dfae0042e84cd3caf6}{tx\+Packet\+Loss\+Rate}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a7f44aa4063d9cf4296943149f11d5f3e}{rx\+Packet\+Loss\+Rate}}
\item 
double \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a1aa26df05bd57a941173ee356b8fef5d}{memory\+App\+Usage\+Ratio}}
\item 
double \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_af226ffe325791fe74c5805d81c1f8e07}{memory\+Total\+Usage\+Ratio}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_aefef41dd77bc24a950c9a702782d6d8e}{memory\+App\+Usage\+In\+Kbytes}}
\item 
int \mbox{\hyperlink{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a38020295c5a3700853d6c20fd7801f35}{lan\+Accelerate\+State}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Statistics of a call session. 

\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a1876edaefa8eda36c0c1e31a64626f10}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a1876edaefa8eda36c0c1e31a64626f10}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!totalDuration@{totalDuration}}
\index{totalDuration@{totalDuration}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{totalDuration}{totalDuration}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+total\+Duration}

Call duration of the local user in seconds, represented by an aggregate value. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_afe4d39b63ebc9e83406f3dcaf29f9da4}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_afe4d39b63ebc9e83406f3dcaf29f9da4}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!txBytes@{txBytes}}
\index{txBytes@{txBytes}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{txBytes}{txBytes}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+tx\+Bytes}

The number of bytes sent. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a82cfdfb125cedff706140c2ee786ff20}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a82cfdfb125cedff706140c2ee786ff20}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!rxBytes@{rxBytes}}
\index{rxBytes@{rxBytes}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{rxBytes}{rxBytes}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+rx\+Bytes}

The number of bytes received. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a340702d4a302ab0a2e235d814b1b0251}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a340702d4a302ab0a2e235d814b1b0251}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!txKBitRate@{txKBitRate}}
\index{txKBitRate@{txKBitRate}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{txKBitRate}{txKBitRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+tx\+K\+Bit\+Rate}

The actual bitrate (Kbps) while sending the local video stream. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a32bfc87d4522a1d5a0fb6831600c2834}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a32bfc87d4522a1d5a0fb6831600c2834}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!txAudioBytes@{txAudioBytes}}
\index{txAudioBytes@{txAudioBytes}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{txAudioBytes}{txAudioBytes}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+tx\+Audio\+Bytes}

The total number of audio bytes sent, represented by an aggregate value. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a0f1aa9a2e3f4efb950a00376b009dd26}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a0f1aa9a2e3f4efb950a00376b009dd26}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!rxAudioBytes@{rxAudioBytes}}
\index{rxAudioBytes@{rxAudioBytes}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{rxAudioBytes}{rxAudioBytes}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+rx\+Audio\+Bytes}

The total number of audio bytes received, represented by an aggregate value. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_ac79167ea0dd853c67103f30739c0d646}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_ac79167ea0dd853c67103f30739c0d646}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!txVideoBytes@{txVideoBytes}}
\index{txVideoBytes@{txVideoBytes}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{txVideoBytes}{txVideoBytes}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+tx\+Video\+Bytes}

The total number of video bytes sent, represented by an aggregate value. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a91e5bc727887f6b46ea3a79fcd72ea75}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a91e5bc727887f6b46ea3a79fcd72ea75}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!rxVideoBytes@{rxVideoBytes}}
\index{rxVideoBytes@{rxVideoBytes}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{rxVideoBytes}{rxVideoBytes}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+rx\+Video\+Bytes}

The total number of video bytes received, represented by an aggregate value. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a37be1e66d742e8720311733bec8c6f42}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a37be1e66d742e8720311733bec8c6f42}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!rxKBitRate@{rxKBitRate}}
\index{rxKBitRate@{rxKBitRate}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{rxKBitRate}{rxKBitRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+rx\+K\+Bit\+Rate}

The receiving bitrate (Kbps). \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a4a4b7e86dade5f80d674b6e7f8b4b37e}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a4a4b7e86dade5f80d674b6e7f8b4b37e}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!txAudioKBitRate@{txAudioKBitRate}}
\index{txAudioKBitRate@{txAudioKBitRate}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{txAudioKBitRate}{txAudioKBitRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+tx\+Audio\+K\+Bit\+Rate}

The bitrate (Kbps) of sending the audio packet. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_aba6b9a40d41dbfda4569344598d8a71a}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_aba6b9a40d41dbfda4569344598d8a71a}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!rxAudioKBitRate@{rxAudioKBitRate}}
\index{rxAudioKBitRate@{rxAudioKBitRate}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{rxAudioKBitRate}{rxAudioKBitRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+rx\+Audio\+K\+Bit\+Rate}

The bitrate (Kbps) of receiving the audio. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a8b61ef0156330ce2cec39821db60d22b}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a8b61ef0156330ce2cec39821db60d22b}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!txVideoKBitRate@{txVideoKBitRate}}
\index{txVideoKBitRate@{txVideoKBitRate}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{txVideoKBitRate}{txVideoKBitRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+tx\+Video\+K\+Bit\+Rate}

The bitrate (Kbps) of sending the video. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a4e80928014fd8b792be1b63d48b5ae2b}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a4e80928014fd8b792be1b63d48b5ae2b}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!rxVideoKBitRate@{rxVideoKBitRate}}
\index{rxVideoKBitRate@{rxVideoKBitRate}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{rxVideoKBitRate}{rxVideoKBitRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+rx\+Video\+K\+Bit\+Rate}

The bitrate (Kbps) of receiving the video. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a0059c840dec4f4cc4ab5ae0d09a9e345}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a0059c840dec4f4cc4ab5ae0d09a9e345}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!lastmileDelay@{lastmileDelay}}
\index{lastmileDelay@{lastmileDelay}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{lastmileDelay}{lastmileDelay}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+lastmile\+Delay}

The client-\/to-\/server delay (milliseconds). \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a14717174ee4a2eebd93f12b9abcc5137}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a14717174ee4a2eebd93f12b9abcc5137}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!cpuTotalUsage@{cpuTotalUsage}}
\index{cpuTotalUsage@{cpuTotalUsage}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{cpuTotalUsage}{cpuTotalUsage}}
{\footnotesize\ttfamily double io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+cpu\+Total\+Usage}

The system C\+PU usage (\%). \begin{DoxyNote}{Note}

\begin{DoxyItemize}
\item The value of {\ttfamily cpu\+Total\+Usage} is always reported as 0 in the {\ttfamily on\+Leave\+Channel} callback.
\item As of Android 8.\+1, you cannot get the C\+PU usage from this attribute due to system limitations. 
\end{DoxyItemize}
\end{DoxyNote}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_afa64dad671b819aa3c6fc4ff83d7da96}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_afa64dad671b819aa3c6fc4ff83d7da96}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!gatewayRtt@{gatewayRtt}}
\index{gatewayRtt@{gatewayRtt}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{gatewayRtt}{gatewayRtt}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+gateway\+Rtt}

The round-\/trip time delay (ms) from the client to the local router. \begin{DoxyNote}{Note}
On Android, to get {\ttfamily gateway\+Rtt}, ensure that you add the {\ttfamily android.\+permission.\+A\+C\+C\+E\+S\+S\+\_\+\+W\+I\+F\+I\+\_\+\+S\+T\+A\+TE} permission after {\ttfamily $<$/application$>$} in the {\ttfamily Android\+Manifest.\+xml} file in your project. 
\end{DoxyNote}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a08203eeda8eeaed7c34c88814dedb6fd}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a08203eeda8eeaed7c34c88814dedb6fd}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!cpuAppUsage@{cpuAppUsage}}
\index{cpuAppUsage@{cpuAppUsage}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{cpuAppUsage}{cpuAppUsage}}
{\footnotesize\ttfamily double io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+cpu\+App\+Usage}

Application C\+PU usage (\%). \begin{DoxyNote}{Note}

\begin{DoxyItemize}
\item The value of {\ttfamily cpu\+App\+Usage} is always reported as 0 in the {\ttfamily on\+Leave\+Channel} callback.
\item As of Android 8.\+1, you cannot get the C\+PU usage from this attribute due to system limitations. 
\end{DoxyItemize}
\end{DoxyNote}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a39ded8be1ea9ad9ad66e6bcc255c6ace}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a39ded8be1ea9ad9ad66e6bcc255c6ace}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!users@{users}}
\index{users@{users}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{users}{users}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+users}

The number of users in the channel. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_ad6525de5099d62d23917d7b37efd4df8}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_ad6525de5099d62d23917d7b37efd4df8}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!connectTimeMs@{connectTimeMs}}
\index{connectTimeMs@{connectTimeMs}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{connectTimeMs}{connectTimeMs}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+connect\+Time\+Ms}

The duration (ms) between the S\+DK starts connecting and the connection is established. If the value reported is 0, it means invalid. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a59a9368fb6d0f3dfae0042e84cd3caf6}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a59a9368fb6d0f3dfae0042e84cd3caf6}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!txPacketLossRate@{txPacketLossRate}}
\index{txPacketLossRate@{txPacketLossRate}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{txPacketLossRate}{txPacketLossRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+tx\+Packet\+Loss\+Rate}

The packet loss rate (\%) from the client to the Agora server before applying the anti-\/packet-\/loss algorithm. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a7f44aa4063d9cf4296943149f11d5f3e}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a7f44aa4063d9cf4296943149f11d5f3e}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!rxPacketLossRate@{rxPacketLossRate}}
\index{rxPacketLossRate@{rxPacketLossRate}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{rxPacketLossRate}{rxPacketLossRate}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+rx\+Packet\+Loss\+Rate}

The packet loss rate (\%) from the Agora server to the client before using the anti-\/packet-\/loss method. \mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a1aa26df05bd57a941173ee356b8fef5d}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a1aa26df05bd57a941173ee356b8fef5d}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!memoryAppUsageRatio@{memoryAppUsageRatio}}
\index{memoryAppUsageRatio@{memoryAppUsageRatio}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{memoryAppUsageRatio}{memoryAppUsageRatio}}
{\footnotesize\ttfamily double io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+memory\+App\+Usage\+Ratio}

The memory ratio occupied by the app (\%). \begin{DoxyNote}{Note}
This value is for reference only. Due to system limitations, you may not get this value. 
\end{DoxyNote}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_af226ffe325791fe74c5805d81c1f8e07}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_af226ffe325791fe74c5805d81c1f8e07}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!memoryTotalUsageRatio@{memoryTotalUsageRatio}}
\index{memoryTotalUsageRatio@{memoryTotalUsageRatio}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{memoryTotalUsageRatio}{memoryTotalUsageRatio}}
{\footnotesize\ttfamily double io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+memory\+Total\+Usage\+Ratio}

The memory occupied by the system (\%). \begin{DoxyNote}{Note}
This value is for reference only. Due to system limitations, you may not get this value. 
\end{DoxyNote}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_aefef41dd77bc24a950c9a702782d6d8e}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_aefef41dd77bc24a950c9a702782d6d8e}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!memoryAppUsageInKbytes@{memoryAppUsageInKbytes}}
\index{memoryAppUsageInKbytes@{memoryAppUsageInKbytes}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{memoryAppUsageInKbytes}{memoryAppUsageInKbytes}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+memory\+App\+Usage\+In\+Kbytes}

The memory size occupied by the app (KB). \begin{DoxyNote}{Note}
This value is for reference only. Due to system limitations, you may not get this value. 
\end{DoxyNote}
\mbox{\Hypertarget{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a38020295c5a3700853d6c20fd7801f35}\label{classio_1_1agora_1_1rtc2_1_1_i_rtc_engine_event_handler_1_1_rtc_stats_a38020295c5a3700853d6c20fd7801f35}} 
\index{io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}!lanAccelerateState@{lanAccelerateState}}
\index{lanAccelerateState@{lanAccelerateState}!io.agora.rtc2.IRtcEngineEventHandler.RtcStats@{io.agora.rtc2.IRtcEngineEventHandler.RtcStats}}
\doxysubsubsection{\texorpdfstring{lanAccelerateState}{lanAccelerateState}}
{\footnotesize\ttfamily int io.\+agora.\+rtc2.\+I\+Rtc\+Engine\+Event\+Handler.\+Rtc\+Stats.\+lan\+Accelerate\+State}

The local network acceleration state. A value of 1 indicates that local network acceleration is active, while 0 indicates it is inactive. @technical preview 