adb设备调试常用命令

自从工作越来越忙后,越来越懒得写文章了,趁着1024程序员节,仪式性地写篇文章,分享一下最近调试设备经常用到的adb指令~

1.查看应用内存占用

1.1 dumpsys meminfo package

dumpsys是查看系统服务信息的一个常用指令,可以用dumpsys -l查看系统所有的服务,dumpsys meminfo可以查看到应用最详细的内存占用情况,主要有两大用途

  • 查看应用的内存占用情况,可以看到不同的内存类型占用,详细的占用情况可助于分析应用哪一块占用了较大内存。
  • 辅助分析内存泄露问题,该命令可以查看到Activity的个数,当退出界面后仍然还有activity存在或者个数不对,则说明该activity已经泄露了。

命令查询的数据示例如下:

Applications Memory Usage (in Kilobytes):
Uptime: 195423478 Realtime: 195423478

** MEMINFO in pid 23209 [com.example.myfirstapp] **
                   Pss  Private  Private     Swap     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap     8406     8284        0        0    20620    17082     3537
  Dalvik Heap      988      900        0        0     2962     1426     1536
 Dalvik Other      481      476        0        0                           
        Stack       56       56        0        0                           
       Ashmem        7        0        0        0                           
    Other dev       12        0       12        0                           
     .so mmap     2123      160        8        0                           
    .jar mmap     1737        0       24        0                           
    .apk mmap     1027        0        0        0                           
    .ttf mmap       48        0        0        0                           
    .dex mmap     1944        4     1936        0                           
    .oat mmap       66        0        0        0                           
    .art mmap     5883     5508        0        0                           
   Other mmap       60       20        0        0                           
      Unknown      725      688        0        0                           
        TOTAL    23563    16096     1980        0    23582    18508     5073
 
 App Summary
                       Pss(KB)
                        ------
           Java Heap:     6408
         Native Heap:     8284
                Code:     2132
               Stack:       56
            Graphics:        0
       Private Other:     1196
              System:     5487
 
               TOTAL:    23563      TOTAL SWAP (KB):        0
 
 Objects
               Views:   
<think>嗯,用户之前已经询问过ADB通信的基本介绍,现在他们想了解常用的ADB调试命令。我需要确保回答的结构清晰,按照用户之前的要求分点说明,并且使用正确的LaTeX格式。首先,应该回顾一下ADB的基础,但可能用户已经了解,所以重点放在常用命令的分类和具体使用上。 用户可能需要的是实际的命令示例,所以每个功能模块下要列出具体的命令,并给出简要说明。比如安装应用、文件传输、日志查看等。需要确保命令的准确性,比如adb install的正确用法,以及adb logcat的不同参数。还要注意是否需要提到网络调试命令,比如adb connect,因为这在无线调试时很常用。 另外,用户可能关心的是实际开发中的调试场景,比如调试数据库或屏幕操作,这些高级命令可能对用户有帮助。同时,安全相关的命令,如adb root,也需要提到权限问题。可能还需要注意事项,比如设备连接问题或权限提示,这些都是用户在使用过程中可能遇到的常见问题。 需要检查是否有遗漏的常用命令,比如adb shell下的常用操作,或者adb备份等。同时,确保使用正确的代码块格式,并且数学表达式用$符号包裹,虽然这里可能用不上数学公式,但如果有版本号之类的可能需要用。最后,提醒用户注意安全,比如关闭USB调试,这部分在之前的回答中也提到过,需要保持一致性。</think>以下是一些常用的ADB调试命令及其应用场景,按照功能分类说明: --- ### **一、设备连接管理** 1. **检测设备连接状态** ```bash adb devices # 列出所有已连接的设备(输出示例:$设备ID \t device$) ``` 2. **切换连接模式** ```bash adb tcpip 5555 # 开启设备的TCP/IP监听(端口默认$5555$) adb connect 192.168.1.100:5555 # 通过WiFi连接设备 adb usb # 切换回USB模式 ``` --- ### **二、应用操作** 3. **安装与卸载应用** ```bash adb install app.apk # 安装APK adb install -r app.apk # 覆盖安装(保留数据) adb uninstall com.example.app # 卸载应用(保留数据) adb uninstall -k com.example.app # 卸载应用并清除数据 ``` 4. **应用调试** ```bash adb shell am start -n com.example/.MainActivity # 启动指定Activity adb shell am force-stop com.example.app # 强制停止应用 adb shell pm clear com.example.app # 清除应用数据 ``` --- ### **三、文件传输** 5. **文件操作命令** ```bash adb push local.txt /sdcard/ # 上传文件到设备 adb pull /sdcard/file.txt . # 从设备下载文件 adb shell ls /sdcard/ # 查看设备目录内容 ``` --- ### **四、日志与调试** 6. **日志监控** ```bash adb logcat # 实时查看完整日志 adb logcat -s TAG_NAME # 按标签过滤日志 adb logcat -v time # 显示时间戳 adb logcat > log.txt # 保存日志到本地文件 ``` 7. **系统信息获取** ```bash adb shell dumpsys battery # 查看电池状态 adb shell dumpsys meminfo # 查看内存使用情况 adb shell getprop # 获取系统属性 ``` --- ### **五、Shell高级操作** 8. **进入交互式Shell** ```bash adb shell # 进入设备的Linux Shell环境 ``` 9. **执行单条Shell命令** ```bash adb shell "ls /sdcard" # 不进入Shell直接执行命令 adb shell input keyevent 3 # 模拟按键(3=HOME键) ``` --- ### **六、网络与端口** 10. **端口转发与代理** ```bash adb forward tcp:8080 tcp:80 # 将PC的8080端口映射到设备的80端口 adb reverse tcp:8080 tcp:80 # 反向代理(Android 5.0+) ``` --- ### **七、调试增强** 11. **屏幕操作** ```bash adb shell screencap /sdcard/screen.png # 截屏 adb shell screenrecord /sdcard/video.mp4 # 录屏(Ctrl+C停止) ``` 12. **调试数据库** ```bash adb shell sqlite3 /data/data/com.example/db/test.db "SELECT * FROM table" ``` --- ### **八、权限与Root** 13. **Root权限操作** ```bash adb root # 重启adbd为root权限(需设备已root) adb remount # 重新挂载系统分区为可写 adb disable-verity # 关闭文件系统验证(Android 6.0+) ``` --- ### **注意事项** 1. 执行命令前确保设备已开启**USB调试模式** 2. 部分命令需要设备**Root权限** 3. 网络调试时需保持设备与PC在同一局域网 4. 首次连接设备时会弹出**RSA密钥授权提示**,需手动确认 通过组合使用这些命令,开发者可以实现应用调试、性能分析、自动化测试等复杂操作。建议配合Android Studio的ADB工具链使用效率更佳。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值