Coder Social home page Coder Social logo

alibaba / patrons Goto Github PK

View Code? Open in Web Editor NEW
426.0 6.0 49.0 6.69 MB

🎉 A framework for improving android 32bit app stability. (Alleviate crashes caused by insufficient virtual memory)

License: Other

CMake 0.30% C++ 0.44% Kotlin 1.53% C 90.63% Java 7.10%
android oom abort native-crash art region-space

patrons's Issues

伪装libart相同命名空间等相关问题

  1. 伪装命名空间问题
    // 找到 libart 中调用的 libartbase.so 中的方法 GetCmdLine, 没有特殊含义,仅仅是用来找一个和 libart.so 同一命名空间的函数来伪装身份
    xhook_register(".*/libart.so$", "_ZN3art10GetCmdLineEv", NULL, (void **) (&stub_method_in_art),
    NULL);

    LOGE("stub_method_in_art:%p", stub_method_in_art);

这里打印了stub_method_in_art发现是null,这个对于后面调用libart会不会有影响,实际上测试又看到是有效果的

  1. 看到HandleSignal(SIGSEGV)这个会不会影响崩溃捕捉

是否仅对64位架构的大RAM手机运行32位应用的场景有效果?

  1. 对于32位的低端设备(RAM较小)本身物理内存不多,缩减RegionSpace仅仅是把有限的空间让给了Native,而Java堆可分配的内存就相应变小了吧
  2. 对于64位高端设备,在运行32位应用时,是由于虚拟内存限制在4G以内,导致其无法利用手机空闲的内存,该方案可以多利用部分空间(对应缩减RegionSpace的内存大小)

该方案较适用于:32位且native内存申请较多的应用,特别是运行在64位设备的场景,这样理解对吗

Patrons用到的xhook是修改过的吗

你好,想了解下Patrons用到的xhook是修改过的吗,因为安装包大小的原因,打算使用工程里原有的xhook库,结果发现函数的定义与xhook原来的不同,想了解下,Patrons是否对xhook源码进行了修改,如果使用原生的xhook,是否有问题。

安装 demo 初始化失败

Infinix HOT 10 Lite,Android 10,armeabi-v7a
日志:
2024-01-25 14:29:34.910 13780-13780 Patrons-Native me.zhilong.tools.abortkiller.demo E [warning] debuggable is enable, will disable sgev protection, MUST CLOSE it before release.
2024-01-25 14:29:34.927 13780-13780 Patrons-Native me.zhilong.tools.abortkiller.demo E found exception signal 11, but not my business.
2024-01-25 14:29:34.929 13780-13780 libc me.zhilong.tools.abortkiller.demo A Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x200014 in tid 13780 (bortkiller.demo), pid 13780 (bortkiller.demo)
2024-01-25 14:29:34.992 13833-13833 DEBUG pid-13833 E failed to readlink /proc/13780/fd/77: No such file or directory
2024-01-25 14:29:34.993 13833-13833 DEBUG pid-13833 E failed to readlink /proc/13780/fd/86: No such file or directory
2024-01-25 14:29:35.050 13833-13833 DEBUG pid-13833 A *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2024-01-25 14:29:35.050 13833-13833 DEBUG pid-13833 A Build fingerprint: 'Infinix/X657B-OP/Infinix-X657B:10/QP1A.190711.020/DFJ-OP-220215V417:user/release-keys'
2024-01-25 14:29:35.050 13833-13833 DEBUG pid-13833 A Revision: '0'
2024-01-25 14:29:35.050 13833-13833 DEBUG pid-13833 A ABI: 'arm'
2024-01-25 14:29:35.062 13833-13833 DEBUG pid-13833 A Timestamp: 2024-01-25 14:29:35+0800
2024-01-25 14:29:35.062 13833-13833 DEBUG pid-13833 A pid: 13780, tid: 13780, name: bortkiller.demo >>> me.zhilong.tools.abortkiller.demo <<<
2024-01-25 14:29:35.062 13833-13833 DEBUG pid-13833 A uid: 10366
2024-01-25 14:29:35.062 13833-13833 DEBUG pid-13833 A signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x200014
2024-01-25 14:29:35.062 13833-13833 DEBUG pid-13833 A r0 00200014 r1 0020001c r2 00200080 r3 cf11a2c2
2024-01-25 14:29:35.062 13833-13833 DEBUG pid-13833 A r4 86ce7930 r5 86ce7964 r6 86ce793c r7 befc4c80
2024-01-25 14:29:35.062 13833-13833 DEBUG pid-13833 A r8 86ce3da8 r9 86ce7944 r10 86ce7924 r11 86ce792c
2024-01-25 14:29:35.063 13833-13833 DEBUG pid-13833 A ip afd4adf8 sp befc4c38 lr 86cdf807 pc 86cdf816
2024-01-25 14:29:35.657 13833-13833 DEBUG pid-13833 A
backtrace:
2024-01-25 14:29:35.657 13833-13833 DEBUG pid-13833 A #00 pc 00003816 /data/app/me.zhilong.tools.abortkiller.demo-nxipRswnHimM4tinipcGRQ==/lib/arm/libpatrons.so (NativeInit+1318) (BuildId: 7829499a0f6963993f285482acab85304948640b)
2024-01-25 14:29:35.657 13833-13833 DEBUG pid-13833 A #1 pc 00003a81 /data/app/me.zhilong.tools.abortkiller.demo-nxipRswnHimM4tinipcGRQ==/lib/arm/libpatrons.so (Java_com_alibaba_android_patronus__1Patrons__1_1init+256) (BuildId: 7829499a0f6963993f285482acab85304948640b)
2024-01-25 14:29:35.657 13833-13833 DEBUG pid-13833 A #2 pc 000dc519 /apex/com.android.runtime/lib/libart.so (art_quick_generic_jni_trampoline+40) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.657 13833-13833 DEBUG pid-13833 A #3 pc 000d7bc5 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.657 13833-13833 DEBUG pid-13833 A #4 pc 0042ea0b /apex/com.android.runtime/lib/libart.so (art_quick_invoke_static_stub+246) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.657 13833-13833 DEBUG pid-13833 A #5 pc 000dffcb /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+194) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.658 13833-13833 DEBUG pid-13833 A #6 pc 00210bf9 /apex/com.android.runtime/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+280) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.658 13833-13833 DEBUG pid-13833 A #7 pc 0020c53b /apex/com.android.runtime/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+774) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.658 13833-13833 DEBUG pid-13833 A #8 pc 00426127 /apex/com.android.runtime/lib/libart.so (MterpInvokeStatic+310) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.658 13833-13833 DEBUG pid-13833 A #9 pc 000d2994 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_static+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.658 13833-13833 DEBUG pid-13833 A #10 pc 0023d89e [anon:dalvik-classes.dex extracted in memory from /data/app/me.zhilong.tools.abortkiller.demo-nxipRswnHimM4tinipcGRQ==/base.apk] (com.alibaba.android.patronus._Patrons.__init+58)
2024-01-25 14:29:35.658 13833-13833 DEBUG pid-13833 A #11 pc 0042637f /apex/com.android.runtime/lib/libart.so (MterpInvokeStatic+910) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.658 13833-13833 DEBUG pid-13833 A #12 pc 000d2994 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_static+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.658 13833-13833 DEBUG pid-13833 A #13 pc 0023da26 [anon:dalvik-classes.dex extracted in memory from /data/app/me.zhilong.tools.abortkiller.demo-nxipRswnHimM4tinipcGRQ==/base.apk] (com.alibaba.android.patronus._Patrons.init+70)
2024-01-25 14:29:35.658 13833-13833 DEBUG pid-13833 A #14 pc 0042637f /apex/com.android.runtime/lib/libart.so (MterpInvokeStatic+910) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.658 13833-13833 DEBUG pid-13833 A #15 pc 000d2994 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_static+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.659 13833-13833 DEBUG pid-13833 A #16 pc 0023d2b2 [anon:dalvik-classes.dex extracted in memory from /data/app/me.zhilong.tools.abortkiller.demo-nxipRswnHimM4tinipcGRQ==/base.apk] (com.alibaba.android.patronus.Patrons.init+10)
2024-01-25 14:29:35.659 13833-13833 DEBUG pid-13833 A #17 pc 0042637f /apex/com.android.runtime/lib/libart.so (MterpInvokeStatic+910) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.659 13833-13833 DEBUG pid-13833 A #18 pc 000d2994 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_static+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.659 13833-13833 DEBUG pid-13833 A #19 pc 0033301c [anon:dalvik-classes.dex extracted in memory from /data/app/me.zhilong.tools.abortkiller.demo-nxipRswnHimM4tinipcGRQ==/base.apk] (me.zhilong.tools.abortkiller.demo.MainActivity.onClick+292)
2024-01-25 14:29:35.659 13833-13833 DEBUG pid-13833 A #20 pc 001ec475 /apex/com.android.runtime/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.8487160450262851165+192) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.659 13833-13833 DEBUG pid-13833 A #21 pc 001f0c59 /apex/com.android.runtime/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+124) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.659 13833-13833 DEBUG pid-13833 A #22 pc 00418469 /apex/com.android.runtime/lib/libart.so (artQuickToInterpreterBridge+808) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.659 13833-13833 DEBUG pid-13833 A #23 pc 000dc5a1 /apex/com.android.runtime/lib/libart.so (art_quick_to_interpreter_bridge+32) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.659 13833-13833 DEBUG pid-13833 A #24 pc 000d7bc5 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.660 13833-13833 DEBUG pid-13833 A #25 pc 0042e8f7 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub+250) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.660 13833-13833 DEBUG pid-13833 A #26 pc 000dffb7 /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+174) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.660 13833-13833 DEBUG pid-13833 A #27 pc 003704e7 /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+54) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.660 13833-13833 DEBUG pid-13833 A #28 pc 003717eb /apex/com.android.runtime/lib/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned int)+850) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.660 13833-13833 DEBUG pid-13833 A #29 pc 0031e9c3 /apex/com.android.runtime/lib/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+30) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.660 13833-13833 DEBUG pid-13833 A #30 pc 000bc82f /system/framework/arm/boot.oat (art_jni_trampoline+110) (BuildId: 4b12c643cf2f244fc65e05a0bbf6e6e0f3fcdc4d)
2024-01-25 14:29:35.661 13833-13833 DEBUG pid-13833 A #31 pc 000d7bc5 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.661 13833-13833 DEBUG pid-13833 A #32 pc 0042e8f7 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub+250) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.661 13833-13833 DEBUG pid-13833 A #33 pc 000dffb7 /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+174) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.661 13833-13833 DEBUG pid-13833 A #34 pc 00210bf9 /apex/com.android.runtime/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+280) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.661 13833-13833 DEBUG pid-13833 A #35 pc 0020c53b /apex/com.android.runtime/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+774) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.661 13833-13833 DEBUG pid-13833 A #36 pc 00423bc9 /apex/com.android.runtime/lib/libart.so (MterpInvokeVirtual+556) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.661 13833-13833 DEBUG pid-13833 A #37 pc 000d2814 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_virtual+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.661 13833-13833 DEBUG pid-13833 A #38 pc 001047fe [anon:dalvik-classes.dex extracted in memory from /data/app/me.zhilong.tools.abortkiller.demo-nxipRswnHimM4tinipcGRQ==/base.apk] (androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick+46)
2024-01-25 14:29:35.662 13833-13833 DEBUG pid-13833 A #39 pc 004252b9 /apex/com.android.runtime/lib/libart.so (MterpInvokeInterface+1432) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.662 13833-13833 DEBUG pid-13833 A #40 pc 000d2a14 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_interface+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.662 13833-13833 DEBUG pid-13833 A #41 pc 001a1ed8 /system/framework/framework.jar (android.view.View.performClick+108)
2024-01-25 14:29:35.662 13833-13833 DEBUG pid-13833 A #42 pc 004248eb /apex/com.android.runtime/lib/libart.so (MterpInvokeSuper+1858) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.662 13833-13833 DEBUG pid-13833 A #43 pc 000d2894 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_super+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.662 13833-13833 DEBUG pid-13833 A #44 pc 00251d5e [anon:dalvik-classes.dex extracted in memory from /data/app/me.zhilong.tools.abortkiller.demo-nxipRswnHimM4tinipcGRQ==/base.apk] (com.google.android.material.button.MaterialButton.performClick+6)
2024-01-25 14:29:35.663 13833-13833 DEBUG pid-13833 A #45 pc 00423e19 /apex/com.android.runtime/lib/libart.so (MterpInvokeVirtual+1148) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.663 13833-13833 DEBUG pid-13833 A #46 pc 000d2814 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_virtual+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.663 13833-13833 DEBUG pid-13833 A #47 pc 001a1f0a /system/framework/framework.jar (android.view.View.performClickInternal+6)
2024-01-25 14:29:35.663 13833-13833 DEBUG pid-13833 A #48 pc 00425c89 /apex/com.android.runtime/lib/libart.so (MterpInvokeDirect+980) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.663 13833-13833 DEBUG pid-13833 A #49 pc 000d2914 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_direct+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.663 13833-13833 DEBUG pid-13833 A #50 pc 0019d5f0 /system/framework/framework.jar (android.view.View.access$3500)
2024-01-25 14:29:35.663 13833-13833 DEBUG pid-13833 A #51 pc 0042637f /apex/com.android.runtime/lib/libart.so (MterpInvokeStatic+910) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.663 13833-13833 DEBUG pid-13833 A #52 pc 000d2994 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_static+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.663 13833-13833 DEBUG pid-13833 A #53 pc 0017ac28 /system/framework/framework.jar (android.view.View$PerformClick.run+16)
2024-01-25 14:29:35.663 13833-13833 DEBUG pid-13833 A #54 pc 004252b9 /apex/com.android.runtime/lib/libart.so (MterpInvokeInterface+1432) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.663 13833-13833 DEBUG pid-13833 A #55 pc 000d2a14 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_interface+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.664 13833-13833 DEBUG pid-13833 A #56 pc 002ed794 /system/framework/framework.jar (android.os.Handler.handleCallback+4)
2024-01-25 14:29:35.664 13833-13833 DEBUG pid-13833 A #57 pc 0042637f /apex/com.android.runtime/lib/libart.so (MterpInvokeStatic+910) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.664 13833-13833 DEBUG pid-13833 A #58 pc 000d2994 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_static+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.664 13833-13833 DEBUG pid-13833 A #59 pc 002ed600 /system/framework/framework.jar (android.os.Handler.dispatchMessage+8)
2024-01-25 14:29:35.664 13833-13833 DEBUG pid-13833 A #60 pc 00423e19 /apex/com.android.runtime/lib/libart.so (MterpInvokeVirtual+1148) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.664 13833-13833 DEBUG pid-13833 A #61 pc 000d2814 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_virtual+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.664 13833-13833 DEBUG pid-13833 A #62 pc 00311e7e /system/framework/framework.jar (android.os.Looper.loop+490)
2024-01-25 14:29:35.664 13833-13833 DEBUG pid-13833 A #63 pc 0042637f /apex/com.android.runtime/lib/libart.so (MterpInvokeStatic+910) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.664 13833-13833 DEBUG pid-13833 A #64 pc 000d2994 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_static+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.664 13833-13833 DEBUG pid-13833 A #65 pc 00186f42 /system/framework/framework.jar (android.app.ActivityThread.main+214)
2024-01-25 14:29:35.664 13833-13833 DEBUG pid-13833 A #66 pc 001ec475 /apex/com.android.runtime/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.8487160450262851165+192) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.664 13833-13833 DEBUG pid-13833 A #67 pc 001f0c59 /apex/com.android.runtime/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+124) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.665 13833-13833 DEBUG pid-13833 A #68 pc 00418469 /apex/com.android.runtime/lib/libart.so (artQuickToInterpreterBridge+808) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.665 13833-13833 DEBUG pid-13833 A #69 pc 000dc5a1 /apex/com.android.runtime/lib/libart.so (art_quick_to_interpreter_bridge+32) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.665 13833-13833 DEBUG pid-13833 A #70 pc 000d7bc5 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.665 13833-13833 DEBUG pid-13833 A #71 pc 0042ea0b /apex/com.android.runtime/lib/libart.so (art_quick_invoke_static_stub+246) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.665 13833-13833 DEBUG pid-13833 A #72 pc 000dffcb /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+194) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.665 13833-13833 DEBUG pid-13833 A #73 pc 003704e7 /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+54) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.666 13833-13833 DEBUG pid-13833 A #74 pc 003717eb /apex/com.android.runtime/lib/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned int)+850) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.666 13833-13833 DEBUG pid-13833 A #75 pc 0031e9c3 /apex/com.android.runtime/lib/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+30) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.666 13833-13833 DEBUG pid-13833 A #76 pc 000bc82f /system/framework/arm/boot.oat (art_jni_trampoline+110) (BuildId: 4b12c643cf2f244fc65e05a0bbf6e6e0f3fcdc4d)
2024-01-25 14:29:35.666 13833-13833 DEBUG pid-13833 A #77 pc 000d7bc5 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.666 13833-13833 DEBUG pid-13833 A #78 pc 0042e8f7 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub+250) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.666 13833-13833 DEBUG pid-13833 A #79 pc 000dffb7 /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+174) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.666 13833-13833 DEBUG pid-13833 A #80 pc 00210bf9 /apex/com.android.runtime/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+280) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.667 13833-13833 DEBUG pid-13833 A #81 pc 0020c53b /apex/com.android.runtime/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+774) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.667 13833-13833 DEBUG pid-13833 A #82 pc 00423bc9 /apex/com.android.runtime/lib/libart.so (MterpInvokeVirtual+556) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.667 13833-13833 DEBUG pid-13833 A #83 pc 000d2814 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_virtual+20) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.667 13833-13833 DEBUG pid-13833 A #84 pc 0034b82a /system/framework/framework.jar (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)
2024-01-25 14:29:35.667 13833-13833 DEBUG pid-13833 A #85 pc 001ec475 /apex/com.android.runtime/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.8487160450262851165+192) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.667 13833-13833 DEBUG pid-13833 A #86 pc 001f0c59 /apex/com.android.runtime/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+124) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.667 13833-13833 DEBUG pid-13833 A #87 pc 00418469 /apex/com.android.runtime/lib/libart.so (artQuickToInterpreterBridge+808) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.667 13833-13833 DEBUG pid-13833 A #88 pc 000dc5a1 /apex/com.android.runtime/lib/libart.so (art_quick_to_interpreter_bridge+32) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.667 13833-13833 DEBUG pid-13833 A #89 pc 008e1713 /system/framework/arm/boot-framework.oat (com.android.internal.os.ZygoteInit.main+1818) (BuildId: 6b3167ca2c4358d3adb77dfb4e823ad340b67859)
2024-01-25 14:29:35.667 13833-13833 DEBUG pid-13833 A #90 pc 000d7bc5 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.667 13833-13833 DEBUG pid-13833 A #91 pc 0042ea0b /apex/com.android.runtime/lib/libart.so (art_quick_invoke_static_stub+246) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.667 13833-13833 DEBUG pid-13833 A #92 pc 000dffcb /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+194) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.668 13833-13833 DEBUG pid-13833 A #93 pc 003704e7 /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+54) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.668 13833-13833 DEBUG pid-13833 A #94 pc 00370327 /apex/com.android.runtime/lib/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+290) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.668 13833-13833 DEBUG pid-13833 A #95 pc 002bcb9d /apex/com.android.runtime/lib/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+460) (BuildId: b45bd6ac649e4357be4d189e3725f556)
2024-01-25 14:29:35.668 13833-13833 DEBUG pid-13833 A #96 pc 0007e351 /system/lib/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+28) (BuildId: 1c0457db4aed719524595f47d7cdab3c)
2024-01-25 14:29:35.668 13833-13833 DEBUG pid-13833 A #97 pc 00080819 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vectorandroid::String8 const&, bool)+568) (BuildId: 1c0457db4aed719524595f47d7cdab3c)
2024-01-25 14:29:35.668 13833-13833 DEBUG pid-13833 A #98 pc 000022ff /system/bin/app_process32 (main+698) (BuildId: 4cbc5273c32c6d105808e3f1587df29b)
2024-01-25 14:29:35.668 13833-13833 DEBUG pid-13833 A #99 pc 00059901 /apex/com.android.runtime/lib/bionic/libc.so (__libc_init+68) (BuildId: a962268e3809e338988d53f3074e9afd)
2024-01-25 14:29:35.668 13833-13833 DEBUG pid-13833 A #100 pc 0000202f /system/bin/app_process32 (_start_main+38) (BuildId: 4cbc5273c32c6d105808e3f1587df29b)
2024-01-25 14:29:35.669 13833-13833 DEBUG pid-13833 A #101 pc 00004456 anonymous:b11ff000

只能缓解崩溃吧,另外对gc 速度是否有影响

我的理解是只能缓解崩溃,检测到vss临界点的时候减少region space大小,但是vss仍然是增加,会再次达到大小region space。
但是不能达到就会减少region space大小

另外art gc会不会受到影响,因为目前art gc 几种gc策略都在用,空间减少可能会受到影响吧

non_free_region_index_limit_可以删去,在代码中没有起到作用

[/art/runtime/gc/space/region_space.h]

761   // Invariant (verified by RegionSpace::VerifyNonFreeRegionLimit):
762   //   for all `i >= non_free_region_index_limit_`, `regions_[i].IsFree()` is true.
763   size_t non_free_region_index_limit_ GUARDED_BY(region_lock_);

non_free_region_index_limit_注释中的invariant并非表示这个变量是不变量,注意后面的引号,它指的是762行这个关系式是不变的。实际上non_free_region_index_limit_会在每次CC Collector的ReclaimPhase更新(如下代码所示),每次回收后都会更新。
而我注意到代码中并没有对non_free_region_index_limit_实时更新,只在init阶段赋值,因此代码中记录的non_free_region_index_limit_是滞后的。

[/art/runtime/gc/collector/concurrent_copying.cc]

2743     {
2744       TimingLogger::ScopedTiming split4("ClearFromSpace", GetTimings());
2745       region_space_->ClearFromSpace(&cleared_bytes, &cleared_objects, /*clear_bitmap*/ !young_gen_);

其实我明白你是为了防止new_size小于Java堆中已用空间的情况。但这种情况已经在RegionSpace::ClampGrowthLimit中的790行做了处理,所以不必担忧。而这个项目里的non_free_region_index_limit_可以删去,因为没有动态更新的话,这个变量的值也就失去了意义。

[/art/runtime/gc/space/region_space.cc]

786 void RegionSpace::ClampGrowthLimit(size_t new_capacity) {
787   MutexLock mu(Thread::Current(), region_lock_);
788   CHECK_LE(new_capacity, NonGrowthLimitCapacity());
789   size_t new_num_regions = new_capacity / kRegionSize;
790   if (non_free_region_index_limit_ > new_num_regions) {
791     LOG(WARNING) << "Couldn't clamp region space as there are regions in use beyond growth limit.";
792     return;
793   }

小米 11 初始化失败

I/Patrons: patrons start init, config = { debuggable=true, auto=true, periodOfShrink=0.76, shrinkStep=125, periodOfCheck=30, lowerLimit=384, recordInitResult=true }
E/Patrons-Native: [warning] debuggable is enable, will disable sgev protection, MUST CLOSE it before release.
D/Patrons-Native: register signal handler
I/Patrons-Native: signal handler reg success, old handler = 0xc323d2d8
D/Patrons-Native: start init, sdk = 1.0.6.3, api = 30, debuggable = 1, protect = 1, heap size config = 512m
D/Patrons-Native: [device] brand = Xiaomi
D/Patrons-Native: [device] device = M2011K2C
D/Patrons-Native: [device] fingerprint = Xiaomi/venus/venus:11/RKQ1.200928.002/21.3.25:user/release-keys
D/Patrons-Native: [instance] a_ = 0xe2dde809, art = /apex/com.android.art/lib/libart.so
D/Patrons-Native: [instance] r_ = 0xf3300400
D/Patrons-Native: [instance] h_ = 0xf330bf00
D/Patrons-Native: [instance] r2 = 0xf3396b30
D/Patrons-Native: [instance] b = 0xf3396b44, e = 0xf3396b48, l = 0xf3396b4c
D/Patrons-Native: [instance] n2 = 0xf3396c70
D/Patrons-Native: [instance] r3 = 0xf3396c90
D/Patrons-Native: [instance] m_ = 0xee4233c5
E/Patrons-Native: final check failed, m_ 33 not match l_ 5
E/Patrons: patrons native init failed !

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.