GithubHelp home page GithubHelp logo

shixinzhang / androidbitmapmonitor Goto Github PK

View Code? Open in Web Editor NEW
561.0 14.0 55.0 3.46 MB

A bitmap memory usage monitor for Android. Android 图片内存分析工具,可以帮助发现应用的图片使用是否合理。

License: Apache License 2.0

Java 69.40% CMake 1.91% C++ 28.19% C 0.49%
android bitmap memory monitor ndk performance

androidbitmapmonitor's People

Contributors

awxy avatar folderv avatar linchangjian avatar shixinzhang avatar yibaoshan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

androidbitmapmonitor's Issues

你好请教个问题

_ZN7android6bitmap12createBitmapEP7_JNIEnvPNS_6BitmapEiP11_jbyteArrayP8_jobjecti 你好请教个问题 这个函数符号你是怎么获取的

查看图片的时候黑屏

接入SDK之后,点击进入图片捕获列表,点击其中的图片进行查看详情。绝大部分图片都是黑的,没有显示出来。

环境:
android 10,pixel3.
implementation "com.github.bumptech.glide:annotations:4.12.0"

screen_cap_20230222_155504

调用start时crash

版本1.1.0
手机 pixel 3XL
已开启悬浮窗权限

Caused by android.app.BackgroundServiceStartNotAllowedException
Not allowed to start service Intent { flg=0x10000000 cmp=com.hk.azal.live/top.shixinzhang.bitmapmonitor.ui.FloatWindowService }: app is in background uid UidRecord{8e253cc u0a217 TRNB idle change:uncached procs:0 seq(0,0,0)}

(Bug)初始化偶现崩溃问题

implementation "io.github.shixinzhang:android-bitmap-monitor:1.1.0"

        val ctx = ContextUtils.getApplication()
        val cacheFile = File(ctx.cacheDir, "bitmap_monitor")
        if (!cacheFile.exists()) {
            cacheFile.mkdirs()
        }
        val config = BitmapMonitor.Config.Builder()
            // 检查图片是否被回收的间隔,单位:秒 (建议不要太频繁,默认 5秒)
            .checkRecycleInterval(10L)
            // 获取堆栈的阈值,当一张图片占据的内存超过这个数值后就会去抓栈
            .getStackThreshold(100 * 1024L)
            // 还原图片的阈值,当一张图占据的内存超过这个数值后,就会还原出一张原始图片
            .restoreImageThreshold(100 * 1024L)
            .restoreImageDirectory(cacheFile.absolutePath)
            // 是否展示悬浮窗,可实时查看内存大小(建议只在 debug 环境打开)
            .showFloatWindow(true)
            // 重启后清除本地所有文件(目前不支持展示历史数据,所以默认清除本地所有)
            .clearAllFileWhenRestartApp(true)
            // 运行时超出阈值就清理
            .clearFileWhenOutOfThreshold(false)
            // 本地图片缓存写入上限,单位为 byte,默认大小为 512MB,超出后会立刻删除
            .diskCacheLimitBytes(100 * 1024 * 1024L)
            .isDebug(true)
            .context(ctx)
            .build()
        BitmapMonitor.init(config)
java.lang.NullPointerException
	at java.io.File.<init>(File.java:283)
	at top.shixinzhang.bitmapmonitor.internal.BitmapFileWatcher.loadAllFileToMemory(BitmapFileWatcher.java:103)
	at top.shixinzhang.bitmapmonitor.internal.BitmapFileWatcher.$r8$lambda$hPaKz5jeLLZ9ow_IMx3UtPDtUb8(Unknown Source:0)
	at top.shixinzhang.bitmapmonitor.internal.BitmapFileWatcher$$ExternalSyntheticLambda0.run(Unknown Source:0)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
	at java.lang.Thread.run(Thread.java:923)

Android 5.0 下与 relinker 同时使用 出现 native crash

signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: 'art/runtime/check_jni.cc:65] JNI DETECTED ERROR IN APPLICATION: JNI FindClass called with pending exception 'java.lang.NoSuchFieldError' thrown in java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.String):-2'

期望添加debug依赖

大佬参考下leakcanary,期望开发期间能发现问题并修正,但是正式上线后不希望有代码编译运行到用户真实环境中。

调用BitmapMonitor.start()直接抛Native Crash崩溃

堆栈如下

2023-07-26 14:16:29.428 13596-13596 libc com.test.bitmapmonitor A Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 13596 (.bitmapmonitor), pid 13596 (.bitmapmonitor)
2023-07-26 14:16:29.949 13846-13846 DEBUG pid-13846 A Cmdline: com.test.bitmapmonitor
2023-07-26 14:16:29.949 13846-13846 DEBUG pid-13846 A pid: 13596, tid: 13596, name: .bitmapmonitor >>> com.test.bitmapmonitor <<<
2023-07-26 14:16:29.949 13846-13846 DEBUG pid-13846 A #1 pc 000000000000c5c8 /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/lib/arm64/libshadowhook.so (shadowhook_get_prev_func+12) (BuildId: a5399f0d11c4ec1244543780f0a31f2d62857f74)
2023-07-26 14:16:29.949 13846-13846 DEBUG pid-13846 A #2 pc 0000000000015ea4 /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/lib/arm64/libbitmapmonitor.so (create_bitmap_proxy(_JNIEnv*, void*, int, _jbyteArray*, _jobject*, int)+84) (BuildId: 97cfffda4c5cd149ae932e86d1bde0a7a74def05)
2023-07-26 14:16:29.949 13846-13846 DEBUG pid-13846 A #101 pc 00000000002ef00c [anon:dalvik-classes.dex extracted in memory from /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/base.apk]
2023-07-26 14:16:29.949 13846-13846 DEBUG pid-13846 A #107 pc 00000000002ef6b0 [anon:dalvik-classes.dex extracted in memory from /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/base.apk]
2023-07-26 14:16:29.950 13846-13846 DEBUG pid-13846 A #110 pc 00000000001e51a6 [anon:dalvik-classes.dex extracted in memory from /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/base.apk]
2023-07-26 14:16:29.950 13846-13846 DEBUG pid-13846 A #116 pc 00000000001d829a [anon:dalvik-classes.dex extracted in memory from /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/base.apk]
2023-07-26 14:16:29.950 13846-13846 DEBUG pid-13846 A #122 pc 00000000001ecaac [anon:dalvik-classes.dex extracted in memory from /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/base.apk]
2023-07-26 14:16:29.950 13846-13846 DEBUG pid-13846 A #128 pc 00000000001bae64 [anon:dalvik-classes.dex extracted in memory from /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/base.apk]
2023-07-26 14:16:29.950 13846-13846 DEBUG pid-13846 A #134 pc 00000000001bb278 [anon:dalvik-classes.dex extracted in memory from /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/base.apk]
2023-07-26 14:16:29.950 13846-13846 DEBUG pid-13846 A #140 pc 00000000001bb44a [anon:dalvik-classes.dex extracted in memory from /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/base.apk]
2023-07-26 14:16:29.950 13846-13846 DEBUG pid-13846 A #146 pc 00000000001b6e26 [anon:dalvik-classes.dex extracted in memory from /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/base.apk]
2023-07-26 14:16:29.950 13846-13846 DEBUG pid-13846 A #152 pc 00000000001b07f0 [anon:dalvik-classes.dex extracted in memory from /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/base.apk]
2023-07-26 14:16:29.950 13846-13846 DEBUG pid-13846 A #158 pc 00000000001afd06 [anon:dalvik-classes.dex extracted in memory from /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/base.apk]
2023-07-26 14:16:29.950 13846-13846 DEBUG pid-13846 A #164 pc 000000000034c918 [anon:dalvik-classes.dex extracted in memory from /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/base.apk]
2023-07-26 14:16:29.950 13846-13846 DEBUG pid-13846 A #170 pc 00000000001ee030 [anon:dalvik-classes12.dex extracted in memory from /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/base.apk!classes12.dex]
2023-07-26 14:16:29.950 13846-13846 DEBUG pid-13846 A #176 pc 00000000000e4e14 [anon:dalvik-classes3.dex extracted in memory from /data/app/~~lPYxXLZv8f1xO1wzNk9G8g==/com.test.bitmapmonitor-9YoIsvqFII-QxHf9xKU2GQ==/base.apk!classes3.dex]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.