Coder Social home page Coder Social logo

alibaba / patrons Goto Github PK

View Code? Open in Web Editor NEW
424.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 People

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

patrons's Issues

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

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

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

小米 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 !

安装 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

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   }

Patrons用到的xhook是修改过的吗

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

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

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

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

伪装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)这个会不会影响崩溃捕捉

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.