Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Screen_capture_lite | 505 | 2 months ago | 16 | mit | C | |||||
cross platform screen/window capturing library | ||||||||||
Quicklib | 471 | 8 days ago | 27 | apache-2.0 | Pascal | |||||
Quick development library (AutoMapper, LinQ, IOC Dependency Injection, MemoryCache, Scheduled tasks, Json and Yml Config and Options pattern, Serializers, etc) with crossplatform support for Delphi/Firemonkey (Windows,Linux,OSX/IOS/Android) and freepascal (Windows/Linux). | ||||||||||
Adi | 221 | a year ago | 1 | October 14, 2019 | 3 | apache-2.0 | C | |||
ADI(Android Debug Intensive) 是通过 JVMTI 实现的 Android 应用开发调试的增强工具集,目前主要提供性能相关的监控能力。 | ||||||||||
Lagmonitor | 185 | 2 months ago | 26 | mit | Java | |||||
Monitor performance of your Minecraft server. Similar to VisualVM and Java Mission Control. | ||||||||||
Chronicle Threads | 130 | 17 | 4 | 5 days ago | 203 | August 24, 2022 | 9 | other | Java | |
Threaddebugger | 75 | 1 | 1 | 3 years ago | 12 | December 15, 2019 | 3 | apache-2.0 | Java | |
Threads monitor and the thread pool factory. | ||||||||||
Fsmonitor | 73 | 5 years ago | 1 | September 26, 2017 | 5 | mit | Python | |||
Filesystem monitoring library for Python | ||||||||||
Source Chat Relay | 70 | 3 months ago | 43 | gpl-3.0 | Rust | |||||
Communicate between Discord & In-Game, monitor server without being in-game, control the flow of messages and user base engagement! | ||||||||||
Jamonapi | 56 | a year ago | 13 | Java | ||||||
Another repo for jamonapi.com which is primarily hosted on sourceforge | ||||||||||
Anreye | 49 | 5 | 5 years ago | 5 | October 22, 2018 | 1 | mit | Objective-C | ||
Class for monitor excessive blocking on the main thread and return stacktrace of all threads |
(For english )
![]() |
![]() |
![]() |
ADI(Android Debug Intensive) 是通过 JVMTI 实现的 Android 应用开发调试的增强工具集,目前主要提供性能相关的监控能力。
ADI 对运行时的 App 进行性能数据收集,并提供工具用于生成分析图表。目前提供如下功能:
注意 ADI 只支持 Android 8.0(包括 8.0)之后的系统。
首先添加 jcenter 依赖(添加过请忽略):
buildscript {
repositories {
jcenter()
}
}
allprojects {
repositories {
jcenter()
}
}
然后 APP 工程集成 adi 库:
debugImplementation 'zkw.adi:adi:0.9.3'
releaseImplementation 'zkw.adi:adi-nop:0.9.3'
集成 adi 库之后便能够对 App 进行性能数据采集,采集方式有两种。
具体代码如下
// 首先进行初始化
ADIManager.init(context)
...
// 在任何想开始采集的地方添加如下代码
val builder = ADIConfig.Builder()
builder.setEventType(ADIConfig.Type.THREAD_MONITOR_CONTEND)// 设置要监控的事件类型
ADIManager.start(activity, builder.build())
...
// 在任何停止采集的地方添加如下代码
ADIManager.stop()
控制窗可以在不重新编译的情况下更改 ADI 配置,下面代码展示如何启动控制窗
// 在 Activity 中调用
ADIFloatManager.showADIFloat(activity)
控制窗的使用方法情参考图解
采集的内容存放在 Context.getExternalCacheDir()
/ADI 目录下,例如
/sdcard/Android/data/APP 包名/cache/ADI/adi_1570605092.log
取出 log 文件后,需要用adi-analyzer
工具分析 log 并生成图表,通过 pip3 安装:
pip3 install adi-analyzer
之后运行 adi-analyzer 并将 log 文件传入:
adi-analyzer ~/adi_1570605092.log
adi-analyzer 会创建 .html 结尾的图表文件,之后会自动启动浏览器打开图表文件,图表效果请参考封面。
在监控对象分配时,ADI 会监控所有 Java 层对象的创建事件,有几点需要注意:
ADI 会为对象事件的 Log 生成两个图表:对象分配数量图表和对象分配大小图表。下面用对象分配数量图表介绍下图表的使用方式。
在监控多线程竞争时,ADI 会监控所有 Java 层 synchronized
关键字导致的多线程锁竞争事件,以下几点需要注意:
多线程竞争图表的 Y 轴是发生竞争的线程名字,X 轴是时间,具体说明请看图解。
欢迎关注我的公众号 二叉树根子
,在这里可以看到不曾见过的 Android 底层技术。
Copyright 2019 Square, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.