Android开发常用的命令及其调式小技巧

目录

1.常用的adb命令

2.Linux命令

3.组合命令

4.其他好用的命令

5.调式小技巧


前言:

文章,一为温故而知新,二若是可以帮助到别人,也是我的荣幸。

因本人能力有限,若有错误之处,麻烦指出。如果觉得有可取之处,麻烦点赞支持一下。 😊

1.常用的adb命令

  • 重启adb
    adb kill-server    adb start-server
    有时候adb会莫名其妙的变慢,或者没有响应,可以考虑重启adb服务,实在还不行,可以考虑重启电脑
  • adb usb 重启usb
  • 日志
    adb logcat -c 清除之前的日志
    adb logcat >log.txt 输出日志到当前目录下
    adb logcat >C:\Users\LEGION\Desktop\log_record\0714\1446.txt  输出日志到指定目录下
    adb logcat -s Tag 过滤指定Tag的日志
    adb logcat -s Tag Tag 过滤多个Tag
    adb logcat *:E 过滤Error级别的日志
     

  • 文件操作
    adb pull /data/anr/traces.txt E:/   下拉文件到指定路径
    adb push /sdcard/  上传文件到指定目录下

2.Linux命令

  • am命令

    am命令调用的是ActivityManagerService

    am start -a action 启动activity

    am start -a action --es website gityuan.com (--es website gityuan.com代表intent.putExtra("website","gityuan,com"),--es代表string类型,其他类型自行查找吧。)

    am start -n com.gityuan.app/.MainActivity  通过包名/类名启动activity

    am startservice -a action 通过action启动service

    am force-stop <packageName(包名)> 强杀进程

    am restart <packageName(包名)>
     
  • pm命令

    pm命令调用的是PackageManagerService

    pm list packages 设备上安装的app的包名

    pm install [options] <path> 安装应用 

    -r: 覆盖安装已存在Apk,并保持原有数据;-d: 运行安装低版本Apk;-t: 运行安装测试Apk;-g: 准许Apk manifest中的所有权限;

    pm uninstall <packageName> 删除应用

    pm enable <packageName> 解禁应用

    pm diabale <packageName> 禁用应用

    pm path <packageName>  查看app路径

    pm clear <packageName> 清除应用缓存

     
  • 文件操作
    touch New_file 创建新文件

    cp /data/anr/traces.txt /sdcard/  将文件复制到其他目录下  cp source destination

    mv /data/anr/traces.txt /sdcard/  将文件移动到其他目录下 mv source destination

    rm -rf New_file 删除文件且不再次确认

    mkdir New_dir 创建新文件夹

    mkdir -p New_Dir/Sub_Dir/Under_Dir  创建多个目录和子目录

    rmdir New_dir  删除文件夹

    file New_file 查看文件类型

    cat -n  New_file  查看文件内容并加上行号
  • adb shell rm -rf data/* 删除目录下的所有文件
  • adb shell rm -rf data/ 删除目录及目录下的所有文件

  • 进程
    ps -A  查看所有进程

    ps -ef 查看所有进程并展示相关信息

    kill PID  终止进程 PID:process ID 进程号

     
  • 磁盘
    df -h  展示磁盘的使用情况

    du  当前目录下所有的文件、目录和子目录的磁盘使用情况,它会以磁盘块为单位来表明每个文件或目录占用了多大存储空间

     
  • ls的使用
    ls -lsh 查看当前目录下的文件及其文件夹并展示大小

    ls -a 展示隐藏文件

    ls -F 区分文件及目录

     

3.组合命令

  • 每个命令之间用;隔开。  各命令的执行结果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。

    adb logcat -c;adb logcat -s OkHttp 先清除之前的日志(有时候会清除不成功,可以多执行几次),然后再过滤OkHttp这个Tag的日志

     
  • 每个命令之间用&&隔开。  若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功的。
    cd  /data/anr/&&cat traces.txt
     

  • 每个命令之间用||或者|隔开。  ||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功。
    在命令行中,我们用|表示管道,管道可以将一个命令的输出导向另一个命令的输入,从而让两个(或者更多命令)像流水线一样连续工作,不断地处理文本流。
    dumpsys package <packageName> | grep version ,其中packageName代表包名,该命令的含义是获取该应用中含有version的信息

4.其他好用的命令

  • 获取屏幕当前显示activity
    dumpsys window | grep mCurrentFocus
     
  • 查看activity栈的信息
    dumpsys activity

  • 录屏
    录制屏幕 adb shell screenrecord --time-limit=180 --size 1920x1080 /sdcard/demo.mp4
    从sdcard中取出 adb pull /sdcard/demo.mp4

  • 截屏
    保存到SDCard
    adb shell /system/bin/screencap -p /sdcard/screenshot.png
    从SD卡导出到电脑
    adb pull /sdcard/screenshot.png E:\screenshot(保存到电脑)

  • CPU占有率前5
    adb shell top -m 5

  • 查看线程的CPU和内存使用情况
    adb shell top -H
    有些版本是adb shell top -t

  • CPU数目查询

    adb shell
    cd /sys/devices/system/cpu/
    ls

  • 内存使用率

    adb shell dumpsys meminfo -s 进程号
    adb shell dumpsys meminfo 包名

  • cpu信息

    (这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息,这个目录的内容不在硬盘上而是在内存里)
    adb shell cat /proc/cpuinfo
    adb shell cat /proc/stat
    adb shell dumpsys cpuinfo

  • 获取当前启动的应用的activity的信息
    adb logcat -s ActivityManager

  • mac获取
    /sys/class/net/eth0 cat address
    ifconfig

5.调式小技巧

  1. 应用anr了,但日志找不到对应的log咋办?
    可以到data/anr/目录下,找到相应时间的traces.txt文件,查看主线程卡在了那里。

     
  2. 子线程代码没有执行,或者线程卡死,该怎么定位问题?
    adb kill -3 <PID>,执行该命令,会在data/anr/目录下,生成对应traces.txt。有时候traces.txt文件无法覆盖,可以先删除之前的traces.txt,然后再kill,kill的时候可以适当多kill几次。
    有些机器,无法直接下拉data/anr/目录下的文件,可以先把文件移动到sdcard目录下,然后再下拉,然后直接移动到usb设备。
    查看traces.txt文件时,一定要先看是否是对应的进程,不要问我,为什么要加上这一句。
     
  3. 应用莫名崩溃,但是找不到对应的崩溃信息?
    可以到data/timbstones目录下,寻找对应时间的timbstones文件,该文件会记录系统内核崩溃对应的日志信息。
     
  4. 如何快速给文件改名?
    mv New_file.txt Rename_file.txt
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值