Github GitHub - bytedance/memory-leak-detector
source link: https://github.com/bytedance/memory-leak-detector
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
MemoryLeakDetector
MemoryLeakDetector is a native memory leak monitoring tool developed by Xigua video android team. It has simple access, wide monitoring range, excellent performance and good stability. It is widely used in native-memory-leak-governance of ByteDance's major apps, and the benefits are significant!
Apps using MemoryLeakDetector
Get started
Step 1: Add the JitPack repository to your build file
allprojects { repositories { maven { url 'https://jitpack.io' } } }
Step 2: Add the dependency
dependencies { implementation 'com.github.bytedance:memory-leak-detector:0.0.7' }
Step 3: Add code for simple usage (This step is not necessary for using broadcast control)
// Using MemoryLeakDetector to monitor specified so Raphael.start( Raphael.MAP64_MODE|Raphael.ALLOC_MODE|0x0F0000|1024, "/storage/emulated/0/raphael", // need sdcard permission ".*libxxx\\.so$" );
// Using MemoryLeakDetector to monitor current process Raphael.start( Raphael.MAP64_MODE|Raphael.ALLOC_MODE|0x0F0000|1024, "/storage/emulated/0/raphael", // need sdcard permission null );
## broadcast command for specified so adb shell am broadcast -a com.bytedance.raphael.ACTION_START -f 0x01000000 --es configs 0xCF0400 --es regex ".*libXXX\\.so$"
## broadcast command (RaphaelReceiver component process) adb shell am broadcast -a com.bytedance.raphael.ACTION_START -f 0x01000000 --es configs 0xCF0400
Step 4: Print result
// code control Raphael.print();
## broadcast command adb shell am broadcast -a com.bytedance.raphael.ACTION_PRINT -f 0x01000000
Step 5: Analysis
## analysis report ## -r: report path ## -o: output file name ## -s: symbol file dir python library/src/main/python/raphael.py -r report -o leak-doubts.txt -s ./symbol/
## analysis maps ## -m: maps file path python library/src/main/python/mmap.py -m maps
Step 6: Stop monitoring
// code control Raphael.stop();
## broadcast command adb shell am broadcast -a com.bytedance.raphael.ACTION_STOP -f 0x01000000
Extra
Support
License
Copyright (c) 2021 ByteDance Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK