android - 在 Android 设备上以编程方式获取 CPU 时钟速度?
问题描述
有没有人有代码片段给出 Android 设备上的 CPU 时钟速度?
原因
我已经使用手表 GPS 编写了一个 Wear OS 应用程序来计算速度和方位到(预先输入的)GPS 位置。我遇到的问题是在某个随机时间段后 GPS 停止提供更新。
我在三星 Galaxy Watch 4 上运行该应用程序,并假设可靠性问题与三星最新手表报告的过热问题有关
一位同事建议我尝试使用 CPU 时钟速度来检测过热。他指出,许多现代移动设备在检测到它们变得太热时会降低其 CPU 时钟速度。
我希望使用 CPU 时钟作为过热的预警。然后我可以放慢 GPS 更新的速度,让应用程序保留减少的功能,这比完全失去 GPS 要好得多。
那么任何人都可以提供一个代码片段来给出 Android 设备上的 CPU 时钟速度吗?
编辑#1
可以使用以下代码片段直接获取 CPU 的热状态
val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager
val thermalState = powerManager.currentThermalStatus
/* Values
THERMAL_STATUS_NONE,
THERMAL_STATUS_LIGHT,
THERMAL_STATUS_MODERATE,
THERMAL_STATUS_SEVERE,
THERMAL_STATUS_CRITICAL,
THERMAL_STATUS_EMERGENCY,
THERMAL_STATUS_SHUTDOWN,
*/
编辑#2
目前的工作理论是,这可能不是手表过热问题,而是单独的 Galaxy Watch 4“功能”。尽管将应用程序指定为独立的,但 GPS 更新会在与手机的连接丢失时停止,如此处所述
笔记:
我查看了测量 GPS 计算的执行时间,但这取决于当前航向。这是因为在平均轴承时需要处理“包裹”,例如 3 度和 359 度的轴承的平均值是 1 度(不是 181 度!)
解决方案
不是一个明确的答案,我不知道这些值对于您的目的的具体含义。
来自https://stackoverflow.com/a/3789655/1542667
在三星手表上
wiseul:/ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
200000
wiseul:/ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
1200000
wiseul:/ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
1200000
推荐阅读
- python - 如何避免在 matplotlib 中调用 latex(输出到 pgf)
- docker - 通过 docker 网络连接到 web 服务
- python - django递归模板渲染期间的运行时错误
- php - 通过 REST API (php) 在 Jira 中的受让人
- c# - 数数并再次从 1 开始
- amazon-web-services - AWS - Amazon Connect 无法建立软电话连接
- c++ - 概念定义中的多个模板参数
- javascript - 为什么访问 Ajax 响应变量会崩溃代码?
- javascript - babel polyfill 导致的 IE11 错误 - delegate.iterator.return
- google-sheets - 工作表中的索引列