Skip to content

Commit cfa4cc8

Browse files
committed
chore: snippets
1 parent d8c8080 commit cfa4cc8

2 files changed

Lines changed: 21 additions & 6 deletions

File tree

JankStatsSample/app/src/main/java/com/example/jankstats/JankAggregatorActivity.kt

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,54 +36,69 @@ import kotlinx.coroutines.asExecutor
3636
* receives data when a report is issued, either when the activity goes into the background
3737
* or if JankStatsAggregator issues the report itself.
3838
*/
39+
// [START aggregator_activity_init]
3940
class JankAggregatorActivity : AppCompatActivity() {
4041

42+
private lateinit var jankStatsAggregator: JankStatsAggregator
43+
// [START_EXCLUDE silent]
4144
private lateinit var binding: ActivityJankLoggingBinding
4245
private lateinit var navController: NavController
4346
private lateinit var appBarConfiguration: AppBarConfiguration
4447

45-
private lateinit var jankStatsAggregator: JankStatsAggregator
46-
48+
// [START jank_aggregator_listener]
4749
private val jankReportListener =
4850
JankStatsAggregator.OnJankReportListener { reason, totalFrames, jankFrameData ->
51+
// real app would do something more interesting than log this...
52+
4953
Log.v(
5054
"JankStatsSample",
51-
"*** Jank Report ($reason), totalFrames = $totalFrames, " +
55+
"*** Jank Report ($reason), " +
56+
"totalFrames = $totalFrames, " +
5257
"jankFrames = ${jankFrameData.size}"
5358
)
5459

5560
jankFrameData.forEach { frameData ->
5661
Log.v("JankStatsSample", frameData.toString())
5762
}
5863
}
64+
// [END jank_aggregator_listener]
65+
// [END_EXCLUDE silent]
5966

6067
override fun onCreate(savedInstanceState: Bundle?) {
6168
super.onCreate(savedInstanceState)
69+
// [START_EXCLUDE]
6270
binding = ActivityJankLoggingBinding.inflate(layoutInflater)
6371
setContentView(binding.root)
6472
setupUi()
65-
73+
// [END_EXCLUDE]
74+
// metrics state holder can be retrieved regardless of JankStats initialization
6675
val metricsStateHolder = PerformanceMetricsState.getForHierarchy(binding.root)
6776

77+
// initialize JankStats with aggregator for current window
6878
jankStatsAggregator = JankStatsAggregator(
6979
window,
7080
Dispatchers.Default.asExecutor(),
7181
jankReportListener
7282
)
7383

84+
// add activity name as state
7485
metricsStateHolder.state?.addState("Activity", javaClass.simpleName)
7586
}
87+
// [END aggregator_activity_init]
7688

89+
// [START aggregator_tracking_enabled]
7790
override fun onResume() {
7891
super.onResume()
7992
jankStatsAggregator.jankStats.isTrackingEnabled = true
8093
}
8194

8295
override fun onPause() {
8396
super.onPause()
97+
// before disabling tracking, issue the report with (optionally) specified reason
8498
jankStatsAggregator.issueJankReport("Activity paused")
8599
jankStatsAggregator.jankStats.isTrackingEnabled = false
86100
}
101+
// [END aggregator_tracking_enabled]
87102

88103
override fun onSupportNavigateUp(): Boolean {
89104
return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp()

JankStatsSample/app/src/main/java/com/example/jankstats/JankLoggingActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ import kotlinx.coroutines.asExecutor
3939
class JankLoggingActivity : AppCompatActivity() {
4040

4141
private lateinit var jankStats: JankStats
42-
43-
// [START_EXCLUDE]
42+
// [START_EXCLUDE silent]
4443
private lateinit var binding: ActivityJankLoggingBinding
4544
private lateinit var navController: NavController
4645
private lateinit var appBarConfiguration: AppBarConfiguration
4746

4847
// [START jank_frame_listener]
4948
private val jankFrameListener = JankStats.OnFrameListener { frameData ->
49+
// real app would do something more interesting than log this...
5050
Log.v("JankStatsSample", frameData.toString())
5151
}
5252
// [END jank_frame_listener]

0 commit comments

Comments
 (0)