package Ġcom . example . macro benchmark . startup Ċ Ċ import Ġandroidx . benchmark . macro . Baseline Profile Mode Ċ import Ġandroidx . benchmark . macro . Compilation Mode Ċ import Ġandroidx . benchmark . macro . Startup Mode Ċ import Ġandroidx . benchmark . macro . Startup Timing Metric Ċ import Ġandroidx . benchmark . macro . junit 4 . Mac rob enchmark Rule Ċ import Ġandroidx . test . internal . runner . junit 4 . Android JUnit 4 Class Runner Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ /** Ċ Ġ* ĠRun Ġthis Ġbenchmark Ġfrom ĠStudio Ġto Ġsee Ġstartup Ġmeasurements , Ġand Ġcaptured Ġsystem Ġtraces Ċ Ġ* Ġfor Ġinvestig ating Ġyour Ġapp 's Ġperformance Ġfrom Ġa Ġcold Ġstate . Ċ Ġ*/ Ċ @ RunWith ( Android JUnit 4 Class Runner :: class ) Ċ class ĠC old Startup Benchmark Ġ: ĠAbstract Startup Benchmark ( Startup Mode . COL D ) Ċ Ċ /** Ċ Ġ* ĠRun Ġthis Ġbenchmark Ġfrom ĠStudio Ġto Ġsee Ġstartup Ġmeasurements , Ġand Ġcaptured Ġsystem Ġtraces Ċ Ġ* Ġfor Ġinvestig ating Ġyour Ġapp 's Ġperformance Ġfrom Ġa Ġwarm Ġstate . Ċ Ġ*/ Ċ @ RunWith ( Android JUnit 4 Class Runner :: class ) Ċ class ĠW arm Startup Benchmark Ġ: ĠAbstract Startup Benchmark ( Startup Mode . WAR M ) Ċ Ċ /** Ċ Ġ* ĠRun Ġthis Ġbenchmark Ġfrom ĠStudio Ġto Ġsee Ġstartup Ġmeasurements , Ġand Ġcaptured Ġsystem Ġtraces Ċ Ġ* Ġfor Ġinvestig ating Ġyour Ġapp 's Ġperformance Ġfrom Ġa Ġhot Ġstate . Ċ Ġ*/ Ċ @ RunWith ( Android JUnit 4 Class Runner :: class ) Ċ class ĠHot Startup Benchmark Ġ: ĠAbstract Startup Benchmark ( Startup Mode . HOT ) Ċ Ċ /** Ċ Ġ* ĠBase Ġclass Ġfor Ġbenchmarks Ġwith Ġdifferent Ġstartup Ġmodes . Ċ Ġ* ĠEnables Ġapp Ġstart ups Ġfrom Ġvarious Ġstates Ġof Ġbaseline Ġprofile Ġor Ġ[ Compilation Mode ] s . Ċ Ġ*/ Ċ abstract Ġclass ĠAbstract Startup Benchmark ( private Ġval Ġstartup Mode : ĠStartup Mode ) Ġ{ ĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġbenchmark Rule Ġ= ĠMac rob enchmark Rule () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġstartup No Compilation () Ġ= Ġstartup ( Compilation Mode . None ()) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġstartup Partial Compilation () Ġ= Ġstartup ( ĊĠĠĠĠĠĠĠ ĠCompilation Mode . Partial ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbaseline Profile Mode Ġ= ĠBase line Profile Mode . Disable , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwarm up Iterations Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġstartup Partial With Baseline Profiles () Ġ= ĊĠĠĠĠĠĠĠ Ġstartup ( Compilation Mode . Partial ( baseline Profile Mode Ġ= ĠBase line Profile Mode . Require )) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġstartup Full Compilation () Ġ= Ġstartup ( Compilation Mode . Full ()) ĊĊĠĠĠ Ġprivate Ġfun Ġstartup ( compilation Mode : ĠCompilation Mode ) Ġ= Ġbenchmark Rule . measure Repeated ( ĊĠĠĠĠĠĠĠ ĠpackageName Ġ= Ġ" com . example . macro benchmark . target ", ĊĠĠĠĠĠĠĠ Ġmetrics Ġ= ĠlistOf ( Startup Timing Metric ()), ĊĠĠĠĠĠĠĠ Ġcompilation Mode Ġ= Ġcompilation Mode , ĊĠĠĠĠĠĠĠ Ġiterations Ġ= Ġ 1 0 , ĊĠĠĠĠĠĠĠ Ġstartup Mode Ġ= Ġstartup Mode , ĊĠĠĠĠĠĠĠ Ġsetup Block Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpress Home () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity And Wait () ĊĠĠĠ Ġ} Ċ }