功耗日志抓取需求

最近羅列了一些功耗分析需要的常見日志:

測試功耗前:

adb shell dumpsys batterystats --reset

adb shell dumpsys batterystats --enable full-wake-history

測試功耗后,使用腳本導出如下功耗日志:

腳本

chmod +x collect_logs.sh

./collect_logs.sh

運行腳本后,所有日志將被保存到 logs_<時間戳>.zip 文件中

抓取命令

說明

#!/bin/bash

# 定義日志保存目錄

LOG_DIR="logs"

mkdir -p $LOG_DIR

# 1. adb bugreport

echo "Collecting adb bugreport..."

adb bugreport > $LOG_DIR/bugreport.txt

# 2. adb shell dumpsys batterystats

echo "Collecting batterystats..."

adb shell dumpsys batterystats > $LOG_DIR/batterystats.txt

# 3. adb shell dumpsys power

echo "Collecting power info..."

adb shell dumpsys power > $LOG_DIR/power.txt

# 4. adb shell dumpsys window

echo "Collecting window info..."

adb shell dumpsys window > $LOG_DIR/window.txt

# 5. adb shell dumpsys activity processes

echo "Collecting process status..."

adb shell dumpsys activity processes > $LOG_DIR/process_status.txt

# 6. adb logcat

echo "Collecting logcat..."

adb logcat -d > $LOG_DIR/logcat.txt

# 7. adb shell dumpsys cpuinfo

echo "Collecting CPU info..."

adb shell dumpsys cpuinfo > $LOG_DIR/cpuinfo.txt

# 8. adb shell dumpsys netstats

echo "Collecting netstats..."

adb shell dumpsys netstats > $LOG_DIR/netstats.txt

# 9. adb shell getprop

echo "Collecting system properties..."

adb shell getprop > $LOG_DIR/getprop.txt

# 10. adb shell dumpsys jobscheduler

echo "Collecting jobscheduler info..."

adb shell dumpsys jobscheduler > $LOG_DIR/jobscheduler.txt

# 11. adb shell dumpsys usagestats

echo "Collecting usagestats..."

adb shell dumpsys usagestats > $LOG_DIR/usagestats.txt

# 12. adb shell dumpsys settings

echo "Collecting settings info..."

adb shell dumpsys settings > $LOG_DIR/settings.txt

# 13. adb shell dumpsys sensorservice

echo "Collecting sensor info..."

adb shell dumpsys sensorservice > $LOG_DIR/sensorservice.txt

# 14. adb shell dumpsys device_policy

echo "Collecting device policy info..."

adb shell dumpsys device_policy > $LOG_DIR/device_policy.txt

# 15. adb shell tcpdump

echo "Collecting tcpdump (this may take a while)..."

adb shell tcpdump -i any -s 0 -w /sdcard/capture.pcap &

TCPDUMP_PID=$!

sleep 10 ?# 抓包 10 秒

kill $TCPDUMP_PID

adb pull /sdcard/capture.pcap $LOG_DIR/capture.pcap

adb shell rm /sdcard/capture.pcap

# 16. adb shell dumpsys wifi

echo "Collecting Wi-Fi info..."

adb shell dumpsys wifi > $LOG_DIR/wifi.txt

# 17. adb shell dumpsys location

echo "Collecting location info..."

adb shell dumpsys location > $LOG_DIR/location.txt

# 18. adb shell iptables

echo "Collecting iptables rules..."

adb shell iptables -L -v -n > $LOG_DIR/iptables.txt

# 19. adb shell dumpsys netpolicy

echo "Collecting netpolicy info..."

adb shell dumpsys netpolicy > $LOG_DIR/netpolicy.txt

# 20. adb shell dumpsys deviceidle

echo "Collecting deviceidle info..."

adb shell dumpsys deviceidle > $LOG_DIR/deviceidle.txt

# 21. adb shell dumpsys connmetrics

echo "Collecting connmetrics info..."

adb shell dumpsys connmetrics > $LOG_DIR/connmetrics.txt

# 打包日志

echo "Compressing logs..."

TIMESTAMP=$(date +"%Y%m%d_%H%M%S")

ZIP_FILE="logs_$TIMESTAMP.zip"

zip -r $ZIP_FILE $LOG_DIR

echo "Logs have been saved to $ZIP_FILE"

adb bugreport

內部提單:雖然是最佳的功耗日志,但是抓取耗時且日志大,故實驗室環境抓就行

adb shell dumpsys batterystats

大數據提單:BatteryStats日志可以理解為簡版的BugReport日志,優點日志小

adb shell dumpsys power

電源管理信息,也包含wakelock日志

adb shell dumpsys window

窗口管理信息

adb shell dumpsys activity processes

進程狀態信息

adb logcat

1.內部提單需完整流水日志,例如完整的mtklog、展訊log

2.大數據提單,需至少最近2小時內的logcat流水日志

adb shell dumpsys cpuinfo

獲取 CPU 使用情況

adb shell dumpsys netstats

網絡 socket 狀態

adb shell getprop

獲取系統屬性

adb shell dumpsys jobscheduler

獲取 JobScheduler 任務信息

adb shell dumpsys usagestats

獲取應用使用統計信息

adb shell dumpsys settings

獲取系統設置信息

adb shell dumpsys sensorservice

獲取傳感器信息

adb shell dumpsys device_policy

獲取設備策略信息

adb shell tcpdump -i any -s 0 -w /sdcard/capture.pcap

抓取網絡數據包(需要 root 權限)

adb shell dumpsys wifi

獲取 Wi-Fi 狀態信息

adb shell dumpsys location

獲取 GPS 狀態信息

adb shell iptables -L -v -n

獲取 iptables 規則

adb shell dumpsys netpolicy

獲取網絡策略信息

adb shell dumpsys deviceidle

獲取Doze模式管控信息

adb shell dumpsys connmetrics

待機中packet wakeup events

/power/log

定制的通用、場景、資源監控、溫升等7天內的精簡日志

例如導出如下bugReport日志和dump日志,其中流水日志建議使用方案商給的流水日志單獨導出

0

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/76901.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76901.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/76901.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java后端開發流程

Java后端開發流程 目錄 開發流程概述具體實現步驟開發最佳實踐項目結構示例代碼示例常見問題與解決方案 開發流程概述 Java后端開發是一個系統化的過程&#xff0c;通常包括以下幾個主要階段&#xff1a; 1. 需求分析階段 業務需求收集&#xff1a;與產品經理、業務方溝通…

Java項目之基于ssm的孩童收養信息管理(源碼+文檔)

項目簡介 孩童收養信息管理實現了以下功能&#xff1a; 實現了用戶在線選擇試題并完成答題&#xff0c;在線查看考核分數。管理員管理字典管理、收養管理、收養信息更改記錄管理、收養者配偶管理、送養管理、員工管理、管理員管理等功能。 &#x1f495;&#x1f495;作者&am…

查詢條件與查詢數據的ajax拼裝

下面我將介紹如何使用 AJAX 動態拼裝查詢條件和獲取查詢數據&#xff0c;包括前端和后端的完整實現方案。 一、前端實現方案 1. 基礎 HTML 結構 html 復制 <div class"query-container"><!-- 查詢條件表單 --><form id"queryForm">…

【算法競賽】狀態壓縮型背包問題經典應用(藍橋杯2019A4分糖果)

在藍橋杯中遇到的這道題&#xff0c;看上去比較普通&#xff0c;但其實蘊含了很巧妙的“狀態壓縮 背包”的思想&#xff0c;本文將從零到一&#xff0c;詳細解析這個問題。 目錄 一、題目 二、思路分析&#xff1a;狀態壓縮 最小覆蓋 1. 本質&#xff1a;最小集合覆蓋問題…

STL 性能優化實戰:解決項目中標準模板庫的性能瓶頸

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家、全棧領域優質創作者、高級開發工程師、高級信息系統項目管理師、系統架構師&#xff0c;數學與應用數學專業&#xff0c;10年以上多種混合語言開發經驗&#xff0c;從事DICOM醫學影像開發領域多年&#xff0c;熟悉DICOM協議及…

大模型如何優化數字人的實時交互與情感表達

標題:大模型如何優化數字人的實時交互與情感表達 內容:1.摘要 隨著人工智能技術的飛速發展&#xff0c;數字人在多個領域的應用愈發廣泛&#xff0c;其實時交互與情感表達能力成為提升用戶體驗的關鍵因素。本文旨在探討大模型如何優化數字人的實時交互與情感表達。通過分析大模…

qt designer 軟件主題程序設計

對于使用Qt Designer設計的界面&#xff0c;主題切換的實現需要結合Qt的信號槽機制、樣式表動態加載以及資源管理。以下是針對Qt Designer UI的詳細解決方案&#xff1a; 一、UI文件與主題系統的整合架構 二、核心實現步驟 1. 動態樣式表加載系統 // ThemeManager.h class …

一、STM32簡介

一、實驗器材介紹 二、STM32簡介 1.STM32 名詞解釋 STM32是ST公司基于ARM Cortex-M內核開發的32位微控制器。 ST&#xff0c;指ST公司&#xff08;意法半導體&#xff09;;M&#xff0c;MicroController 微控制器&#xff08;MCU,MicroController Unit 微控制器單元/單片機&…

JVM虛擬機篇(一)深入理解JVM:組成部分、運行流程及程序計數器詳解

JVM虛擬機篇&#xff08;一&#xff09;深入理解JVM&#xff1a;組成部分、運行流程及程序計數器詳解 JVM虛擬機篇&#xff08;一&#xff09;深入理解JVM&#xff1a;組成部分、運行流程及程序計數器詳解一、引言二、JVM的組成部分2.1 類加載子系統2.2 運行時數據區2.3 執行引…

elementui的默認樣式修改

今天用element ui &#xff0c;做了個消息提示&#xff0c;發現提示的位置總是在上面&#xff0c;如圖&#xff1a; 可是我想讓提示的位置到下面來&#xff0c;該怎么辦&#xff1f; 最后還是看了官方的api 原來有個自定義樣式屬性 customClass 設置下就好了 js代碼 css代碼 效…

游戲引擎學習第204天

回顧并為今天的內容做鋪墊 好&#xff0c;現在開始這一集。今天我們將進行一些用戶界面編程&#xff0c;覺得這是一個展示如何編寫這類代碼的好時機。很多人對如何做用戶界面代碼都很好奇&#xff0c;所以展示一下如何編寫是非常有意義的。 我之所以在現在的這個地方做這些工…

我的世界1.20.1forge模組開發進階教程——TerraBlender

TerraBlender介紹 從模組開發者的視角來看,TerraBlender為Minecraft生物群系類模組的開發提供了全方位的技術支持,顯著降低了開發門檻并提升了模組的質量與擴展性: 跨平臺兼容性架構支持Forge/Fabric/Quilt/NeoForge四大主流加載器,開發者無需為不同平臺單獨適配代碼客戶端…

借助mcpo在open-webui中使用mcp

open-webui前幾天發布了0.6版本&#xff0c;我立即進行了升級。新版本中一個重要功能是通過mcpo方式支持了mcp server。本文將介紹mcpo是什么&#xff0c;以及如何在open-webui中使用它。同時&#xff0c;我也會分享幾個在接入過程中遇到的問題及解決方案。 首先來介紹mcpo&…

安裝gpu版本的dgl

1.先去網址&#xff0c;找到對應版本的dgl,然后下載到本地。 dgl-whl下載地址 我的是python 3.8 &#xff0c;cuda 11.6. windows 2.在虛擬環境里 輸入 pip install E:\dgl-1.0.2cu116-cp38-cp38-win_amd64.whl &#xff08;因為我下載到E盤里了&#xff09; 這樣GPU版本的d…

PyTorch使用(7)-張量常見運算函數

1. 基本數學運算 1.1 平方根和冪運算 import torchx torch.tensor([4.0, 9.0, 16.0])# 平方根 sqrt_x torch.sqrt(x) # tensor([2., 3., 4.])# 平方 square_x torch.square(x) # tensor([16., 81., 256.])# 任意冪次 pow_x torch.pow(x, 3) # tensor([64., 729., 4096…

Nginx功能及應用全解:從負載均衡到反向代理的全面剖析

Nginx作為一款開源的高性能HTTP服務器和反向代理服務器&#xff0c;憑借其高效的資源利用率和靈活的配置方式&#xff0c;已成為互聯網領域中最受歡迎的Web服務器之一。無論是作為HTTP服務器、負載均衡器&#xff0c;還是作為反向代理和緩存服務器&#xff0c;Nginx的多種功能廣…

安徽京準:NTP時間同步服務器操作使用說明

安徽京準&#xff1a;NTP時間同步服務器操作使用說明 3.1 連接天線 天線連接到“ANT”口。 3.2 連接電源 將220V電源線連到AC220V座上或將電源適配器&#xff08;7.5V~12V&#xff09;接到DC口上。也可以同時接上&#xff0c;提高供電可靠性。 3.3 LAN網口 網線連接到NTP…

Java項目之基于ssm的懷舊唱片售賣系統(源碼+文檔)

項目簡介 懷舊唱片售賣系統實現了以下功能&#xff1a; 用戶信息管理&#xff1a; 用戶信息新增&#xff1a;添加新用戶的信息。 用戶信息修改&#xff1a;對現有用戶信息進行修改。 商品信息管理&#xff1a; 商品信息添加&#xff1a;增加新的商品&#xff08;唱片&#x…

基于 Python 的自然語言處理系列(70):檢索增強生成(RAG)

1. 什么是 RAG&#xff1f; 在許多大模型&#xff08;LLM&#xff09;應用場景中&#xff0c;我們需要使用特定的用戶數據&#xff0c;而這些數據并未包含在模型的訓練集中。檢索增強生成&#xff08;Retrieval Augmented Generation&#xff0c;RAG&#xff09;是一種有效的解…

CAD插件實現:所有文字顯示到列表、縮放、編輯——CAD-c#二次開發

當圖中有大量文字&#xff0c;需要全部顯示到一個列表時并縮放到需要的文字時&#xff0c;可采用插件實現&#xff0c;效果如下&#xff1a; 附部分代碼如下&#xff1a; private void BtnSelectText_Click(object sender, EventArgs e){var doc Application.DocumentManager.…