2个版本
0.1.1 | 2024年6月14日 |
---|---|
0.1.0 | 2024年4月3日 |
#104 in 操作系统
401 个下载/每月
用于 tracing_android_trace
26KB
262 行
Android Trace
支持Android NDK 跟踪
⚠️ Android Trace仅支持Android
Android Trace提供了对Android NDK方法的访问,如 ATrace_beginSection
和 ATrace_endSection
。这可以使用 Android GPU Inspector 对Rust代码进行跟踪。
有关与 tracing
的集成,请参阅 tracing_android_trace。
重大更改记录在 变更日志 中。
快速入门
添加对Android Trace的依赖
[target.'cfg(target_os = "android")'.dependencies]
android_trace = "0.1.0"
库的主要入口点是 AndroidTrace,它存储每个可用NDK函数的函数指针
use android_trace::AndroidTrace;
let trace = AndroidTrace::new();
// If the `is_enabled` method isn't available, we also shouldn't trace
let should_trace = trace.is_enabled().unwrap_or(false);
if should_trace {
trace.begin_section(c"My expensive calculation");
}
// ...performing an expensive calculation
if should_trace {
trace.end_section();
}
Android API级别
跟踪API 的第一级自Android API级别23起可用,Android API级别29添加了更灵活的API。为了支持任何Android API版本的设备,我们使用 dlsym 在运行时解析这些函数。除非我们知道(通过 功能)某个API级别可用,否则我们将使用此运行时访问。
库功能标志
以下功能标志可用
api_level_23
(默认启用):要求Android API级别23,以避免某些运行时符号解析api_level_29
:要求Android API级别29,以提高效率,避免完全运行时符号解析
要支持小于23的Android API版本,应禁用默认功能
[target.'cfg(target_os = "android")'.dependencies]
android_trace = { version = "0.1.0", default-features = false }
最低支持的Rust版本(MSRV)
此版本的Android Trace已验证可编译与 Rust 1.77 及以后的版本。
Android Trace的未来版本可能会提高Rust版本要求。这不会被视为破坏性更改,甚至可能在小的补丁版本中发生。
如果编译失败,请单击此处。
随着时间的推移,一些Android Trace的依赖可能已经发布了需要更高Rust版本要求的新版本。如果您因为依赖问题遇到编译错误,但又不想升级您的Rust工具链,那么您可以降级该依赖。
# Use the problematic dependency's name and version
cargo update -p package_name --precise 0.1.1
社区
关于Android Trace的开发讨论发生在Linebender Zulip上,具体在#general > Android Tracing。所有公开内容都可以在不登录的情况下阅读。
欢迎通过pull request提交贡献。适用Rust行为准则。
许可证
许可协议为以下之一
- Apache License,版本2.0(《LICENSE-APACHE》或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT)
任选其一。
依赖项
~43KB