活动介绍

android车机通过adb命令获取当前CPU温度值

时间: 2025-07-26 15:27:39 浏览: 12
<think>我们之前讨论过通过ADB获取Android设备温度的方法,特别是CPU温度。现在用户明确要求通过ADB命令在Android车机设备上获取当前CPU温度值。回顾之前的内容:1.普通用户可以通过系统诊断菜单或第三方应用查看温度。2.开发者可以通过API获取电池温度或环境温度(如果支持)。3.获取CPU温度通常需要读取系统文件,而这些文件需要root权限才能访问。在ADB环境下,我们可以通过执行shell命令来读取系统文件。但是,由于Android车机设备可能具有不同的硬件和文件路径,我们需要尝试常见的温度文件路径。常见的CPU温度文件路径(需要root权限):-高通芯片:`/sys/class/thermal/thermal_zone*/temp` -MTK芯片:`/sys/devices/virtual/thermal/thermal_zone*/temp`步骤:1.连接Android车机设备到电脑,并开启ADB调试。2.使用`adb shell`进入设备的shell环境。3.尝试使用`su`命令获取root权限(如果设备已root)。4.使用`cat`命令读取温度文件。但是,由于不同设备的thermalzone设置不同,我们需要找到正确的thermalzone。通常,CPU温度在`thermal_zone0`到`thermal_zoneX`中的某一个,并且类型为`cpu`。我们可以通过以下步骤来定位:1.列出所有的thermal_zone目录:`ls /sys/class/thermal/`或 `ls /sys/devices/virtual/thermal/`2.进入每个thermal_zone目录,查看`type`文件,找到包含"cpu"的thermalzone。3.读取该thermal zone目录下的`temp`文件。例如:```$ adb shell$su#cd/sys/class/thermal#lsthermal_zone0thermal_zone1...# catthermal_zone0/typesoc#cat thermal_zone1/typecpu# catthermal_zone1/temp45000```注意:温度值通常是整数,单位可能是摄氏度乘以1000(即读取的值除以1000得到摄氏度)或100(除以100)。常见的是除以1000。但是,有些设备可能没有root权限,那么我们就无法读取这些文件。在这种情况下,我们可以尝试通过其他方式,比如使用`dumpsys`命令来获取电池温度(但电池温度不等于CPU温度)。另外,有些设备可能提供了非root的访问方式,但通常需要系统权限。因此,针对用户的问题,我们主要提供两种方法:方法一:通过ADB shell命令直接读取温度文件(需要root)1.首先,尝试进入root模式。2.然后,在/sys/class/thermal/目录下查找包含cpu的thermal_zone。3.读取对应的temp文件。方法二:使用dumpsys battery获取电池温度(不需要root,但只能得到电池温度)命令:`adb shelldumpsys battery| greptemperature`输出示例:`temperature:250` (单位是0.1摄氏度,所以25.0摄氏度)由于用户明确要求CPU温度,因此我们重点在方法一。但是,如果设备没有root,我们可能无法获取CPU温度。因此,我们需要说明这一点。另外,我们还可以尝试使用一些系统命令,如`cat/proc/stat`或`/proc/cpuinfo`,但这些通常不提供温度信息。因此,我们给出一个通过ADB获取CPU温度的命令序列(假设设备已root,并且我们已知CPUthermalzone为thermal_zone1):```adbshell "su -c 'cat /sys/class/thermal/thermal_zone1/temp'"```或者,如果我们不确定是哪个thermal_zone,我们可以写一个简单的shell命令来查找: ```adbshell "su -c 'forfin /sys/class/thermal/thermal_zone*/type;do if[ \$(cat$f) =\"cpu\" ];then temp_file=\${f%/*}/temp; cat$temp_file;break; fi; done'"```解释:-遍历/sys/class/thermal/thermal_zone*/type文件-如果该文件的内容是"cpu",则读取该thermal_zone目录下的temp文件-注意:这个命令需要root权限,因此使用`su -c`来执行。但是,由于不同设备对thermal zone的命名可能不同(比如可能是"cpu0", "cpu1", "cputemp"等),我们可以尝试匹配包含"cpu"的字符串:将条件改为:`if[[\$(cat $f)== *cpu*]]; then...`在Android shell中,我们通常使用`sh`,而`sh`不支持`[[`,所以我们可以用`grep`: ```adbshell "su -c 'for fin /sys/class/thermal/thermal_zone*/type;do ifgrep -q \"cpu\"$f;then temp_file=\${f%/*}/temp; cat$temp_file;break;fi;done'" ```注意:这个命令在设备上执行,需要设备支持`grep`,通常Android设备都有。如果执行后没有输出,可能是没有找到包含"cpu"的thermalzone,或者没有root权限。另外,有些设备可能将温度文件放在其他路径,比如:/sys/devices/system/cpu/cpu0/cpufreq/cpu_temp/sys/devices/system/cpu/cpu0/cpufreq/FakeShmoo_cpu_temp/sys/class/hwmon/hwmon0/device/temp1_input/sys/class/i2c-sensor/i2c-0/device/temp因此,如果上述方法失败,我们可以尝试搜索整个系统:```adbshell "su -c 'find /sys -name temp*-o-name*temp*2>/dev/null| xargs grep-H\"[0-9]\"'" ```但注意,这可能会输出很多结果,而且需要root权限。考虑到车机设备可能使用定制的Android系统,我们也可以尝试使用车机系统特定的命令或接口。总结回答:由于用户要求通过ADB命令获取CPU温度,我们提供以下步骤:1.确保设备已root(否则可能无法获取)。2.使用ADB连接设备。3.执行命令读取温度文件。示例命令(假设thermal_zone1对应CPU): ```adbshell "su -c 'cat /sys/class/thermal/thermal_zone1/temp'"```如果不知道具体是哪个thermal_zone,则使用查找命令:``` adb shell"su-c'forf in/sys/class/thermal/thermal_zone*/type; doif grep-qcpu\$f;then cat\${f%/*}/temp; break; fi; done'"```如果上述命令失败,可以尝试其他常见路径:``` adb shell"su-c'cat/sys/class/hwmon/hwmon0/device/temp1_input'"```或者``` adb shell"su-c'cat/sys/devices/system/cpu/cpu0/cpufreq/cpu_temp'" ```如果设备未root,则无法通过ADB直接获取CPU温度,但可以获取电池温度:``` adb shelldumpsys battery| greptemperature```注意:电池温度的单位是0.1摄氏度,所以需要除以10得到摄氏度。最后,我们生成相关问题。</think>### 通过 ADB 获取 Android 车机 CPU 温度 #### 核心方法:读取系统温度文件(需 root 权限) Android 车机设备获取 CPU 温度的本质是读取系统 thermal 文件,不同芯片厂商路径不同: ```bash # 1. 连接车机设备 adb connect <设备IP>:<端口> # 若通过USB连接可跳过 # 2. 尝试读取常见温度文件路径 adb shell "su -c 'cat /sys/class/thermal/thermal_zone*/temp 2>/dev/null'" # 3. 若未找到,尝试扩展路径搜索 adb shell "su -c 'find /sys -name *temp* 2>/dev/null | grep thermal | xargs cat'" ``` #### 温度值解析 - 读取结果通常是 **整数**(如 `45000`),表示: $$ \text{实际温度} = \frac{\text{读取值}}{1000} \, ^\circ\text{C} $$ - 示例:`45000` → 45°C #### 常见芯片路径参考 | 芯片平台 | 典型路径 | |----------------|-------------------------------------------------------------------------| | 高通 (Snapdragon) | `/sys/class/thermal/thermal_zone[0-9]/temp` | | 联发科 (MTK) | `/sys/devices/virtual/thermal/thermal_zone[0-9]/temp` | | 瑞萨 (Renesas) | `/sys/devices/platform/soc/thermal/temp` | | 恩智浦 (NXP) | `/sys/class/hwmon/hwmon0/temp1_input` | > ⚠️ **重要提示**: > 1. 需要车机已 **root** 并开启 `su` 权限 > 2. 不同车机厂商可能定制路径(如比亚迪用 `/sys/class/thermal/byd_*`) > 3. 若返回 `Permission denied`,需在车机开发者选项中开启 **ADB root 权限**[^1] #### 替代方案:电池温度获取(无需 root) 当无法获取 CPU 温度时,可通过电池温度间接监测: ```bash adb shell dumpsys battery | grep temperature ``` 输出示例:`temperature: 320` → 32.0°C(单位:0.1°C) ---
阅读全文

相关推荐

import subprocess import re import time def run_adb_command(command): """执行ADB命令并返回输出""" try: result = subprocess.run( command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True ) if result.returncode != 0: return None return result.stdout.strip() except: return None def get_foreground_activity(): """获取前台应用Activity名称""" # 根据Android版本选择不同的命令(引用[2]) android_version = run_adb_command("adb shell getprop ro.build.version.release") if android_version and float(android_version[:3]) >= 9.0: command = "adb shell dumpsys activity activities | grep mResumedActivity" else: command = "adb shell dumpsys activity activities | grep mFocusedActivity" output = run_adb_command(command) if not output: return None # 解析Activity名称 match = re.search(r'(\S+)/', output) return match.group(1) if match else None def get_app_fps(package_name): """获取应用帧率(FPS)""" # 方法1: 使用gfxinfo命令(需要开发者选项中开启GPU渲染分析) gfx_output = run_adb_command(f"adb shell dumpsys gfxinfo {package_name}") if gfx_output: # 解析帧时间数据 frame_times = re.findall(r'(\d+\.\d+)\s+(\d+\.\d+)\s+(\d+\.\d+)', gfx_output) if frame_times: # 计算最近帧的平均FPS total_frames = len(frame_times) total_time = sum(float(frame[2]) for frame in frame_times) / 1000 # 转换为秒 return round(total_frames / total_time, 1) if total_time > 0 else 0 # 方法2: 使用SurfaceFlinger(引用[1]) surface_output = run_adb_command(f"adb shell dumpsys SurfaceFlinger | grep {package_name}") if surface_output: # 解析帧率数据 match = re.search(r'(\d+) fps', surface_output) if match: return int(match.group(1)) return None def get_surface_fps(): """直接获取SurfaceFlinger的全局帧率""" output = run_adb_command("adb shell dumpsys SurfaceFlinger --latency") if output: lines = output.split('\n') if len(lines) > 2: timestamps = [int(line.split()[0]) for line in lines[1:] if line.strip()] if len(timestamps) > 1: # 计算帧间隔时间 time_diff = (timestamps[-1] - timestamps[0]) / 1e9 # 纳秒转秒 return round((len(timestamps) - 1) / time_diff, 1) return None def get_refresh_rate(): """获取屏幕刷新率(Hz)""" # 方法1: 通过display服务 display_output = run_adb_command("adb shell dumpsys display | grep mRefreshRate") if display_output: match = re.search(r'mRefreshRate=([\d.]+)', display_output) if match: return float(match.group(1)) # 方法2: 通过SurfaceFlinger surface_output = run_adb_command("adb shell dumpsys SurfaceFlinger | grep refresh-rate") if surface_output: match = re.search(r'refresh-rate: ([\d.]+)', surface_output) if match: return float(match.group(1)) # 方法3: 通过wm命令 wm_output = run_adb_command("adb shell wm density") if wm_output: match = re.search(r'Physical size: \d+x\d+ @ ([\d.]+)', wm_output) if match: return float(match.group(1)) return 60.0 # 默认值 def get_display_info(): """获取完整的显示信息""" fps = get_surface_fps() or get_app_fps(get_foreground_activity()) refresh_rate = get_refresh_rate() return { "app_fps": fps, "refresh_rate": refresh_rate, "vsync_missed": fps and refresh_rate and (fps < refresh_rate * 0.9) } if __name__ == "__main__": # 示例使用 package = "com.android.settings" # 替换为目标包名 print("正在获取性能数据...") # 获取前台应用 foreground_app = get_foreground_activity() print(f"前台应用: {foreground_app or '未知'}") # 获取帧率 app_fps = get_app_fps(package) surface_fps = get_surface_fps() print(f"应用帧率(FPS): {app_fps or 'N/A'}") print(f"Surface帧率(FPS): {surface_fps or 'N/A'}") # 获取刷新率 refresh_rate = get_refresh_rate() print(f"屏幕刷新率: {refresh_rate} Hz") # 综合信息 display_info = get_display_info() print(f"显示同步状态: {'正常' if not display_info['vsync_missed'] else 'VSync丢失'}") #!/usr/bin/env python3 # -*- coding: gbk -*- # 声明GBK编码 import subprocess import re import time import csv from datetime import datetime class DeviceMonitor: def __init__(self, interval=5, output_file="device_performance.csv"): self.interval = interval # 监控间隔(秒) self.output_file = output_file self.header_written = False def check_adb_connection(self): """验证ADB设备连接状态""" try: result = subprocess.run( "adb devices", shell=True, capture_output=True, text=True, encoding='gbk' ) if "device" not in result.stdout: print("设备未连接或未授权") return False return True except Exception as e: print(f"ADB连接检查失败: {str(e)}") return False def get_foreground_package(self): """获取当前前台应用包名""" try: # 方法1: 使用dumpsys window命令 result = subprocess.run( "adb shell dumpsys window windows", shell=True, capture_output=True, text=True, encoding='gbk', errors='ignore' ) output = result.stdout # 尝试多种匹配模式 patterns = [ r'mCurrentFocus=Window\{.*?\s([a-zA-Z0-9._]+)/', r'mFocusedApp=AppWindowToken\{.*?\s([a-zA-Z0-9._]+)/', r'ResumedActivity: ActivityRecord\{.*?\s([a-zA-Z0-9._]+)/' ] for pattern in patterns: match = re.search(pattern, output) if match: return match.group(1) # 方法2: 使用dumpsys activity命令(备用) result = subprocess.run( "adb shell dumpsys activity activities", shell=True, capture_output=True, text=True, encoding='gbk', errors='ignore' ) match = re.search(r'ResumedActivity: ActivityRecord\{.*?\s([a-zA-Z0-9._]+)/', result.stdout) return match.group(1) if match else "unknown" except Exception as e: print(f"获取前台应用失败: {str(e)}") return "unknown" def get_cpu_usage(self): """获取CPU使用率(%)""" try: # 获取总CPU时间和空闲时间 result = subprocess.run( "adb shell top -n 1 -d 0.5 | grep {match.group(1)}", shell=True, capture_output=True, text=True ) cpu_stats = result.stdout.split()[1:] total_time = sum(map(int, cpu_stats)) idle_time = int(cpu_stats[3]) # 计算使用率 usage = 100 * (1 - idle_time / total_time) return round(usage, 1) except: return 0.0 def get_memory_usage(self): """获取内存使用情况(MB)""" try: result = subprocess.run( "adb shell cat /proc/meminfo", shell=True, capture_output=True, text=True ) meminfo = result.stdout.splitlines() total = int(meminfo[0].split()[1]) // 1024 free = int(meminfo[1].split()[1]) // 1024 used = total - free return total, used, free except: return 0, 0, 0 def get_battery_info(self): """获取电池信息和温度(℃)""" try: result = subprocess.run( "adb shell dumpsys battery", shell=True, capture_output=True, text=True ) output = result.stdout level = re.search(r'level: (\d+)', output) status = re.search(r'status: (\d+)', output) temp = re.search(r'temperature: (\d+)', output) return ( int(level.group(1)) if level else 0, int(status.group(1)) if status else 0, int(temp.group(1)) / 10.0 if temp else 0.0 # 转换为摄氏度 ) except: return 0, 0, 0.0 def get_cpu_temperature(self): """获取CPU温度(℃) - 需要root权限""" try: result = subprocess.run( "adb shell cat /sys/class/thermal/thermal_zone0/temp", shell=True, capture_output=True, text=True ) return float(result.stdout.strip()) / 1000.0 except: return 0.0 def monitor_performance(self): """主监控循环""" if not self.check_adb_connection(): print("设备连接失败,请检查ADB连接") return print(f"开始设备监控,间隔: {self.interval}秒") print("按Ctrl+C停止监控...") try: while True: timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") package = self.get_foreground_package() cpu_usage = self.get_cpu_usage() mem_total, mem_used, mem_free = self.get_memory_usage() batt_level, batt_status, batt_temp = self.get_battery_info() cpu_temp = self.get_cpu_temperature() # 输出到控制台 print(f"[{timestamp}] 应用: {package[:20]:<20} | " f"CPU: {cpu_usage}% | " f"内存: {mem_used}/{mem_total}MB | " f"电池: {batt_level}% | " f"温度: CPU:{cpu_temp:.1f}℃ 电池:{batt_temp:.1f}℃") # 保存到CSV文件 self.save_to_csv(timestamp, package, cpu_usage, mem_total, mem_used, mem_free, batt_level, batt_status, batt_temp, cpu_temp) time.sleep(self.interval) except KeyboardInterrupt: print("\n监控已停止") def save_to_csv(self, timestamp, package, cpu_usage, mem_total, mem_used, mem_free, batt_level, batt_status, batt_temp, cpu_temp): """保存数据到CSV文件""" data = [ timestamp, package, cpu_usage, mem_total, mem_used, mem_free, batt_level, batt_status, batt_temp, cpu_temp ] with open(self.output_file, 'a', newline='', encoding='utf-8') as f: writer = csv.writer(f) if not self.header_written: writer.writerow([ '时间戳', '前台应用', 'CPU使用率(%)', '内存总量(MB)', '已用内存(MB)', '空闲内存(MB)', '电池电量(%)', '电池状态', '电池温度(℃)', 'CPU温度(℃)' ]) self.header_written = True writer.writerow(data) if __name__ == "__main__": # 创建监控实例并启动(每10秒监控一次) monitor = DeviceMonitor(interval=10) monitor.monitor_performance() 将此两个脚本结合起来

#!/usr/bin/env python3 # -*- coding: gbk -*- # 声明GBK编码 import subprocess import re import time import csv from datetime import datetime class DeviceMonitor: def __init__(self, interval=5, output_file="device_performance.csv"): self.interval = interval # 监控间隔(秒) self.output_file = output_file self.header_written = False def check_adb_connection(self): """验证ADB设备连接状态""" try: result = subprocess.run( "adb devices", shell=True, capture_output=True, text=True, encoding='gbk' ) if "device" not in result.stdout: print("设备未连接或未授权") return False return True except Exception as e: print(f"ADB连接检查失败: {str(e)}") return False def get_foreground_package(self): """获取当前前台应用包名""" try: # 方法1: 使用dumpsys window命令 result = subprocess.run( "adb shell dumpsys window windows", shell=True, capture_output=True, text=True, encoding='gbk', errors='ignore' ) output = result.stdout # 尝试多种匹配模式 patterns = [ r'mCurrentFocus=Window\{.*?\s([a-zA-Z0-9._]+)/', r'mFocusedApp=AppWindowToken\{.*?\s([a-zA-Z0-9._]+)/', r'ResumedActivity: ActivityRecord\{.*?\s([a-zA-Z0-9._]+)/' ] for pattern in patterns: match = re.search(pattern, output) if match: return match.group(1) # 方法2: 使用dumpsys activity命令(备用) result = subprocess.run( "adb shell dumpsys activity activities", shell=True, capture_output=True, text=True, encoding='gbk', errors='ignore' ) match = re.search(r'ResumedActivity: ActivityRecord\{.*?\s([a-zA-Z0-9._]+)/', result.stdout) return match.group(1) if match else "unknown" except Exception as e: print(f"获取前台应用失败: {str(e)}") return "unknown" def get_cpu_usage(self): """获取CPU使用率(%)""" try: # 获取总CPU时间和空闲时间 result = subprocess.run( "adb shell top -n 1 -d 0.5 | grep {match.group(1)}", shell=True, capture_output=True, text=True ) cpu_stats = result.stdout.split()[1:] total_time = sum(map(int, cpu_stats)) idle_time = int(cpu_stats[3]) # 计算使用率 usage = 100 * (1 - idle_time / total_time) return round(usage, 1) except: return 0.0 def get_memory_usage(self): """获取内存使用情况(MB)""" try: result = subprocess.run( "adb shell cat /proc/meminfo", shell=True, capture_output=True, text=True ) meminfo = result.stdout.splitlines() total = int(meminfo[0].split()[1]) // 1024 free = int(meminfo[1].split()[1]) // 1024 used = total - free return total, used, free except: return 0, 0, 0 def get_battery_info(self): """获取电池信息和温度(℃)""" try: result = subprocess.run( "adb shell dumpsys battery", shell=True, capture_output=True, text=True ) output = result.stdout level = re.search(r'level: (\d+)', output) status = re.search(r'status: (\d+)', output) temp = re.search(r'temperature: (\d+)', output) return ( int(level.group(1)) if level else 0, int(status.group(1)) if status else 0, int(temp.group(1)) / 10.0 if temp else 0.0 # 转换为摄氏度 ) except: return 0, 0, 0.0 def get_cpu_temperature(self): """获取CPU温度(℃) - 需要root权限""" try: result = subprocess.run( "adb shell cat /sys/class/thermal/thermal_zone0/temp", shell=True, capture_output=True, text=True ) return float(result.stdout.strip()) / 1000.0 except: return 0.0 def monitor_performance(self): """主监控循环""" if not self.check_adb_connection(): print("设备连接失败,请检查ADB连接") return print(f"开始设备监控,间隔: {self.interval}秒") print("按Ctrl+C停止监控...") try: while True: timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") package = self.get_foreground_package() cpu_usage = self.get_cpu_usage() mem_total, mem_used, mem_free = self.get_memory_usage() batt_level, batt_status, batt_temp = self.get_battery_info() cpu_temp = self.get_cpu_temperature() # 输出到控制台 print(f"[{timestamp}] 应用: {package[:20]:<20} | " f"CPU: {cpu_usage}% | " f"内存: {mem_used}/{mem_total}MB | " f"电池: {batt_level}% | " f"温度: CPU:{cpu_temp:.1f}℃ 电池:{batt_temp:.1f}℃") # 保存到CSV文件 self.save_to_csv(timestamp, package, cpu_usage, mem_total, mem_used, mem_free, batt_level, batt_status, batt_temp, cpu_temp) time.sleep(self.interval) except KeyboardInterrupt: print("\n监控已停止") def save_to_csv(self, timestamp, package, cpu_usage, mem_total, mem_used, mem_free, batt_level, batt_status, batt_temp, cpu_temp): """保存数据到CSV文件""" data = [ timestamp, package, cpu_usage, mem_total, mem_used, mem_free, batt_level, batt_status, batt_temp, cpu_temp ] with open(self.output_file, 'a', newline='', encoding='utf-8') as f: writer = csv.writer(f) if not self.header_written: writer.writerow([ '时间戳', '前台应用', 'CPU使用率(%)', '内存总量(MB)', '已用内存(MB)', '空闲内存(MB)', '电池电量(%)', '电池状态', '电池温度(℃)', 'CPU温度(℃)' ]) self.header_written = True writer.writerow(data) if __name__ == "__main__": # 创建监控实例并启动(每10秒监控一次) monitor = DeviceMonitor(interval=10) monitor.monitor_performance() 将此脚本加个应用刷新率和帧率

01-01 13:59:17.057 01859 01871 I adbd : UsbFfsConnection constructed 01-01 13:59:17.059 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.061 01859 13941 I adbd : UsbFfs-monitor thread spawned 01-01 13:59:17.063 03905 03905 D SystemUi--Notification: RowAppearanceCoordinatorExImpl-->newListSize:{6} oldListSize:{6} 01-01 13:59:17.063 03905 03905 E LockScreenNotificationDispatcherImp: updateNotificationListOnKg size:0 01-01 13:59:17.066 03905 03905 D View : height = 1073741823, width = 984 01-01 13:59:17.066 03905 03905 W OplusViewDebugManager: 2025-01-01 13:59:17:066 2,2 main [WARNING]abnormal height 1073741823 for NotificationContentView parent ExpandableNotificationRow 01-01 13:59:17.068 03905 03905 D View : height = 1073741823, width = 984 01-01 13:59:17.068 03905 03905 W OplusViewDebugManager: 2025-01-01 13:59:17:068 2,2 main [WARNING]abnormal height 1073741823 for NotificationContentView parent ExpandableNotificationRow 01-01 13:59:17.071 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.071 02215 02291 D gaia:log_store: [rotateLogFileIfNeeded:377]LogFile(/data/log/ap_log/2025-01-01_00-08-30/)(android_log_20250101_131017.pb) need rotate, totalWriteSize: 52410584 01-01 13:59:17.075 03905 03905 I SystemUi--Notification: LockScreenNotificationDispatcherImp-->updateNotificationListOnKg resultCode: 0 01-01 13:59:17.081 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.099 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.109 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:17.123 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.133 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.141 01533 01548 D vendor.oplus.hardware.charger-V8-service: parallel fold conf file parse fail parallel_fold_state 2 01-01 13:59:17.141 01533 01548 D vendor.oplus.hardware.charger-V8-service: scale_chg Start!!! 01-01 13:59:17.143 01533 01548 D vendor.oplus.hardware.charger-V8-service: [0, 0, 3] 01-01 13:59:17.145 01533 01548 D vendor.oplus.hardware.charger-V8-service: [0, 2, 6] 01-01 13:59:17.146 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.146 01533 01548 D vendor.oplus.hardware.charger-V8-service: [0, 1, 4] 01-01 13:59:17.147 01533 01548 D vendor.oplus.hardware.charger-V8-service: [0, 3, 5] 01-01 13:59:17.149 01533 01548 D vendor.oplus.hardware.charger-V8-service: [0, 4, 5] 01-01 13:59:17.150 01533 01548 D vendor.oplus.hardware.charger-V8-service: [0, 5, 6] 01-01 13:59:17.151 01533 01548 D vendor.oplus.hardware.charger-V8-service: [0, 6, 0] 01-01 13:59:17.151 01533 01548 D vendor.oplus.hardware.charger-V8-service: scale_chg Start!!! 01-01 13:59:17.154 01533 01548 D vendor.oplus.hardware.charger-V8-service: [0, 0, 3] 01-01 13:59:17.157 01533 01548 D vendor.oplus.hardware.charger-V8-service: [0, 2, 6] 01-01 13:59:17.158 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.158 01533 01548 D vendor.oplus.hardware.charger-V8-service: [0, 1, 4] 01-01 13:59:17.160 01533 01548 D vendor.oplus.hardware.charger-V8-service: [0, 3, 5] 01-01 13:59:17.162 01533 01548 D vendor.oplus.hardware.charger-V8-service: [0, 4, 5] 01-01 13:59:17.164 01533 01548 D vendor.oplus.hardware.charger-V8-service: [0, 5, 6] 01-01 13:59:17.166 01533 01548 D vendor.oplus.hardware.charger-V8-service: [0, 6, 0] 01-01 13:59:17.176 03905 03905 D SystemUi--Notification: Notification--SmartDriverHelper-->isSmartDriveChannelNotification:false,notification:0|com.oplus.olc|1|null|1000 01-01 13:59:17.177 03905 03905 D SystemUi--Notification: DndAlertHelper-->Notification--isDNDNoticeChannelNotification:false,notification:0|com.oplus.olc|1|null|1000 01-01 13:59:17.179 03905 03905 D SystemUi--Notification: NotificationMediaManagerExt-->MEDIA_PANEL-->normal: DEBUG_MEDIA: getActiveSessionsForUser: 0 01-01 13:59:17.180 03905 03905 D SystemUi--Notification: NotificationForceStyleControl-->localOngoingDismissWhiteList:[com.android.incallui, com.android.printspooler, com.oplus.screenrecorder, com.oplus.cast, com.oplus.linker, com.oplus.padconnect, com.oplus.owork, com.oplus.ocar, com.coloros.soundrecorder, com.coloros.backuprestore, com.heytap.mcs, com.android.phone, com.coloros.lockassistant, com.oplus.olc, com.oppo.daydreamvideo, com.realme.smartdrive] isInLocalWhiteList:true onlineOngoingDismissWhiteList:null isInOnlineWhiteList:false isMediaStyle:false 01-01 13:59:17.181 03905 03905 D SystemUi--Notification: SystemAvaterNotificationHelper-->getMultiSystemUserId is DEFALUT_USERID 01-01 13:59:17.181 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.195 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.205 03905 03905 D SystemUi--Notification: RowAppearanceCoordinatorExImpl-->newListSize:{6} oldListSize:{6} 01-01 13:59:17.206 03905 03905 E LockScreenNotificationDispatcherImp: updateNotificationListOnKg size:0 01-01 13:59:17.207 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.209 03905 03905 D SystemUi--Notification: WakeupScreenHelper-->Notification--isNoticeWakeUpSwitchTurnedOn value = 0 01-01 13:59:17.210 03905 03905 D SystemUi--Notification: WakeupScreenHelper-->shouldWakeupForEntry:switch not on 01-01 13:59:17.211 03905 03905 D View : height = 1073741823, width = 984 01-01 13:59:17.211 03905 03905 W OplusViewDebugManager: 2025-01-01 13:59:17:211 2,2 main [WARNING]abnormal height 1073741823 for NotificationContentView parent ExpandableNotificationRow 01-01 13:59:17.211 03905 03905 D View : height = 1073741823, width = 984 01-01 13:59:17.212 03905 03905 W OplusViewDebugManager: 2025-01-01 13:59:17:211 2,2 main [WARNING]abnormal height 1073741823 for NotificationContentView parent ExpandableNotificationRow 01-01 13:59:17.216 03905 03905 I SystemUi--Notification: LockScreenNotificationDispatcherImp-->updateNotificationListOnKg resultCode: 0 01-01 13:59:17.217 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.220 03905 04826 I RemoteViews: replaceAction: key = 2_16908790setVisibility4, newRefAction.value=0, refAction.value=8 01-01 13:59:17.220 03905 04826 I RemoteViews: replaceAction: key = 2_16908790setText10, newRefAction.value=Feedback, refAction.value=null 01-01 13:59:17.220 03905 04826 I RemoteViews: replaceAction: key = 2_16909662setVisibility4, newRefAction.value=0, refAction.value=8 01-01 13:59:17.221 03905 04826 I RemoteViews: replaceAction: key = 2_16909658setVisibility4, newRefAction.value=0, refAction.value=8 01-01 13:59:17.222 03905 04826 I RemoteViews: replaceAction: key = 2_16908310setVisibility4, newRefAction.value=0, refAction.value=8 01-01 13:59:17.222 03905 04826 I RemoteViews: replaceAction: key = 2_16908310setText10, newRefAction.value=Capturing logs..., refAction.value=null 01-01 13:59:17.222 03905 04826 I RemoteViews: replaceAction: key = 2_16909626setVisibility4, newRefAction.value=0, refAction.value=8 01-01 13:59:17.223 03905 04826 I RemoteViews: replaceAction: key = 2_16909626setText10, newRefAction.value=00:49 min, refAction.value=null 01-01 13:59:17.224 03905 04826 I RemoteViews: replaceAction: key = 2_16908790setVisibility4, newRefAction.value=0, refAction.value=8 01-01 13:59:17.224 03905 04826 I RemoteViews: replaceAction: key = 2_16908790setText10, newRefAction.value=Feedback, refAction.value=null 01-01 13:59:17.224 03905 04826 I RemoteViews: replaceAction: key = 2_16909662setVisibility4, newRefAction.value=0, refAction.value=8 01-01 13:59:17.224 03905 04826 I RemoteViews: replaceAction: key = 2_16909658setVisibility4, newRefAction.value=0, refAction.value=8 01-01 13:59:17.226 03905 04826 I RemoteViews: replaceAction: key = 2_16908310setVisibility4, newRefAction.value=0, refAction.value=8 01-01 13:59:17.226 03905 04826 I RemoteViews: replaceAction: key = 2_16908310setText10, newRefAction.value=Capturing logs..., refAction.value=null 01-01 13:59:17.226 03905 04826 I RemoteViews: replaceAction: key = 2_16909626setVisibility4, newRefAction.value=0, refAction.value=8 01-01 13:59:17.226 03905 04826 I RemoteViews: replaceAction: key = 2_16909626setText10, newRefAction.value=00:49 min, refAction.value=null 01-01 13:59:17.228 03905 04826 I RemoteViews: replaceAction: key = 2_16908999setExpanded1, newRefAction.value=true, refAction.value=false 01-01 13:59:17.229 03905 03905 D SystemUi--Notification: NotifInflateDelay-->addTask: noNeedWait 01-01 13:59:17.229 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.229 03905 03905 D SystemUi--Notification: NotifInflateDelay-->checkNext:has next 01-01 13:59:17.235 02220 03407 D OplusBatteryServiceFeature: getPsyBatteryNotify: 1048712 01-01 13:59:17.238 02220 03407 D OplusBatteryServiceFeature: getPsyBatteryRm: 7368 01-01 13:59:17.239 02220 03407 D OplusBatteryServiceFeature: getPsyBatteryShortStatus: -2147483648 01-01 13:59:17.241 02220 03407 D OplusBatteryServiceFeature: getBattShortIcOtpStatus: -2147483648 01-01 13:59:17.243 02220 03407 D OplusBatteryServiceFeature: getPsyOtgOnline: 1 01-01 13:59:17.245 02220 03407 D OplusBatteryServiceFeature: getPsyUsbStatus: 0 01-01 13:59:17.248 02220 03407 D OplusBatteryServiceFeature: getPsyBatteryFcc: 7000 01-01 13:59:17.250 02220 03407 D OplusBatteryServiceFeature: getBattPPSChgIng: 0 01-01 13:59:17.250 03905 03905 D SystemUi--Notification: RowAppearanceCoordinatorExImpl-->newListSize:{6} oldListSize:{6} 01-01 13:59:17.251 03905 03905 E LockScreenNotificationDispatcherImp: updateNotificationListOnKg size:0 01-01 13:59:17.251 02220 03407 D OplusBatteryServiceFeature: getBattPPSChgPower: 0 01-01 13:59:17.252 03905 03905 D View : height = 1073741823, width = 984 01-01 13:59:17.253 03905 03905 W OplusViewDebugManager: 2025-01-01 13:59:17:253 2,2 main [WARNING]abnormal height 1073741823 for NotificationContentView parent ExpandableNotificationRow 01-01 13:59:17.253 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.254 03905 03905 D View : height = 1073741823, width = 984 01-01 13:59:17.254 02220 03407 D OplusBatteryServiceFeature: isFastCharge = 0 01-01 13:59:17.254 03905 03905 W OplusViewDebugManager: 2025-01-01 13:59:17:254 2,2 main [WARNING]abnormal height 1073741823 for NotificationContentView parent ExpandableNotificationRow 01-01 13:59:17.257 02220 03407 D OplusBatteryServiceFeature: getWirelessTXEnable: enable = 01-01 13:59:17.259 02220 03407 D OplusBatteryServiceFeature: getWirelessAdapterPower: -2147483648 01-01 13:59:17.259 03905 03905 I SystemUi--Notification: LockScreenNotificationDispatcherImp-->updateNotificationListOnKg resultCode: 0 01-01 13:59:17.261 02220 03407 D OplusBatteryServiceFeature: getBmsHeatingStatus: 0 01-01 13:59:17.263 01533 01533 D vendor.oplus.hardware.charger-V8-service: get_ui_charge_icon_type 0 0 0 0 0 01-01 13:59:17.263 02220 03407 D OplusBatteryServiceFeature: getChgConfig: 0 01-01 13:59:17.264 02220 03407 D OplusBatteryServiceFeature: getChgConfig: 0 01-01 13:59:17.265 01533 01533 D vendor.oplus.hardware.charger-V8-service: oplus_chg_get_cpa_power 7500 charge_online 1 retention_topic 0 01-01 13:59:17.265 02220 03407 D OplusBatteryServiceFeature: getChgConfig: 7 01-01 13:59:17.265 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.266 01533 01533 D vendor.oplus.hardware.charger-V8-service: oplus_chg_get_cpa_power 7500 charge_online 1 retention_topic 0 01-01 13:59:17.266 01533 01533 D vendor.oplus.hardware.charger-V8-service: getIsSingleHyperSupport=2, cpa_power=7 01-01 13:59:17.266 02220 03407 D OplusBatteryServiceFeature: getChgConfig: 2 01-01 13:59:17.267 02220 03407 D OplusBatteryServiceFeature: getChgConfig: 2 01-01 13:59:17.268 02220 03407 D HoraeHelper: skinThermal:57.331 01-01 13:59:17.268 02220 03407 D OplusBatteryService: Processing additional values: mChargerVoltage=5077, mLastChargerVoltage=5115, mBatteryCurrent=0, mLastBatteryCurrent=0, mBatteryLevel=100, mBatteryTemperature=585, mChargerTechnology=0, mChargeFastCharger=false, mChargeridVoltage=0, mLastChargeridVoltage=0, mPlugType=2, mBatteryStatus=5, mLastPlugType=2, mUsbStatus=0, mBatteryHwStatus=-2147483648, mHwStatusIsSet=1, mBatteryIcStatus=-2147483648, mIcStatusIsSet=1, mFastChgType=0 ,mChargeWattage: 0 ,mCPAChargeWattage: 7 ,mPPSChgIng: 0, mWirelessFastChgType=-2147483648, mWirelessReserve=0, mBmsHeatingStatus=0, mBatteryNotifyCode=1048712, mIsSupSpeedCharge=2, mByPassChargeStatus=2 01-01 13:59:17.269 02220 03042 D BatteryStatsImplExtImpl: setThermalState 01-01 13:59:17.270 02220 03042 D HoraeHelper: ambientThermal:-2147483648 01-01 13:59:17.273 02220 03042 D HoraeHelper: thermalStatus:16 01-01 13:59:17.278 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.289 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.303 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.315 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.327 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.341 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.351 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.363 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.375 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.387 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.399 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.411 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.423 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.435 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.447 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.459 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.471 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.483 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.495 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.507 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.520 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:17.534 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.537 01437 01473 I [email protected]: thermal_sample_event: TZ:18 temp:59830 01-01 13:59:17.547 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.560 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.571 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.584 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.595 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.607 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.619 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.631 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.643 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.655 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.667 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.679 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.691 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.703 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.715 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.727 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.739 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.751 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.764 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.775 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.787 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.800 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.803 01958 01958 W traced_probes: type=1400 audit(0.0:8771): avc: denied { read } for name="devfreq" dev="sysfs" ino=31317 scontext=u:r:traced_probes:s0 tcontext=u:object_r:vendor_sysfs_devfreq:s0 tclass=dir permissive=0 01-01 13:59:17.811 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:17.822 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.837 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.847 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:17.861 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:17.871 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.883 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.895 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.907 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.919 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.931 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.943 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.955 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.967 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:17.979 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:17.991 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.003 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.015 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.027 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:18.039 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.051 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.063 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.065 01859 13941 W adbd : timed out while waiting for FUNCTIONFS_BIND, trying again 01-01 13:59:18.066 01859 13941 I adbd : UsbFfs: connection terminated: monitor thread finished 01-01 13:59:18.069 01859 01859 I adbd : UsbFfs: already offline 01-01 13:59:18.069 01859 01859 I adbd : destroying transport UsbFfs 01-01 13:59:18.070 01533 01560 D vendor.oplus.hardware.charger-V8-service: ret_value:116, read content:,585,585,4415,4415,0,100,100,1,3,1048712,297,5077,100,0,4470,0,500,0,5,-22,0,0,1,0,2,1,0,0,4,7000,100,0,0,0,0,0,0,0 01-01 13:59:18.070 01859 01859 I adbd : UsbFfsConnection being destroyed 01-01 13:59:18.072 01533 01560 D vendor.oplus.hardware.charger-V8-service: gmtime: 2025-01-01-13-59-18 01-01 13:59:18.075 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.078 01533 01560 D vendor.oplus.hardware.charger-V8-service: usb_online:1, ac_online:-2147483648, wireless_online:-2147483648 01-01 13:59:18.087 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.099 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.103 01859 01871 I adbd : opening control endpoint /dev/usb-ffs/adb/ep0 01-01 13:59:18.115 01859 01871 I adbd : UsbFfsConnection constructed 01-01 13:59:18.117 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.122 01859 13942 I adbd : UsbFfs-monitor thread spawned 01-01 13:59:18.126 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.138 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.150 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.162 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:18.174 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.187 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.201 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.211 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.223 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.235 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.248 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.259 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.271 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.283 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.295 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.307 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.319 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:18.331 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.343 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.355 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.367 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:61000 01-01 13:59:18.379 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.391 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.405 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.415 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.427 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.439 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.451 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.463 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.475 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.486 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.498 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.511 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.523 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.535 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.547 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.559 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.571 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.583 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.595 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.607 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.619 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.631 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.644 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.657 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.667 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.679 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.691 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.703 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.714 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.727 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.740 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.751 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.763 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.775 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.787 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.799 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.803 01958 01958 W traced_probes: type=1400 audit(0.0:8772): avc: denied { read } for name="devfreq" dev="sysfs" ino=31317 scontext=u:r:traced_probes:s0 tcontext=u:object_r:vendor_sysfs_devfreq:s0 tclass=dir permissive=0 01-01 13:59:18.811 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.823 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.835 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.847 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.859 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.872 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.883 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.895 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.907 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.919 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.931 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.943 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.955 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.967 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:18.981 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:18.991 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:19.003 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:19.015 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:19.027 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:19.039 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:19.051 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:19.053 05586 06233 E OplusNetworkStackManager: initService mNetworkStackService is null, try again in 10s 01-01 13:59:19.063 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:19.075 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:19.087 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:19.099 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:19.111 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:19.124 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:19.125 01859 13942 W adbd : timed out while waiting for FUNCTIONFS_BIND, trying again 01-01 13:59:19.126 01859 13942 I adbd : UsbFfs: connection terminated: monitor thread finished 01-01 13:59:19.130 01859 01859 I adbd : UsbFfs: already offline 01-01 13:59:19.130 01859 01859 I adbd : destroying transport UsbFfs 01-01 13:59:19.131 01859 01859 I adbd : UsbFfsConnection being destroyed 01-01 13:59:19.135 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60600 01-01 13:59:19.147 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:19.151 01859 01871 I adbd : opening control endpoint /dev/usb-ffs/adb/ep0 01-01 13:59:19.159 01437 01473 I [email protected]: thermal_sample_event: TZ:15 temp:60200 01-01 13:59:19.161 01859 01871 I adbd : UsbFfsConnection constructed 01-01 13:59:19.166 01859 13943 I adbd : UsbFfs-monitor thread spawned再结合androidlog分析为啥adb断连

大家在看

recommend-type

react-map-gl-typescript:react-map-gl + create-react-app +打字稿

:bomb: react-map-gl + create-react-app +打字稿 此存储库呈现全屏Mapbox地图,由Typescript create-react-app -无需弹出! 克隆存储库 $ git clone [email protected]:zackhsi/react-map-gl-typescript.git 使用Mapbox令牌创建环境变量文件 首先,请确保您有一个。 在“ 页面上,创建访问令牌并进行复制。 然后,在存储库的根目录下创建一个.env.development.local文件。 create-react-app会将其加载到process.env ,如此。 $ cat &lt; .env.development.local REACT_APP_MAPBOX_TOKEN=your_mapbox_token EOF 安装节点模块 $ npm i 启动应用 $ n
recommend-type

3rdParty_VS2017_v141_x64_V11_small.7z

open scene graph
recommend-type

基于强化学习的坦克大战python语言实现

该游戏有两个系统。一个是玩家控制的小车。还有一个AI控制的坦克可以自动探寻敌方坦克所在位置,进行攻击。 运行run_examples.py文件,可以实现坦克战斗界面,其中: machine_control() # human_control() 两个函数进行选择性注释,第一个为增强学习后的坦克大战。第二个函数 human_control()为认为操作进行坦克大战。 run_RF.py函数实现了增强学习模型训练过程。 坦克大战功能: 人工操作坦克控制功能 使用pygame库之后,可以检测玩家的控制,当玩家按下按键后,就可以映射到我方坦克上,从而进行操控。基本操作是: w——前进 s——后退 a——向左前进 d——向右前进 空格——发射导弹 Tensorflow(神经网络编程框架) 2.12 Keras(高级神经网络框架) 2.3.4
recommend-type

欧瑞最新E2000变频器说明书

欧瑞最新E2000变频器说明书,官方发布的最新版本,欢迎大家下载!
recommend-type

matlab自相关代码-Ecology-Discovery-via-Symbolic-Regression:通过符号回归揭示复杂生态动力学的代

matlab自相关代码通过符号回归进行生态发现 通过符号回归揭示复杂生态动力学的代码回购 陈以泽,Marco Tulio Angulo和Liu Yang-Yu 被BioEssays接受,2019(作为封面故事),第41卷,第12期 动机 了解复杂生态系统的动态是维持和控制它们的必要步骤。 然而,逆向工程生态系统动力学仍然具有挑战性,这主要是因为生态系统可能会采用非常广泛的动力学类别,这使得选择合适的模型结构来应用参数推论方法具有挑战性。 在这里,我们建议通过符号回归来缩小这种差距,这是一种机器学习方法,可以从时间数据中自动对模型结构和参数进行逆向工程。 关于发现的生态动力学的一些结果 在这里,我们显示了一些生成的样本以及样本的自相关 语言和依存关系 我们使用Matlab来实现该算法。 具体来说,我们使用开源Matlab包在符号回归算法中启用了多基因搜索。

最新推荐

recommend-type

阿达啊是的租出去水电费水电费

企鹅请问阿西重置成本v啊阿萨达
recommend-type

2025全国特种作业操作证高处安装、维护、拆除真题及答案.docx

2025全国特种作业操作证高处安装、维护、拆除真题及答案.docx
recommend-type

Typora下载问题解决:资源安装包实测可用

### 知识点:Typora下载与安装问题解决 #### 1. Typora 简介 Typora 是一款流行的轻量级Markdown编辑器,它将实时预览功能和源代码编辑结合在一起,为用户提供了一个简洁高效的写作环境。由于其独特的设计和出色的用户体验,Typora 迅速在开发者和内容创作者之间获得了普及。 #### 2. Markdown 简介 Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。Markdown 被广泛用于编写 README 文件、撰写文章、创建富文本内容等。其特点在于简化了传统的排版语法,让写作更加专注于内容本身。 #### 3. Typora 的特点和优势 - **所见即所得编辑器**:Typora 结合了传统Markdown编辑器和富文本编辑器的优点,使得用户在编写文档时可以直接看到最终效果。 - **跨平台兼容性**:Typora 支持Windows、macOS以及Linux等多个操作系统。 - **简洁的界面**:它拥有简洁的用户界面,没有复杂的菜单,这有助于减少分心,专注于内容创作。 - **即时预览**:Typora 提供即时预览功能,用户可以立即看到其标记语法对应的视觉效果。 - **集成度高**:支持插入图片、代码块、表格、数学公式等多种格式。 - **扩展性**:支持多种主题和插件,可以进一步增强其功能。 #### 4. 关于标题:“关于Typora下载找不到资源” 当用户在寻找Typora的下载资源时,可能会遇到找不到官方下载链接或被错误资源误导的问题。这可能是由于网络环境限制、搜索关键词不当或者不正确的网站导航等原因导致的。为了解决这个问题,重要的是要知道如何辨别官方下载渠道,以及如何查找和验证可靠的资源。 #### 5. 官方资源的识别和下载 - **访问官方网站**:访问 Typora 的官方网站(https://typora.io/)获取最新版本的下载信息。官方网站是获取软件的最安全和最可靠的方式。 - **下载安装包**:官方网站通常会提供最新版本的安装包下载链接,例如,在此案例中,压缩包子文件名列表中的 typora-setup-x64-0.9.49.exe 对应了 Typora 的一个版本号为 0.9.49 的安装程序,适用于64位Windows系统。 - **检查版本更新**:在安装之前,用户应当确认是否是当前最新版本。如果不是,可从官方网站下载最新版本。 #### 6. 安装包文件名称解析 文件名 typora-setup-x64-0.9.49.exe 中的各部分含义: - **typora**:指的是要安装的软件名。 - **setup**:通常表示这是一个安装程序。 - **x64**:表示这个安装程序支持64位系统架构。 - **0.9.49**:表示这个版本号,用户可以通过这个版本号了解其更新历史和功能改进情况。 #### 7. 实测完成 “实测完成”这一描述表明此文件已经过测试,并确认可以正常下载和安装。实测的流程包括下载安装包、运行安装程序、完成安装以及验证软件功能是否正常。 #### 8. 安装流程详解 1. **下载**:从官方网站下载对应操作系统版本的 Typora 安装包。 2. **运行安装程序**:双击下载的安装程序文件(例如 typora-setup-x64-0.9.49.exe)。 3. **安装向导**:安装向导启动后,遵循提示完成安装。可能包含选择安装路径、接受许可协议、选择开始菜单文件夹等步骤。 4. **完成安装**:完成安装向导后,可能需要重启电脑以完成安装。 5. **验证安装**:启动 Typora 程序,检查软件是否能够正常打开,并确保可以正常使用Markdown编辑功能。 #### 9. 常见问题及解决方案 - **找不到下载资源**:确保访问官方网站或使用正规的软件分发平台获取资源。 - **安装程序无法运行**:检查文件是否有损坏,重新下载安装包。确认系统环境满足安装需求,如操作系统版本兼容性、运行库等。 - **软件无法打开**:尝试以管理员权限运行 Typora,或检查是否有系统安全软件阻止其运行。 - **功能异常或错误**:检查是否有可用的软件更新,或者查看 Typora 官方论坛获取帮助。 #### 10. Typora 的未来展望 由于 Typora 不断更新迭代,功能和用户界面可能会有所改变,包括对新特性的支持和旧特性的优化。同时,开发者社区也在不断地为 Typora 开发新的主题和插件,以提供更加丰富的写作体验和扩展功能。用户应定期访问官方网站或关注官方消息,以便获取最新动态和软件更新。 通过以上介绍和问题解答,用户应该可以更好地理解 Typora 的下载与安装过程,并在遇到相关问题时快速找到解决方法,从而顺利使用这款强大的Markdown编辑器。
recommend-type

网络嗅探器实战进阶:掌握高效数据捕获与准确分析的6大策略

# 1. 网络嗅探器基础原理与工具介绍 网络嗅探器,或称为网络分析器、包分析器,是一种用于捕获网络中的数据包并分析其内容的工具。它们通过直接连接到网络上,读取传输中的数据包信息,为网络安全、故障排除和网络性
recommend-type

system verilog task中用宏定义传参

<think>好的,用户现在想了解如何在SystemVerilog中使用宏定义向task传递参数。之前我已经回答了C/C++中宏定义传参的方法,现在需要迁移到SystemVerilog,同时结合用户提供的引用内容。 首先,我需要回忆SystemVerilog中宏的基本语法,确认是否与C/C++类似。SystemVerilog确实支持`define宏,带参数的形式应该也是类似的。用户提供的引用中提到`__FILE__`和`__LINE__`,这些可能和调试有关,所以可能需要考虑在宏中加入这些信息来帮助调试。 接下来,用户的问题是关于如何通过宏向task传参。这里的task应该是指System
recommend-type

Java开发的Help GUI 1.1源码:可视化组件库详解

在分析给定文件信息后,可以提取出如下知识点: 首先,标题中提到了“基于java的开发源码-帮助视图组件库 Help GUI 1.1源代码.zip”,这说明文件包含了一个Java开发的开源项目,该库被命名为Help GUI,版本为1.1。在此基础上,我们可以讨论以下几个方面: 1. Java开发: - Java是一种广泛使用的面向对象的编程语言,它具有跨平台的特性,即“一次编写,到处运行”的能力。Java通过Java虚拟机(JVM)来实现跨平台运行。 - Java的开发环境一般需要配置Java开发工具包(JDK)和集成开发环境(IDE),如Eclipse、IntelliJ IDEA或PyCharm。 - Java支持多线程编程,拥有丰富的类库和框架,如Spring、Hibernate等,用以简化开发流程。 - Java在企业级应用、移动开发(Android)、桌面应用和服务器端应用中都有广泛的应用。 2. 开源项目: - 开源项目是指源代码公开的软件项目,通常遵循特定的开源许可协议,如GPL、LGPL、Apache License等。 - 开源项目的优势在于可自由使用、修改和分发代码,能够促进技术的交流和创新。 - 通过参与开源项目,开发者可以提高自身的技术水平,贡献代码以回馈社区。 3. 组件库Help GUI 1.1: - Help GUI可能是一个为开发者提供的图形用户界面(GUI)组件库,用于简化Java桌面应用的帮助视图创建。 - 组件库一般会包含一系列预制的用户界面组件,例如按钮、文本框、列表框、对话框等,以帮助快速构建用户界面。 - 版本1.1表明这是组件库的一个更新版本,通常新版本会增加新的特性、修复bug、优化性能。 4. PyCharm配置Python环境: - 这部分描述似乎与主标题无关,但其可能涉及PyCharm这一IDE的使用。 - PyCharm是专为Python语言开发的IDE,但也可以配置Java开发环境。 - 在配置Python环境时,需要安装Python解释器,并设置相关的路径、环境变量等。 - PyCharm提供了代码高亮、代码自动完成、版本控制等功能,能够提升开发效率。 由于【压缩包子文件的文件名称列表】中只有一个“codefans.net”,这可能是一个网站地址,但没有提供足够的信息来推断与上述Java项目或组件库直接相关的内容。 综上所述,文件描述了一个基于Java的开源组件库Help GUI 1.1,该组件库用于帮助开发者创建帮助视图,且暗示了PyCharm这一IDE的使用。通过探讨Java开发、开源项目、组件库和IDE配置等知识点,可以更好地理解文件所指的项目背景和应用场景。
recommend-type

网络嗅探器全攻略:从入门到精通的15大技巧与实践案例

# 1. 网络嗅探器基础与重要性 在数字化的世界中,网络嗅探器是IT专业人员的重要工具,它允许我们监视和分析经过网络的数据包。本章将带您了解网络嗅探器的基本概念及其在网络安全和性能监控中的关键作用。 ## 网络嗅探器概述 网络嗅探器,通常被称为“抓包工具”或“协议分析器”,是一种可以监听、记录和分析网络流量的程序或设备。它们在排除网络问题、进行安全审计和协议分析时发挥着重要作用。 ##
recommend-type

RTL8720DN-VA1-CG后面的VA1-CG是什么意思

<think>嗯,用户这次的问题转向了具体的芯片型号解析,询问RTL8720DN-VA1-CG后缀的含义。这属于硬件标识领域的专业问题,需要结合芯片命名规则和行业惯例来分析。 从用户提问方式看,ta应该具备一定技术背景,可能是电子工程师或物联网开发者,正在做物料选型或故障排查。用户特意强调"参考站内引用"但实际没有引用源,说明需要权威解释而非普通科普。之前讨论Wi-Fi频段差异时用户表现出对技术参数的敏感,这次提问同样注重细节标识。 关于这个型号后缀,需要拆解三部分分析: VA1通常代表芯片修订版本(revision),比如初版叫VA0,改进版叫VA1。CG后缀可能有多种含义:最常见的是封
recommend-type

CCPD2019车牌数据集:10000张带YOLO标签图片

车牌检测是计算机视觉领域的一个重要应用,尤其在智能交通系统、监控视频分析以及车辆管理等方面具有广泛的应用。CCPD2019车牌数据集是专为车牌检测任务设计的数据集,包含了大量的实际场景中拍摄的车辆图片及其对应的标注信息,这些标注信息以YOLO(You Only Look Once)格式提供。 YOLO是一种流行的目标检测算法,因其速度和准确性相结合而受到广泛欢迎。在YOLO算法中,整个图像被一次性通过网络进行处理,同时预测出多个边界框和这些框所属的类别。YOLO将目标检测任务视为一个回归问题,直接从图像像素到边界框坐标和类别概率的映射,与其他基于区域的方法相比,YOLO在速度上有很大的优势,可以实现实时检测。 YOLO格式标签是一种特殊的标注格式,它提供了用于训练和验证模型的数据。这些标签通常包含每个目标的类别以及它的位置信息,通常在一张图片的标注文件中,对于每一个检测到的车辆,都会有一个对应的标注行,标注行中包含了该车辆车牌的位置、大小和类别信息。通常这些信息包括:标注物体在原图中的中心点坐标(x,y)、宽度、高度以及类别ID。 使用CCPD2019车牌数据集,研究人员和工程师可以进行深度学习模型的训练,特别是基于YOLO算法的车牌检测模型。数据集中的图片是精心挑选的,包含了各种光照条件、不同角度和遮挡情况下的车牌图像,这对于提高模型在现实世界中检测的准确性和鲁棒性至关重要。 在深度学习中,训练模型需要大量的标注数据。一个高质量的数据集对于模型能否成功学习到目标检测中的关键特征是至关重要的。CCPD2019车牌数据集提供的10000张图片以及它们的YOLO格式标签,能够为模型提供充足的训练材料。这些标签通常都是由人工仔细标注,确保了标注的质量和准确性。 深度学习在车牌识别系统中的应用是多方面的,不仅包括检测车牌的位置,还包括车牌字符的分割和识别。在实际应用中,经过训练的YOLO模型首先对输入图像中的车牌区域进行定位,然后可以通过其他专门设计的深度学习模型对车牌上的文字进行识别。 CCPD2019车牌数据集对于研究和开发车牌识别技术具有重要价值,它有助于推动计算机视觉领域特别是车牌检测和识别技术的发展。通过深度学习,特别是使用YOLO这样的先进算法,可以实现车牌的快速准确识别,这对于智能交通管理、车辆安全监控和交通流量分析等应用具有十分重要的意义。
recommend-type

【精准温度测量与HP303B校准】:掌握这些高级技巧,提升测量准确性

# 摘要 本文系统地探讨了精准温度测量的科学原理,并对HP303B温度传感器的特性、技术参数、校准准备和校准步骤进行了详细介绍。文章进一步讨论了提