├── .gitignore ├── .idea ├── .gitignore ├── caches │ └── build_file_checksums.ser ├── codeStyles │ └── Project.xml ├── compiler.xml ├── gradle.xml ├── jarRepositories.xml ├── misc.xml └── vcs.xml ├── README.md ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── messagecanary-sample ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── example │ │ └── guoheng │ │ └── mytestapplication │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── guoheng │ │ │ └── mytestmsgcanaryapplication │ │ │ ├── MainActivity.java │ │ │ └── MainApplication.java │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── example │ └── guoheng │ └── mytestapplication │ └── ExampleUnitTest.java ├── messagecanary ├── .gitignore ├── build.gradle ├── docs │ └── 20210714171925.jpg ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── messagequeue │ │ └── messagecanary │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── messagequeue │ │ │ └── messagecanary │ │ │ ├── MessageCanary.java │ │ │ ├── MessageCanaryContext.java │ │ │ ├── messages │ │ │ ├── MessageCacheQueue.java │ │ │ ├── MessageFilter.java │ │ │ ├── MessageManager.java │ │ │ └── MessageMergeStrategy.java │ │ │ ├── monitor │ │ │ ├── AbstractSampler.java │ │ │ ├── BlockListener.java │ │ │ ├── CpuSampler.java │ │ │ ├── HandlerThreadFactory.java │ │ │ ├── LooperMonitor.java │ │ │ └── StackSampler.java │ │ │ └── utils │ │ │ ├── BlockInfo.java │ │ │ ├── PerformanceUtils.java │ │ │ └── ProcessUtils.java │ └── res │ │ └── values │ │ └── strings.xml │ └── test │ └── java │ └── com │ └── messagequeue │ └── messagecanary │ └── ExampleUnitTest.java └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/.gitignore -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/caches/build_file_checksums.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/.idea/caches/build_file_checksums.ser -------------------------------------------------------------------------------- /.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/.idea/codeStyles/Project.xml -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/.idea/compiler.xml -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/.idea/gradle.xml -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/.idea/jarRepositories.xml -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/.idea/misc.xml -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/.idea/vcs.xml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/README.md -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/gradlew.bat -------------------------------------------------------------------------------- /messagecanary-sample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /messagecanary-sample/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/build.gradle -------------------------------------------------------------------------------- /messagecanary-sample/proguard-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/proguard-rules.pro -------------------------------------------------------------------------------- /messagecanary-sample/src/androidTest/java/com/example/guoheng/mytestapplication/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/androidTest/java/com/example/guoheng/mytestapplication/ExampleInstrumentedTest.java -------------------------------------------------------------------------------- /messagecanary-sample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /messagecanary-sample/src/main/java/com/example/guoheng/mytestmsgcanaryapplication/MainActivity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/java/com/example/guoheng/mytestmsgcanaryapplication/MainActivity.java -------------------------------------------------------------------------------- /messagecanary-sample/src/main/java/com/example/guoheng/mytestmsgcanaryapplication/MainApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/java/com/example/guoheng/mytestmsgcanaryapplication/MainApplication.java -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/drawable-v24/ic_launcher_foreground.xml -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/drawable/ic_launcher_background.xml -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/layout/activity_main.xml -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/mipmap-anydpi-v26/ic_launcher.xml -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/values/colors.xml -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /messagecanary-sample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/main/res/values/styles.xml -------------------------------------------------------------------------------- /messagecanary-sample/src/test/java/com/example/guoheng/mytestapplication/ExampleUnitTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary-sample/src/test/java/com/example/guoheng/mytestapplication/ExampleUnitTest.java -------------------------------------------------------------------------------- /messagecanary/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /messagecanary/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/build.gradle -------------------------------------------------------------------------------- /messagecanary/docs/20210714171925.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/docs/20210714171925.jpg -------------------------------------------------------------------------------- /messagecanary/proguard-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/proguard-rules.pro -------------------------------------------------------------------------------- /messagecanary/src/androidTest/java/com/messagequeue/messagecanary/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/androidTest/java/com/messagequeue/messagecanary/ExampleInstrumentedTest.java -------------------------------------------------------------------------------- /messagecanary/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/MessageCanary.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/MessageCanary.java -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/MessageCanaryContext.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/MessageCanaryContext.java -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/messages/MessageCacheQueue.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/messages/MessageCacheQueue.java -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/messages/MessageFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/messages/MessageFilter.java -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/messages/MessageManager.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/messages/MessageManager.java -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/messages/MessageMergeStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/messages/MessageMergeStrategy.java -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/monitor/AbstractSampler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/monitor/AbstractSampler.java -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/monitor/BlockListener.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/monitor/BlockListener.java -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/monitor/CpuSampler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/monitor/CpuSampler.java -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/monitor/HandlerThreadFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/monitor/HandlerThreadFactory.java -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/monitor/LooperMonitor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/monitor/LooperMonitor.java -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/monitor/StackSampler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/monitor/StackSampler.java -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/utils/BlockInfo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/utils/BlockInfo.java -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/utils/PerformanceUtils.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/utils/PerformanceUtils.java -------------------------------------------------------------------------------- /messagecanary/src/main/java/com/messagequeue/messagecanary/utils/ProcessUtils.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/java/com/messagequeue/messagecanary/utils/ProcessUtils.java -------------------------------------------------------------------------------- /messagecanary/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /messagecanary/src/test/java/com/messagequeue/messagecanary/ExampleUnitTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/messagecanary/src/test/java/com/messagequeue/messagecanary/ExampleUnitTest.java -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/githubguoheng/MessageCanary/HEAD/settings.gradle --------------------------------------------------------------------------------