shark-cli has a new experiment neo4j command that will convert a heap dump into an embedded Neo4j database and then open Neo4j Browser to explore the heap dump.
brew install leakcanary-shark
shark-cli --process com.example.app.debug neo4j
Other bug fixes and improvements ππ¨
π€ #2440 Add Android 13 POST_NOTICICATIONS permission as well as a new LeakCanary.Config.showNotifications config to disable notifications entirely.
This list reflects only a subset of all changes. For more details, see the 2.10 Milestone and the full diff.
Version 2.9.1 (2022-04-20)
Preface
What are some things you'd like to see in a future LeakCanary 3 version? Tell me on Twitter!
Some ideas I'm playing with:
Moving heap analysis leak visualisation to a separate single app (written with Compose!) available on the PlayStore.
Bumping Okio to 3.0
Multiplatform heap analysis? Analyze a JVM heap dump in your browser?!
Visualize the heap dominators / retained size as a treemap.
A backend for LeakCanary?
Anyway, that's still very much the future, let's talk about what's in 2.9.1 now!
New metrics in heap analysis metadata
I built LeakCanary to help fix leaks, but in doing so I accidentally wrote a fairly flexible heap dump parser. Since we're parsing the heap to find leaks anyway, we might as well report additional interesting metrics. Here's what you'll now see in the heap dump metadata:
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps com.squareup.leakcanary:leakcanary-android from 2.5 to 2.10.
Release notes
Sourced from com.squareup.leakcanary:leakcanary-android's releases.
Changelog
Sourced from com.squareup.leakcanary:leakcanary-android's changelog.
... (truncated)
Commits
9da58bd
Prepare 2.10 releaseebda255
Merge branch 'py/array_set_expander' into release_2.102e6488d
Merge pull request #2444 from square/py/close_crash_again6c61c09
Add custom expander for Android ArraySet5528f4d
Ignore failure to close file7d3fe63
Merge pull request #2440 from square/py/no_notif8141f03
Merge pull request #2441 from square/py/AnimationHandler_leakffb8bd5
Report AnimationHandler leakdd7c459
Merge pull request #2442 from square/py/storage9e3d3ee
Request permission on Android 13Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)