You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 7055ed1
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CHANGELOG.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,15 @@
2
2
3
3
## Unreleased
4
4
5
+
### Features
6
+
7
+
- Use Android's `ProfilingManager` (Perfetto) for continuous profiling on API 35+ devices ([#5251](https://github.com/getsentry/sentry-java/pull/5251))
8
+
- On API 35+ devices, continuous profiling now automatically uses Android's system `ProfilingManager` with Perfetto-based stack sampling, providing lower-overhead and more accurate profiles. No configuration change is required.
9
+
- Devices below API 35 keep using the legacy `Debug`-based profiler.
10
+
- Added an `enableLegacyProfiling` option (default `true`) to disable the legacy `Debug`-based profiler. Setting it to `false` disables continuous profiling on API < 35 devices as well as transaction-based profiling (`profilesSampleRate`/`profilesSampler`) on all devices, since transaction-based profiling is not supported by Perfetto.
11
+
- It can also be configured via the `io.sentry.profiling.enable-legacy-profiling` manifest flag.
12
+
- See the [Android profiling docs](https://docs.sentry.io/platforms/android/profiling/) for details.
13
+
5
14
### Behavioral Changes
6
15
7
16
- The outbox and cache directories are no longer created by `Sentry.init` ([#5792](https://github.com/getsentry/sentry-java/pull/5792))
Copy file name to clipboardExpand all lines: sentry-android-core/api/sentry-android-core.api
+18Lines changed: 18 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -362,6 +362,24 @@ public final class io/sentry/android/core/NetworkBreadcrumbsIntegration : io/sen
362
362
public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V
363
363
}
364
364
365
+
public class io/sentry/android/core/PerfettoContinuousProfiler : io/sentry/IContinuousProfiler, io/sentry/transport/RateLimiter$IRateLimitObserver {
366
+
public fun <init> (Lio/sentry/ILogger;Lio/sentry/android/core/internal/util/SentryFrameMetricsCollector;Lio/sentry/util/LazyEvaluator$Evaluator;Ljava/util/function/Supplier;)V
367
+
public fun close (Z)V
368
+
public fun getChunkId ()Lio/sentry/protocol/SentryId;
369
+
public fun getProfilerId ()Lio/sentry/protocol/SentryId;
370
+
public fun isRunning ()Z
371
+
public fun onRateLimitChanged (Lio/sentry/transport/RateLimiter;)V
372
+
public fun reevaluateSampling ()V
373
+
public fun startProfiler (Lio/sentry/ProfileLifecycle;Lio/sentry/TracesSampler;)V
374
+
public fun stopProfiler (Lio/sentry/ProfileLifecycle;)V
375
+
}
376
+
377
+
public class io/sentry/android/core/PerfettoProfiler {
378
+
public fun <init> (Landroid/content/Context;Lio/sentry/ILogger;Lio/sentry/ISentryExecutorService;)V
379
+
public fun endAndCollect (Ljava/util/function/Consumer;)V
380
+
public fun start (J)Z
381
+
}
382
+
365
383
public final class io/sentry/android/core/ScreenshotEventProcessor : io/sentry/EventProcessor {
366
384
public fun <init> (Lio/sentry/android/core/SentryAndroidOptions;Lio/sentry/android/core/BuildInfoProvider;Z)V
0 commit comments