Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
386 commits
Select commit Hold shift + click to select a range
3b760ad
Merge branch 'feature/dev-fix-merged-smaps' into 'feature/dev' (merge…
gryamy Jul 19, 2022
665bb8f
Update battery healstats power cfg
kaedea Jul 19, 2022
ad8b4f5
memory-canary: add toBriefString api to MergedSmapsInfo
Yves0 Jul 19, 2022
6db4a05
Update battery power calc
kaedea Jul 20, 2022
922e33d
Add battery systemservice & idle power calc
kaedea Jul 20, 2022
07e4553
Update health stats feature
kaedea Jul 20, 2022
34129bd
Add power profiler avg uni
kaedea Jul 20, 2022
1766a11
Update battery power calculator
kaedea Jul 20, 2022
6473cad
Update healthstats snapshot meta data
kaedea Jul 21, 2022
c6710f9
Update battery event delegate with full charged
kaedea Jul 21, 2022
b8cd5c3
Update mobile power calculator
kaedea Jul 25, 2022
d6d3411
rename module matrix-jectl -> matrix-mallctl
Yves0 Jul 26, 2022
c029184
mallctl: remove useless code
Yves0 Jul 26, 2022
a2abe1f
mallctl: add mallopt
Yves0 Jul 26, 2022
46fb951
mallctl: fix pkg name
Yves0 Jul 26, 2022
d6aa3aa
mallctl: fix module name
Yves0 Jul 26, 2022
4e06799
Update power_profile.xml reading
kaedea Jul 26, 2022
1d0d58b
mallctl: move setRetain back
Yves0 Jul 27, 2022
cc188a7
mallctl: rename je setRetain api
Yves0 Jul 27, 2022
6493a10
Update power profile logging
kaedea Jul 27, 2022
8bf4c4e
Update battery capacity
kaedea Jul 27, 2022
f86184f
memory-canary: fix smaps entry pattern with no name entries
Yves0 Jul 28, 2022
c16db55
memory-canary: dump brief smaps info - break when pss < 1M
Yves0 Jul 28, 2022
9a4d581
Merge branch 'feature/dev-fix-merged-smaps' into 'feature/dev' (merge…
gryamy Jul 28, 2022
b3b6fd0
Update composite monitors fork
kaedea Jul 28, 2022
8c22e7b
mallctl: add madvise api
Yves0 Jul 29, 2022
bd2033a
Merge branch 'feature/dev' of https://git.woa.com/matrix/matrix into …
Yves0 Jul 29, 2022
1cd6721
Update battery power profile compat
kaedea Aug 1, 2022
f189233
lifecycle: add getMemInfo api for subordinate proceesses
Yves0 Jun 7, 2022
bbc0c39
Merge branch 'feature/dev-mallopt' into 'feature/dev' (merge request …
gryamy Aug 2, 2022
0b399c3
memory-canary: merge dumps of AppBgSumPssMonitor
Yves0 Jun 7, 2022
a9be8ed
Update battery cpu power calc
kaedea Aug 3, 2022
0383e2e
Fix ams running procs null-check errs
kaedea Aug 3, 2022
2a36049
Update comments
kaedea Aug 3, 2022
07cfe4c
Update comments
kaedea Aug 3, 2022
32d0154
Update cpuCalculator tests
kaedea Aug 3, 2022
4c5c27c
Merge branch 'feature/dev-ipc-pss' into 'feature/dev' (merge request …
gryamy Aug 4, 2022
660f0f6
Update battery sampler invalid value
kaedea Aug 4, 2022
6885c4d
memory-canary: add protection for getting mem info with ipc
Yves0 Aug 4, 2022
6494812
Merge branch 'feature/dev-ipc-pss' into 'feature/dev' (merge request …
gryamy Aug 4, 2022
ad47c93
Update cpu power calculators
kaedea Aug 4, 2022
a23777b
Merge branch 'feature/dev-battery-canary' into 'feature/dev' (merge r…
gryamy Aug 5, 2022
118e436
sample: fix compile error
Yves0 Aug 10, 2022
84f9783
Merge branch 'feature/dev-fix-sample' into 'feature/dev' (merge reque…
gryamy Aug 10, 2022
68d1833
memory-canary: add triggerTrim api
Yves0 Aug 11, 2022
84be67d
Fix battery util casting issue
kaedea Aug 11, 2022
b72ee61
Merge branch 'feature/dev-battery-canary' into 'feature/dev' (merge r…
Aug 11, 2022
753181f
Merge branch 'feature/dev-manual-trim' into 'feature/dev' (merge requ…
Aug 11, 2022
691c599
Update battery power calc for compare
kaedea Aug 15, 2022
6bbc01f
Update battery power calculator
kaedea Aug 16, 2022
abc89e0
Power must not be negative
kaedea Aug 16, 2022
760a5a8
ActivityLeakFixer: remove contentView only for devices that is split-…
Yves0 Aug 16, 2022
0b8f978
Merge branch 'feature/dev-12L-compat' into 'feature/dev' (merge reque…
gryamy Aug 16, 2022
21144c1
Fix battery power profile paring for custom path
kaedea Aug 18, 2022
7e179f2
Update powerprofile parsing
kaedea Aug 19, 2022
b4d5477
Merge branch 'feature/dev' of git.code.oa.com:matrix/matrix into feat…
kaedea Aug 22, 2022
25697c0
Fix battery lifecycle listener
kaedea Aug 22, 2022
353fed4
memory-canary: fix NPE
Yves0 Aug 22, 2022
b2b3cca
Merge branch 'feature/dev-fix-meminfo-npe' into 'feature/dev' (merge …
gryamy Aug 22, 2022
2c008b8
Add battery cpufreq sampler
kaedea Aug 22, 2022
cc19ed8
Update cpuPower calc
kaedea Aug 23, 2022
dae47c8
Add battery cpuState uid snapshot
kaedea Aug 24, 2022
fc3a0e0
Fix import compile issues
kaedea Aug 24, 2022
a619bb3
Update powerProfile with dsp audio/video
kaedea Aug 24, 2022
7a25bd9
Update uid cpustate cfg
kaedea Aug 24, 2022
c1ea513
Update power tuning with mobile & wifi
kaedea Aug 25, 2022
c2aad28
MatrixTraceTransform: fix NoSuchMethodError with com.android.tools:co…
Yves0 Aug 26, 2022
7ae6688
Merge branch 'feature/dev-agp-compat-issue' into 'feature/dev' (merge…
gryamy Aug 26, 2022
d3f39f3
MatrixTraceTransform: fix NoSuchMethodError with com.android.tools:co…
Yves0 Aug 26, 2022
eb3d41f
Merge branch 'feature/dev-agp-compat-issue' into 'feature/dev' (merge…
gryamy Aug 26, 2022
063407a
Update battery power calc with bps
kaedea Aug 26, 2022
439dc60
Update top indicator
kaedea Aug 23, 2022
06b45cc
Update top power
kaedea Aug 24, 2022
2fc70bd
Update top power
kaedea Aug 25, 2022
c1f7390
Update top power indicator
kaedea Aug 26, 2022
82c076b
Update top power indicator
kaedea Aug 26, 2022
037b464
Update mobile power cfg
kaedea Aug 26, 2022
f70d380
Update battery mobile/wifi power cfg
kaedea Aug 29, 2022
dc90a84
sample: fix dependency
Yves0 Aug 30, 2022
1622baf
Merge branch 'feature/dev-sample-fix' into 'feature/dev' (merge reque…
gryamy Aug 30, 2022
3c0232f
Update battery power top indicator
kaedea Aug 30, 2022
0cd3b66
Update battery healthstats cfg
kaedea Aug 30, 2022
d142b26
Update battery canary config with tunning
kaedea Aug 31, 2022
68a2093
Update battery sample cfgs
kaedea Sep 1, 2022
23e9b71
Merge branch 'feature/dev-battery-canary' into 'feature/dev' (merge r…
gryamy Sep 1, 2022
58ae7c9
Update time breaker for test
kaedea Sep 5, 2022
a4b7ec0
Add connectivity manager hook
kaedea Sep 6, 2022
0441188
Fix health stats npe issue
kaedea Sep 7, 2022
67aca90
Merge branch 'feature/dev' of git.code.oa.com:matrix/matrix into feat…
kaedea Sep 7, 2022
7bd65c2
Revert tests codes
kaedea Sep 7, 2022
107feb4
Revert "Revert tests codes"
kaedea Sep 7, 2022
434adec
Merge branch 'feature/dev-battery-canary' into 'feature/dev' (merge r…
gryamy Sep 7, 2022
a79c28d
Fix battery canary handler
kaedea Sep 7, 2022
c1fdb81
binder 添加异常保护
Sep 8, 2022
70e0b42
Merge branch 'dev_opengl_09alpha' into 'feature/dev' (merge request !…
gryamy Sep 8, 2022
5177796
Update battery handler thread cfg
kaedea Sep 8, 2022
be931c5
Add battery currency inspector
kaedea Sep 9, 2022
ae848f2
Update battery currency inspect
kaedea Sep 9, 2022
89fd8d5
fix: Support ZIP with directory entries.
AoraMD Aug 30, 2022
2d9fed3
Update canary thread cfg
kaedea Sep 14, 2022
5c4db7a
Merge branch 'feature/dev-battery-canary-handler' into feature/dev-ba…
kaedea Sep 14, 2022
4b6d8e7
Update canary thread cfg
kaedea Sep 14, 2022
f2fd0ac
feat: Add several property-override methods.
AoraMD Sep 15, 2022
af3e89a
Merge branch 'feature/dev-apk-checker-useless-res' into fix/rur_custo…
AoraMD Sep 15, 2022
65d50fe
matrix-res-plugin: append hashcode of leaked Activity to ref_key
Yves0 Sep 26, 2022
5afb556
matrix-res-plugin: fix check expired logic
Yves0 Sep 26, 2022
3980cf8
Merge branch 'feature/dev-activity-leak-key' into 'feature/dev' (merg…
gryamy Sep 27, 2022
e66ac91
matrix-res-plugin: add hprof expired log
Yves0 Sep 27, 2022
fc16e9e
Merge branch 'feature/dev-activity-leak-key' into 'feature/dev' (merg…
gryamy Sep 27, 2022
3cb80eb
fix: Do not hardcode resource directory path prefix.
AoraMD Sep 23, 2022
bae2084
fix: OK, now RUR should compatible with resguard, right? 🤔
AoraMD Sep 23, 2022
776676b
fix: WHY RESOURCE ID FORMAT FROM AAPT AND ARSC IS DIFFERENT???
AoraMD Sep 26, 2022
08a402a
Update healthstats with acc collector support
kaedea Oct 19, 2022
e37b6d6
Merge branch 'fix/unused_res_compatibility' into 'feature/dev' (merge…
gryamy Oct 20, 2022
796f5bd
AppBgSumPssMonitor: add extra pss factory
Yves0 Oct 20, 2022
b8f8a11
Merge branch 'feature/dev' of https://git.woa.com/matrix/matrix into …
Yves0 Oct 20, 2022
225489a
AppBgSumPssMonitor: filter log
Yves0 Oct 20, 2022
afbc57b
Update battery stats thread cfg
kaedea Oct 20, 2022
43b8dfa
Merge branch 'feature/dev-extra-memory' into 'feature/dev' (merge req…
gryamy Oct 20, 2022
699b5a5
Merge branch 'feature/dev-battery-canary' into 'feature/dev' (merge r…
gryamy Oct 20, 2022
713d4c0
Fix multi-thread hashset modification exception
Oct 21, 2022
2782998
Merge branch 'feature/dev_leafjia_fix_mod_je' into 'feature/dev' (mer…
Oct 21, 2022
7a19c50
Merge branch 'feature/dev' of https://git.woa.com/matrix/matrix into …
Yves0 Oct 21, 2022
5abdbd6
fix: Fix unused resources finding issue of apk canary by analyzing r8…
AoraMD Oct 25, 2022
8ebddfc
Merge branch 'fix/apk-canary-find-unused-res' into 'feature/dev' (mer…
gryamy Oct 26, 2022
81dd439
res-plugin: fix manual dump api
Yves0 Oct 26, 2022
4608c63
Merge branch 'feature/dev-res-plugin-manual-dump-api' into 'feature/d…
gryamy Oct 26, 2022
9bd76bf
修改 tid 获取方式
Oct 29, 2022
8552139
egl leak check
Oct 31, 2022
3305e90
egl 泄漏监控
Oct 31, 2022
c1e7282
Merge branch 'feature/dev-egl-leak' into 'feature/dev' (merge request…
gryamy Oct 31, 2022
700e0d5
delete log
Oct 31, 2022
6cbe31f
删除 log
Oct 31, 2022
2833e59
Merge branch 'feature/dev-egl-leak' into 'feature/dev' (merge request…
Oct 31, 2022
290ed5a
暂时屏蔽 egl
Oct 31, 2022
6657364
Merge branch 'feature/dev-egl-leak' into 'feature/dev' (merge request…
Oct 31, 2022
359fc70
crash fix
Oct 31, 2022
324bbeb
打开
Oct 31, 2022
25a0dd4
Merge branch 'feature/dev-egl-leak' into 'feature/dev' (merge request…
Oct 31, 2022
c13b9d7
disable isEglContextReleased
Nov 1, 2022
fedde1d
Merge branch 'feature/dev-egl-leak' into 'feature/dev' (merge request…
Nov 1, 2022
777f317
feat: Remove unnecessary log printing from remove unused resources task.
AoraMD Nov 1, 2022
2992750
Merge branch 'fix/remove-rur-logs' into 'feature/dev' (merge request …
gryamy Nov 3, 2022
e56faf6
opengl-hook: change gettid api
Yves0 Nov 3, 2022
38d2953
opengl-hook: fix compile error
Yves0 Nov 3, 2022
512ad38
Merge branch 'feature/dev-opengl-hook-tid' into 'feature/dev' (merge …
gryamy Nov 3, 2022
f49a30a
MemInfo: add Process Pid to Log
Yves0 Nov 4, 2022
c2cacd0
Merge branch 'feature/dev-meminfo' into 'feature/dev' (merge request …
gryamy Nov 4, 2022
52fc2ac
Fix battery full charged event overheat bug
kaedea Nov 4, 2022
ee54ea0
时序问题修复
Nov 9, 2022
974c08c
Merge branch 'feature/dev-egl-leak' into 'feature/dev' (merge request…
Nov 9, 2022
646e8db
fix: Fix remove unused resources resguard-mapping parsing error.
AoraMD Nov 15, 2022
30f4d7f
[runtime_verify_mute] Add first version.
Nov 16, 2022
eecc1c1
fix: Fix attribute type omitted.
AoraMD Nov 16, 2022
c86f237
add log
Nov 17, 2022
17c8b9b
Merge branch 'feature/dev-egl-leak' into 'feature/dev' (merge request…
gryamy Nov 18, 2022
d6c4754
ManualDumpProcessor: fix api-31 compatibility issue
Yves0 Nov 18, 2022
815a705
Merge branch 'feature/dev-target-31' into 'feature/dev' (merge reques…
gryamy Nov 19, 2022
b7334ee
[runtime_verify_mute] Adjust min support version to P.
tys282000 Nov 19, 2022
134ceb6
[runtime_verify_mute] Remove version suffix.
tys282000 Nov 19, 2022
0559e10
[runtime_verify_mute] Fix log typo.
tys282000 Nov 19, 2022
1e6b9ce
[RUR] change sevenZip level -mx9 to -mx5
Nalecy Nov 20, 2022
a8e4b0a
Merge branch 'fix/rur-map-error' into 'feature/dev' (merge request !292)
gryamy Nov 21, 2022
2ff43cc
Merge branch 'fix/rur_zip_level_nalecyxu' into 'feature/dev' (merge r…
gryamy Nov 24, 2022
958a814
Merge branch 'feature/tomys_art_rt_verify_mute' into 'feature/dev' (m…
gryamy Nov 24, 2022
35d29b7
Merge branch 'feature/dev-battery-canary' into 'feature/dev' (merge r…
gryamy Nov 24, 2022
0dfc9f7
matrix-hooks: weird NPE protection -- Thread.currentThread() is NULL
Yves0 Nov 28, 2022
b7cac0e
Merge branch 'feature/dev-fix-thread-npe' into 'feature/dev' (merge r…
gryamy Nov 28, 2022
ec1ea8a
MemInfoFactory: fix NumberFormatException
Yves0 Nov 30, 2022
ac659c4
sample: fix compile error
Yves0 Nov 30, 2022
52357f0
Merge branch 'feature/dev-fix-thread-npe' into 'feature/dev' (merge r…
gryamy Nov 30, 2022
fa7b17f
matrix-hooks: fix linker deadlock caused by hook
Yves0 Dec 1, 2022
e1c7aaf
Merge branch 'feature/dev-mem-hook-deadlock' into 'feature/dev' (merg…
gryamy Dec 2, 2022
6cf6c90
memory-canary: fix NPE crash
Yves0 Dec 2, 2022
7b59694
Merge branch 'feature/dev-fix-mem-monitor-npe' into 'feature/dev' (me…
gryamy Dec 2, 2022
1a15578
Fix battery get bps compat issue
kaedea Dec 2, 2022
e6dbef4
Merge branch 'feature/dev-battery-canary' into 'feature/dev' (merge r…
gryamy Dec 2, 2022
1e1ef67
matrix-hooks: fix NPE - fetch origin function pointer before register…
Yves0 Dec 3, 2022
9bd9014
matrix-hooks: remove log
Yves0 Dec 3, 2022
a9135a0
Merge branch 'feature/dev-mem-hook-deadlock' into 'feature/dev' (merg…
gryamy Dec 3, 2022
5de41b3
Skip new added tid & pid
kaedea Dec 4, 2022
fadebd5
opengl-hook: add @keep for reflection
Yves0 Dec 9, 2022
60edc46
opengl-hook: support for share context
Yves0 Dec 9, 2022
ee0fcc7
opengl-hook: fix removing record failed
Yves0 Dec 13, 2022
5d773c6
Merge branch 'feature/dev' of git.code.oa.com:matrix/matrix into feat…
kaedea Dec 13, 2022
2d25735
Update new added pid tid cfg
kaedea Dec 13, 2022
389a23c
opengl-hook: fix egl context hook
Yves0 Dec 13, 2022
828dc35
Update health stats with wakelocks
kaedea Dec 22, 2022
c1676d4
HookManager: remove log when NPE happens
Yves0 Dec 16, 2022
f61acd1
OpenGL: fix EglContext state checker
Yves0 Dec 22, 2022
6c0bef9
Merge branch 'feature/dev-opengl-shared-context' into 'feature/dev' (…
Dec 22, 2022
249c132
OpenGL: change Java stacktrace format
Yves0 Dec 23, 2022
5096a4c
OpenGL: change native stacktrace format
Yves0 Dec 23, 2022
b13a1c3
Merge branch 'feature/dev-opengl-shared-context' into 'feature/dev' (…
Dec 23, 2022
36a62ba
Merge branch 'feature/dev-battery-canary' into 'feature/dev' (merge r…
Dec 25, 2022
bf73184
OpenGL: fix deleting info in different threads
Yves0 Jan 6, 2023
9f1fe33
OpenGL: fix deleting info in different threads
Yves0 Jan 6, 2023
deb50ea
OpenGL: don't remove eglContext records when error occurred
Yves0 Jan 9, 2023
7721d9a
OpenGL: fix wrong tid
Yves0 Jan 9, 2023
abfc112
OpenGL: fix wrong tid
Yves0 Jan 9, 2023
3e051d3
Merge branch 'feature/dev-opengl-bugfix-230106' into 'feature/dev' (m…
gryamy Jan 9, 2023
9bdbffc
Update healthstats feat with proc stats count
kaedea Jan 10, 2023
8f775fd
resource-plugin: add api for disabling notification
Yves0 Jan 12, 2023
f2f1bf7
Merge branch 'feature/dev-opengl-bugfix-230106' into 'feature/dev' (m…
gryamy Jan 12, 2023
a929693
matrix-lifecycle: remove API guard for "unsupported" apis declared in…
Yves0 Jan 12, 2023
bc7583b
Merge branch 'feature/dev-opengl-bugfix-230106' into 'feature/dev' (m…
gryamy Jan 12, 2023
fc1bc83
根据anr trace检测死锁,同时针对主线程nativePollOnce的情况进行全堆栈(java+native)上报。
Jan 12, 2023
75d4b2d
Merge remote-tracking branch 'origin/feature/dev' into feature/dev-de…
Jan 12, 2023
7798c07
opengl-hook: fix egl context released state
Yves0 Jan 16, 2023
b6add5b
Merge branch 'feature/dev-opengl-bugfix-230106' into 'feature/dev' (m…
gryamy Jan 16, 2023
f61c0cc
lifecycle: fix binding SupervisorService failed
Yves0 Jan 17, 2023
f847a35
retrieve class(or type) of lock object from waiting circle.
Jan 31, 2023
af9631a
Separate looper monitor and frame monitor.
Feb 2, 2023
bebce86
fix deadlock detection bug
Feb 2, 2023
795778e
Merge branch 'feature/dev-lifecycle-bugfix' into 'feature/dev' (merge…
gryamy Feb 3, 2023
80ea337
FrameTracer compatible with old versions.
Feb 7, 2023
0e959a9
modify calculation of avgFPS
Feb 8, 2023
017c42a
fix bug, skip invalid frame metrics.
Feb 9, 2023
0cf4496
Merge branch 'feature/dev-deadlock_anr_detect' into 'feature/dev' (me…
gryamy Feb 9, 2023
c9eb3ac
Merge branch 'feature/dev-battery-canary' into 'feature/dev' (merge r…
gryamy Feb 9, 2023
f4e9412
Merge remote-tracking branch 'origin/feature/dev' into feature/dev-fr…
Feb 9, 2023
a0749a7
verify TOTAL_DURATION of frame metrics.
Feb 10, 2023
d9c187d
Merge branch 'feature/dev-frameTracer_refactor' into 'feature/dev' (m…
gryamy Feb 10, 2023
75d3e5a
fix bug of time calculation in EvilMethodTracer.
Feb 13, 2023
72da9ed
Unify ANR report stack and jank report stack.
Feb 13, 2023
0c2d8e8
Merge branch 'feature/dev-frameTracer_refactor' into 'feature/dev' (m…
Feb 13, 2023
121a6ec
add stack dump style
Feb 15, 2023
60ca251
fix activity leak.
Feb 15, 2023
23319e2
Merge branch 'feature/dev-frameTracer_refactor' into 'feature/dev' (m…
gryamy Feb 16, 2023
222d2fa
opengl-hook: fix sof
Yves0 Feb 17, 2023
7872609
Merge branch 'feature/dev-fix-sof' into 'feature/dev' (merge request …
Feb 17, 2023
3a7a65c
trim-mem: fix deadlock
Yves0 Feb 20, 2023
1866e8a
Merge branch 'feature/dev-fix-deadlock' into 'feature/dev' (merge req…
Feb 20, 2023
b40d0a3
lifecycle: add threadPool delegate
Yves0 Feb 20, 2023
bdbb345
add continuable callback in ISceneFrameListener.
Feb 28, 2023
a8a2f87
change continuable to isCallbackRestAfterUnregister in ISceneFrameLis…
Mar 1, 2023
006b31b
update interface of ISceneFrameListener.
Mar 1, 2023
48d3c1c
Merge branch 'feature/dev-lifecycle-executor-old' into 'feature/dev' …
gryamy Mar 2, 2023
27c629d
Merge remote-tracking branch 'origin/feature/dev' into feature/dev-fr…
Mar 8, 2023
5cf2b83
Merge branch 'feature/dev-frameTracer_refactor' into 'feature/dev' (m…
gryamy Mar 8, 2023
a1a8c7d
opengl-hook: add brief stacktrace dumping api
Yves0 Mar 9, 2023
3889f82
Merge branch 'feature/dev-opengl-hook-brief-stack' into 'feature/dev'…
gryamy Mar 9, 2023
df84894
add reset method in FrameTracer
Mar 9, 2023
bee0fdd
Merge remote-tracking branch 'origin/feature/dev' into feature/dev-fr…
Mar 13, 2023
15332fd
Merge branch 'feature/dev-frameTracer_refactor' into 'feature/dev' (m…
gryamy Mar 14, 2023
fd1324d
upgrade: com.google.code.gson:gson:2.8.9
Yves0 Mar 14, 2023
a6a63c8
Merge branch 'feature/dev-gson-fix' into 'feature/dev' (merge request…
gryamy Mar 15, 2023
fe5f6f2
Merge branch 'master' of https://github.com/Tencent/matrix into featu…
gryamy Mar 21, 2023
67394c9
v2.1.0
gryamy Mar 21, 2023
2e93817
Update README & Sample
gryamy Mar 21, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
![Matrix-icon](assets/img/readme/header.png)
[![license](http://img.shields.io/badge/license-BSD3-brightgreen.svg?style=flat)](https://github.com/Tencent/matrix/blob/master/LICENSE)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/Tencent/matrix/pulls)
[![WeChat Approved](https://img.shields.io/badge/Wechat%20Approved-2.0.8-red.svg)](https://github.com/Tencent/matrix/wiki)
[![WeChat Approved](https://img.shields.io/badge/Wechat%20Approved-2.1.0-red.svg)](https://github.com/Tencent/matrix/wiki)
[![CircleCI](https://circleci.com/gh/Tencent/matrix.svg?style=shield)](https://app.circleci.com/pipelines/github/Tencent/matrix)

(中文版本请参看[这里](#matrix_cn))
Expand Down Expand Up @@ -215,7 +215,7 @@ At this point, Matrix has been integrated into the app and is beginning to colle

1. Configure `MATRIX_VERSION` in gradle.properties.
``` gradle
MATRIX_VERSION=2.0.8
MATRIX_VERSION=2.1.0
```

2. Add `matrix-gradle-plugin` in your build.gradle:
Expand Down Expand Up @@ -364,11 +364,11 @@ Then other components in Matrix could use Quikcen Backtrace to unwind stacktrace

#### APK Checker Usage

APK Checker can run independently in Jar ([matrix-apk-canary-2.0.8.jar](https://repo.maven.apache.org/maven2/com/tencent/matrix/matrix-apk-canary/2.0.8/matrix-apk-canary-2.0.8.jar)) mode, usage:
APK Checker can run independently in Jar ([matrix-apk-canary-2.1.0.jar](https://repo.maven.apache.org/maven2/com/tencent/matrix/matrix-apk-canary/2.1.0/matrix-apk-canary-2.1.0.jar)) mode, usage:


```shell
java -jar matrix-apk-canary-2.0.8.jar
java -jar matrix-apk-canary-2.1.0.jar
Usages:
--config CONFIG-FILE-PATH
or
Expand Down Expand Up @@ -427,7 +427,7 @@ Matrix is under the BSD license. See the [LICENSE](https://github.com/Tencent/Ma

# <a name="matrix_cn">Matrix</a>
![Matrix-icon](assets/img/readme/header.png)
[![license](http://img.shields.io/badge/license-BSD3-brightgreen.svg?style=flat)](https://github.com/Tencent/matrix/blob/master/LICENSE)[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/Tencent/matrix/pulls) [![WeChat Approved](https://img.shields.io/badge/Wechat%20Approved-2.0.8-red.svg)](https://github.com/Tencent/matrix/wiki)
[![license](http://img.shields.io/badge/license-BSD3-brightgreen.svg?style=flat)](https://github.com/Tencent/matrix/blob/master/LICENSE)[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/Tencent/matrix/pulls) [![WeChat Approved](https://img.shields.io/badge/Wechat%20Approved-2.1.0-red.svg)](https://github.com/Tencent/matrix/wiki)

**Matrix** 是一款微信研发并日常使用的应用性能接入框架,支持iOS, macOS和Android。
Matrix 通过接入各种性能监控方案,对性能监控项的异常数据进行采集和分析,输出相应的问题分析、定位与优化建议,从而帮助开发者开发出更高质量的应用。
Expand Down Expand Up @@ -628,7 +628,7 @@ Matrix-android 当前监控范围包括:应用安装包大小,帧率变化

1. 在你项目根目录下的 gradle.properties 中配置要依赖的 Matrix 版本号,如:
``` gradle
MATRIX_VERSION=2.0.8
MATRIX_VERSION=2.1.0
```

2. 在你项目根目录下的 build.gradle 文件添加 Matrix 依赖,如:
Expand Down Expand Up @@ -774,10 +774,10 @@ WeChatBacktrace.instance().configure(getApplicationContext()).commit();

#### APK Checker

APK Check 以独立的 jar 包提供 ([matrix-apk-canary-2.0.8.jar](https://repo.maven.apache.org/maven2/com/tencent/matrix/matrix-apk-canary/2.0.8/matrix-apk-canary-2.0.8.jar)),你可以运行:
APK Check 以独立的 jar 包提供 ([matrix-apk-canary-2.1.0.jar](https://repo.maven.apache.org/maven2/com/tencent/matrix/matrix-apk-canary/2.1.0/matrix-apk-canary-2.1.0.jar)),你可以运行:

```cmd
java -jar matrix-apk-canary-2.0.8.jar
java -jar matrix-apk-canary-2.1.0.jar
```

查看 Usages 来使用它。
Expand Down
2 changes: 1 addition & 1 deletion matrix/matrix-android/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryErro
# org.gradle.parallel=true
#Tue Jun 20 10:24:33 CST 2017

VERSION_NAME_PREFIX=2.0.8
VERSION_NAME_PREFIX=2.1.0
VERSION_NAME_SUFFIX=
## two options: Internal (for wechat), External (for public repo)
PUBLISH_CHANNEL=Internal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,15 @@
#include <dlfcn.h>
#include <set>
#include "EnhanceDlsym.h"
#include "../../../../../matrix-jectl/src/main/cpp/jectl/JeLog.h"

#define TAG "Matrix.EnhanceDl"

#include <android/log.h>

#define LOGD(TAG, FMT, args...) //__android_log_print(ANDROID_LOG_DEBUG, TAG, FMT, ##args)
#define LOGI(TAG, FMT, args...) //__android_log_print(ANDROID_LOG_INFO, TAG, FMT, ##args)
#define LOGE(TAG, FMT, args...) //__android_log_print(ANDROID_LOG_ERROR, TAG, FMT, ##args)

namespace enhance {

static std::set<DlInfo *> m_opened_info;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@
package com.tencent.matrix.lifecycle.supervisor;

// Declare any non-default types here with import statements
import com.tencent.matrix.util.MemInfo;

interface ISubordinateProxy {
void dispatchState(in String scene, in String stateName, in boolean state);
void dispatchKill(in String scene, in String targetProcess, in int targetPid);
void dispatchDeath(in String scene, in String targetProcess, in int targetPid, in boolean isLruKill);

int getPss();
MemInfo getMemInfo();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// MemInfo.aidl
package com.tencent.matrix.util;

// Declare any non-default types here with import statements

parcelable MemInfo;
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
package com.tencent.matrix.lifecycle

import android.app.Application
import com.tencent.matrix.lifecycle.owners.*
import com.tencent.matrix.lifecycle.supervisor.*
import com.tencent.matrix.util.MatrixLog
import com.tencent.matrix.util.MatrixUtil

// @formatter:off
object MatrixLifecycleLogger {

private var application: Application? = null
private val TAG by lazy { "Matrix.lifecycle.Logger_${String.format("%-10.10s", suffix())}" }

private fun suffix(): String {
return if (MatrixUtil.isInMainProcess(application!!)) {
"Main"
} else {
val split = MatrixUtil.getProcessName(application!!).split(":").toTypedArray()
if (split.size > 1) {
split[1].takeLast(10)
} else {
"unknown"
}
}
}

fun init(app: Application, enable: Boolean) {
application = app
if (!enable) {
MatrixLog.i(TAG, "logger disabled")
return
}

ProcessUIResumedStateOwner.observeForever(object : ISerialObserver {
override fun on() = MatrixLog.i(TAG, "ON_PROCESS_UI_RESUMED")
override fun off() = MatrixLog.i(TAG, "ON_PROCESS_UI_PAUSED")
})

ProcessUIStartedStateOwner.observeForever(object : ISerialObserver {
override fun on() = MatrixLog.i(TAG, "ON_PROCESS_UI_STARTED scene: ${ProcessUILifecycleOwner.recentScene}")
override fun off() = MatrixLog.i(TAG, "ON_PROCESS_UI_STOPPED scene: ${ProcessUILifecycleOwner.recentScene}")
})

ProcessExplicitBackgroundOwner.observeForever(object : ISerialObserver {
override fun on() = MatrixLog.i(TAG, "ON_PROCESS_ENTER_EXPLICIT_BACKGROUND")
override fun off() = MatrixLog.i(TAG, "ON_PROCESS_EXIT_EXPLICIT_BACKGROUND")
})

ProcessStagedBackgroundOwner.observeForever(object : ISerialObserver {
override fun on() = MatrixLog.i(TAG, "ON_PROCESS_ENTER_STAGED_BACKGROUND")
override fun off() = MatrixLog.i(TAG, "ON_PROCESS_EXIT_STAGED_BACKGROUND")
})

ProcessDeepBackgroundOwner.observeForever(object : ISerialObserver {
override fun on() = MatrixLog.i(TAG, "ON_PROCESS_ENTER_DEEP_BACKGROUND")
override fun off() = MatrixLog.i(TAG, "ON_PROCESS_EXIT_DEEP_BACKGROUND")
})

AppUIForegroundOwner.observeForever(object : ISerialObserver {
override fun on() = MatrixLog.i(TAG, "ON_APP_UI_ENTER_FOREGROUND scene: ${ProcessSupervisor.getRecentScene()}")
override fun off() = MatrixLog.i(TAG, "ON_APP_UI_EXIT_FOREGROUND scene: ${ProcessSupervisor.getRecentScene()}")
})

AppExplicitBackgroundOwner.observeForever(object : ISerialObserver {
override fun off() = MatrixLog.i(TAG, "ON_APP_EXIT_EXPLICIT_BACKGROUND")
override fun on() = MatrixLog.i(TAG, "ON_APP_ENTER_EXPLICIT_BACKGROUND")
})

AppStagedBackgroundOwner.observeForever(object : ISerialObserver {
override fun off() = MatrixLog.i(TAG, "ON_APP_EXIT_STAGED_BACKGROUND")
override fun on() = MatrixLog.i(TAG, "ON_APP_ENTER_STAGED_BACKGROUND")
})

AppDeepBackgroundOwner.observeForever(object : ISerialObserver {
override fun off() = MatrixLog.i(TAG, "ON_APP_EXIT_DEEP_BACKGROUND")
override fun on() = MatrixLog.i(TAG, "ON_APP_ENTER_DEEP_BACKGROUND")
})

ProcessSupervisor.addDyingListener { scene, processName, pid ->
MatrixLog.i(TAG, "Dying Listener: process $pid-$processName is dying on scene $scene")
false // NOT rescue
}

ProcessSupervisor.addDeathListener { scene, processName, pid, isLruKill ->
MatrixLog.i(
TAG,
"Death Listener: process $pid-$processName died on scene $scene, is LRU Kill? $isLruKill"
)
}

ForegroundServiceLifecycleOwner.observeForever(object : ISerialObserver {
override fun on() = MatrixLog.i(TAG, "ForegroundServiceLifecycleOwner: ON")
override fun off() = MatrixLog.i(TAG, "ForegroundServiceLifecycleOwner: OFF")
})

OverlayWindowLifecycleOwner.observeForever(object : ISerialObserver {
override fun on() = MatrixLog.i(TAG, "OverlayWindowLifecycleOwner: ON, hasOverlay = ${OverlayWindowLifecycleOwner.hasOverlayWindow()}, hasVisible = ${OverlayWindowLifecycleOwner.hasVisibleWindow()}")
override fun off() = MatrixLog.i(TAG, "OverlayWindowLifecycleOwner: OFF, hasOverlay = ${OverlayWindowLifecycleOwner.hasOverlayWindow()}, hasVisible = ${OverlayWindowLifecycleOwner.hasVisibleWindow()}")
})
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ data class MatrixLifecycleConfig(
*/
val enableOverlayWindowMonitor: Boolean = false,

val lifecycleThreadConfig: LifecycleThreadConfig = LifecycleThreadConfig()
val lifecycleThreadConfig: LifecycleThreadConfig = LifecycleThreadConfig(),

val enableLifecycleLogger: Boolean = false
)

/**
Expand Down Expand Up @@ -61,6 +63,7 @@ class MatrixLifecycleOwnerInitializer {
ProcessUILifecycleOwner.init(app)
ForegroundServiceLifecycleOwner.init(app, config.enableFgServiceMonitor)
OverlayWindowLifecycleOwner.init(config.enableOverlayWindowMonitor)
MatrixLifecycleLogger.init(app, config.enableLifecycleLogger)
}

@SuppressLint("PrivateApi", "DiscouragedPrivateApi")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import java.util.concurrent.*
private const val TAG = "Matrix.Lifecycle.Thread"

data class LifecycleThreadConfig(
val externalExecutor: Executor? = null,
val maxPoolSize: Int = 5,
val keepAliveSeconds: Long = 30L,
val onHeavyTaskDetected: (task: String, cost: Long) -> Unit = { task, cost ->
Expand Down Expand Up @@ -45,6 +46,11 @@ internal object MatrixLifecycleThread {
}

val executor by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {

if (config.externalExecutor != null) {
return@lazy config.externalExecutor!!
}

val idleSynchronousQueue = IdleSynchronousQueue()

object : ThreadPoolExecutor(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import android.os.Handler
import android.os.Message
import android.os.Process
import android.util.ArrayMap
import com.tencent.matrix.lifecycle.MatrixLifecycleThread
import com.tencent.matrix.lifecycle.StatefulOwner
import com.tencent.matrix.util.MatrixLog
import com.tencent.matrix.util.safeApply
Expand All @@ -19,8 +20,6 @@ import java.lang.reflect.InvocationHandler
import java.lang.reflect.Method
import java.lang.reflect.Proxy

private const val SDK_GUARD = 32

/**
* Created by Yves on 2021/11/30
*/
Expand Down Expand Up @@ -49,10 +48,6 @@ object ForegroundServiceLifecycleOwner : StatefulOwner() {
MatrixLog.i(TAG, "disabled")
return
}
if (Build.VERSION.SDK_INT > SDK_GUARD) { // for safety
MatrixLog.e(TAG, "NOT support for api-level ${Build.VERSION.SDK_INT} yet!!!")
return
}
inject()
}

Expand Down Expand Up @@ -127,8 +122,10 @@ object ForegroundServiceLifecycleOwner : StatefulOwner() {
}
STOP_SERVICE -> {
ActivityThreadmH?.post {
safeApply(TAG) {
hasForegroundService()
MatrixLifecycleThread.handler.post {
safeApply(TAG) {
hasForegroundService()
}
}
}
}
Expand Down Expand Up @@ -159,15 +156,17 @@ object ForegroundServiceLifecycleOwner : StatefulOwner() {
}

private fun checkIfAlreadyForegrounded(componentName: ComponentName) {
safeApply(TAG) {
activityManager?.getRunningServices(Int.MAX_VALUE)?.filter {
it.pid == Process.myPid()
&& it.uid == Process.myUid()
&& it.service == componentName
&& it.foreground
}?.forEach {
MatrixLog.i(TAG, "service turned fg when create: ${it.service}")
fgServiceHandler?.onStartForeground(it.service)
MatrixLifecycleThread.handler.post {
safeApply(TAG) {
activityManager?.getRunningServices(Int.MAX_VALUE)?.filter {
it.pid == Process.myPid()
&& it.uid == Process.myUid()
&& it.service == componentName
&& it.foreground
}?.forEach {
MatrixLog.i(TAG, "service turned fg when create: ${it.service}")
fgServiceHandler?.onStartForeground(it.service)
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ import android.view.WindowManager
import com.tencent.matrix.lifecycle.StatefulOwner
import com.tencent.matrix.util.*

private const val SDK_GUARD = 32

/**
* Created by Yves on 2021/12/30
*/
Expand Down Expand Up @@ -39,10 +37,6 @@ object OverlayWindowLifecycleOwner : StatefulOwner() {
MatrixLog.i(TAG, "disabled")
return
}
if (Build.VERSION.SDK_INT > SDK_GUARD) { // for safety
MatrixLog.e(TAG, "NOT support for api-level ${Build.VERSION.SDK_INT} yet!!!")
return
}
inject()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ object ProcessExplicitBackgroundOwner : StatefulOwner(), IBackgroundStatefulOwne
override fun action(): Boolean {
val uiForeground by lazy { ProcessUIStartedStateOwner.active() }
val fgService by lazy { ForegroundServiceLifecycleOwner.hasForegroundService() }
val visibleWindow by lazy { OverlayWindowLifecycleOwner.hasVisibleWindow() }
val visibleWindow by lazy { OverlayWindowLifecycleOwner.hasOverlayWindow() }

if (uiForeground) {
MatrixLog.i(TAG, "turn OFF for UI foreground")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,14 @@ internal object ProcessSubordinate {
}
}

fun getPss(): Int {
return 0
fun getMemInfo(): Array<MemInfo> {
val memInfoList = ArrayList<MemInfo>()
subordinateProxies.forEachSafe {
it.value.memInfo?.let { m->
memInfoList.add(m)
}
}
return memInfoList.toTypedArray()
}
}

Expand Down Expand Up @@ -243,9 +249,10 @@ internal object ProcessSubordinate {
}
}

override fun getPss(): Int {
TODO("Not yet implemented")
}
override fun getMemInfo(): MemInfo = safeLet(
TAG,
defVal = MemInfo(amsPssInfo = PssInfo(), debugPssInfo = PssInfo())
) { MemInfo.getCurrentProcessFullMemInfo() }

}

Expand Down
Loading