因为对象需要,所以入坑了Windows环境下的adb调试
对象的公司搞拓项,要用到adb,她没用过,巧了,我也没用过。
上网整理了一下相关操作,记录如下
一、模拟器和APP
安装模拟器
下载地址:(雷电模拟器)
https://lddl01.ldmnq.com/downloader/ldplayerinst9.exe?n=ldplayer9_ld_405236_ld.exe
手动安装APP
把apk文件拖进模拟器即可
打开开发者模式
-
进入设置:启动模拟器并进入设置。
-
关于设备:找到“关于电脑”或“关于手机”。
-
激活开发者模式:连续点击版本号字样,会有提示信息,继续点击几秒即可进入开发者模式。
-
重新进入设置:返回设置页面,会看到“开发者选项”,或者在搜索框搜索。
-
开启 USB 调试:进入开发者选项,打开“USB 调试”
二、ADB
安装Android Studio
下载地址
https://redirector.gvt1.com/edgedl/android/studio/install/2024.3.2.14/android-studio-2024.3.2.14-windows.exe
配置ADB
检查adb是否已安装
-
win+R打开命令提示符,输入cmd,回车
-
输入adb version,如果出现以下文字则未安装。
不是内部或外部命令,也是不可运行的程序或批处理文件。
未安装时配置
- 打开Android Studio,鼠标移动到左上角,点击
- 在出现的菜单栏上,选中 File 下的 Settings
- 在搜索框输入Android SDK,见图三标记1,依次点击标记2、标记4、标记5
-
打开图三标记3展示的文件夹,打开platform-tools,查看adb.exe是否存在
-
复制platform-tools文件夹的完整路径,如
E:\Android\Sdk\platform-tools
- win+R打开命令提示符,输入以下命令打开环境变量
rundll32 sysdm.cpl,EditEnvironmentVariables
- 编辑系统变量下的Path,将platform-tools文件夹的完整路径添加到最下方。
-
win+R,输入cmd,重新打开一个命令提示符,输入adb version,出现以下类似输出即为成功
Android Debug Bridge version 1.0.41
Version 35.0.2-12147458
Installed as E:\Android\Sdk\platform-tools\adb.exe
Running on Windows 10.0.19045
三、ADB的使用
前置准备
win+R,输入cmd,打开命令提示符
查看设备
输入:
adb devices
输出示例:
List of devices attached
emulator-554 device
emulator-5554为手机或模拟器的设备名称,5554为 监听端口
安装应用
输入
adb install
如:
adb install E:\software\Android-SDK\Android-SDK@4.65.82412_202505014\HBuilder-Integrate-AS\simpleDemo\release\simpleDemo-release.apk
输出示例:
Performing Streamed Install
Success
卸载应用
输入:
adb uninstall com.android.simple
输出示例:
Success
启动耗时
操作
安装apk后,命令行输入
adb shell am start -W com.android.simple/io.dcloud.PandoraEntry
输出示例
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.simple/io.dcloud.PandoraEntry }
Status: ok
Activity: com.android.simple/io.dcloud.PandoraEntryActivity
TotalTime: 3671
WaitTime: 3684
Complete
相关字段
- ThisTime:当前 Activity 的启动耗时;
- TotalTime:应用整体初始化耗时(包括资源加载等);
- WaitTime:系统感知到的用户等待时间。
注意事项
-
兼容性:不同设备厂商可能对 am start 命令的支持存在差异,建议在目标设备上预测试;
-
冷热启动差异:首次冷启动时间通常较长,多次测试取平均值更准确;
-
后台进程影响:启动前可先关闭应用:
adb shell am force-stop com.android.simple
内存分析
输入
adb shell dumpsys meminfo com.android.simple
输出示例:
Applications Memory Usage (in Kilobytes): Uptime: 5721736 Realtime: 5721736 ** MEMINFO in pid 3480 [com.android.simple] ** Pss Private Private SwapPss Heap Heap Heap Total Dirty Clean Dirty Size Alloc Free ------ ------ ------ ------ ------ ------ ------ Native Heap 13124 13032 0 0 24576 18528 6047 Dalvik Heap 13532 13460 0 0 12563 6282 6281 Dalvik Other 2241 2240 0 0 Stack 88 88 0 0 Ashmem 698 160 0 0 Other dev 80 68 12 0 .so mmap 10046 328 6716 0 .apk mmap 47735 272 46560 0 .ttf mmap 64 0 0 0 .dex mmap 9429 8 7844 0 .oat mmap 2936 0 968 0 .art mmap 2381 1352 96 0 Other mmap 3538 4 2412 0 Unknown 12632 12632 0 0 TOTAL 118524 43644 64608 0 37139 24810 12328 App Summary Pss(KB) ------ Java Heap: 14908 Native Heap: 13032 Code: 62696 Stack: 88 Graphics: 0 Private Other: 17528 System: 10272 TOTAL: 118524 TOTAL SWAP PSS: 0 Objects Views: 67 ViewRootImpl: 1 AppContexts: 4 Activities: 1 Assets: 5 AssetManagers: 0 Local Binders: 33 Proxy Binders: 32 Parcel memory: 8 Parcel count: 34 Death Recipients: 2 OpenSSL Sockets: 2 WebViews: 2 SQL MEMORY_USED: 184 PAGECACHE_OVERFLOW: 43 MALLOC_SIZE: 117 DATABASES pgsz dbsz Lookaside(b) cache Dbname 4 28 42 70/31/5 /data/user/0/com.android.simple/databases/DCStorage Asset Allocations : 4K
CPU使用率
输入:
adb shell "dumpsys cpuinfo | grep \"com.android.simple\""
输出示例:
4.6% 3480/com.android.simple: 1.9% user + 2.7% kernel / faults: 613 minor
电池状态
输入:
adb shell dumpsys battery
输出示例:
Current Battery Service state:
AC powered: true
USB powered: true
Wireless powered: false
Max charging current: 500000
Max charging voltage: 5000000
Charge counter: 1900000
status: 2
health: 2
present: true
level: 100
scale: 100
voltage: 3650
temperature: 327
technology: Li-ion
字段解析
-
level: 当前电量百分比(如 level: 82 表示 82%)
-
status: 充电状态(2=充电中,1=未充电)
-
temperature: 电池温度(单位:0.1℃,如 378=37.8℃)
-
current now: 实时电流(负数表示充电电流,正数为放电)
-
health: 电池健康状态(2=良好)
自动化监控脚本
monitor_battery.bat
@echo off setlocal enabledelayedexpansion for /l %%i in (1,1,60) do ( adb shell dumpsys battery | findstr "level temperature status" >> battery_log.csv timeout /t 5 > nul )
说明:每 5 秒记录一次( timeout /t 5 > nul),持续 5 分钟(60次)( for /l %%i in (1,1,60) ),输出到 CSV 文件( battery_log.csv )。
0)__ ),输出到 CSV 文件( battery_log.csv )。*
整理至此,惊闻噩耗,女朋友说她把数据瞎编好了。
退坑!
-
-
-
- 编辑系统变量下的Path,将platform-tools文件夹的完整路径添加到最下方。
- win+R打开命令提示符,输入以下命令打开环境变量
-
- 在搜索框输入Android SDK,见图三标记1,依次点击标记2、标记4、标记5
- 在出现的菜单栏上,选中 File 下的 Settings
- 打开Android Studio,鼠标移动到左上角,点击