package Ġcom . s usion . rabbit . monitor . instance Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . s usion . rabbit . base . Rabbit Monitor Protocol Ċ import Ġcom . s usion . rabbit . base . entities .* Ċ import Ġcom . s usion . rabbit . storage . Rabbit Storage Ċ Ċ /** Ċ Ġ* Ġs usion wang Ġat Ġ 2 0 2 0 - 0 1 - 1 4 Ċ Ġ* Ġ åħ¨å±Ģ æĢ§èĥ½ çĽĳ æİ§ æ¨¡å¼ı Ċ Ġ*/ Ċ internal Ġclass ĠRabbit App Performance Monitor ( override Ġvar ĠisOpen : ĠBoolean Ġ= Ġfalse ) Ġ: ĠRabbit Monitor Protocol Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġapp Performance Info : ĠRabbit App Performance Info ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġdata Storage Listener Ġ= Ġobject Ġ: ĠRabbit Storage . EventListener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Storage Data ( obj : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( app Performance Info Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelated Id To App Performance Info ( obj ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġsave Monitor Info ( false ) ĊĠĠĠĠĠĠĠ Ġapp Performance Info Ġ= Ġnull ĊĠĠĠĠĠĠĠ ĠRabbit Storage . removeEventListener ( data Storage Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġapp Performance Info Ġ= ĠRabbit App Performance Info () ĊĠĠĠĠĠĠĠ Ġapp Performance Info ?. time Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġapp Performance Info ?. endTime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ ĠRabbit Storage . addEventListener ( data Storage Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrelated Id To App Performance Info ( obj : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( obj ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRabbit FPS Info Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Performance Info ?. fps Ids Ġ= Ġ"${ app Performance Info ?. fps Ids Ġ?: Ġ"" }${ obj . id }& " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRabbit Memory Info Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Performance Info ?. memory Ids Ġ= Ġ"${ app Performance Info ?. memory Ids Ġ?: Ġ"" }${ obj . id }& " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRabbit App Start Speed Info Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Performance Info ?. app Start Id Ġ= Ġobj . id . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRabbit Page Speed Info Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Performance Info ?. page Speed Ids Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ app Performance Info ?. page Speed Ids Ġ?: Ġ"" }${ obj . id }& " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRabbit Block Frame Info Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Performance Info ?. block Ids Ġ= Ġ"${ app Performance Info ?. block Ids Ġ?: Ġ"" }${ obj . id }& " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRabbit Slow MethodInfo Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Performance Info ?. slow Method Ids Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ app Performance Info ?. slow Method Ids Ġ?: Ġ"" }${ obj . id }& " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsave Monitor Info ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Monitor Info ( isRunning : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( app Performance Info Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Performance Info ?. isRunning Ġ= Ġis Running ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Performance Info ?. endTime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRabbit Storage . update OrCreate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRabbit App Performance Info :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Performance Info !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Performance Info ?. id Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Monitor Info () Ġ= ĠRabbit Monitor Protocol . GLOBAL _ MONITOR Ċ Ċ }