Android开发工程师常用Cmd指令(持续更新)

  1. 进入通知栏权限
    adb shell am start -a "android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"

  2. 查看alarm状态
    adb shell dumpsys alarm

  3. 查看唤醒锁持有:
    adb shell dumpsys power | grep "Wake Locks" -C 3

  4. 启动设置
    adb_launch_setting='adb shell am start -n com.android.settings/.Settings'

  5. 启动/关闭wifi
    "adb shell svc wifi enable(ddisable)"

  6. 当前activity
    adb shell dumpsys activity activities | grep mResumedActivity

  7. 所有当前服务
    adb shell dumpsys activity services

  8. 查看当前设备ip

    1. adb shell ip link 查看到所有网卡设备
    2. 或者可以通过adb shell netcfg 查看,这种方式可以看到运行中设备
    3. ifconfig {设备}
  9. procrank 可以用来查看内存占用情况

    Draven:/ # procrank -h                                                                                                                                                                               
    Usage: procrank [ -W ] [ -v | -r | -p | -u | -s | -h ]
        -v  Sort by VSS.
        -r  Sort by RSS.
        -p  Sort by PSS.
        -u  Sort by USS.
        -s  Sort by swap.
            (Default sort order is PSS.)
        -R  Reverse sort order (default is descending).
        -c  Only show cached (storage backed) pages
        -C  Only show non-cached (ram/swap backed) pages
        -k  Only show pages collapsed by KSM
        -w  Display statistics for working set only.
        -W  Reset working set of all processes.
        -o  Show and sort by oom score against lowmemorykiller thresholds.
        -h  Display this help screen.
    
    
  10. 设置系统时间

    adb root && adb remount
    adb shell date "MMDDhhmm[[CC]YY][.ss]"
    e.g: adb shell date 0717045922.30
    
    
  11. 通过adb获取traceview文件:

    要通过ADB获取TraceView文件,您可以按照以下步骤操作:
    
    首先,将您的Android设备连接到计算机,并确保已启用USB调试选项。您可以在设备设置的“开发者选项”中启用此选项。
    
    打开命令行或终端窗口,并输入以下命令来启动TraceView工具:
    
    `adb shell am profile <PROCESS_NAME> start <TRACE_FILE>`
    其中,<PROCESS_NAME> 是您要分析的应用程序的包名,<TRACE_FILE> 是TraceView文件的路径和文件名。
    
    等待应用程序运行一段时间后,使用以下命令停止TraceView:
    
    adb shell am profile <PROCESS_NAME> stop
    最后,使用以下命令从设备上复制TraceView文件到计算机上:
    
    php
    Copy code
    adb pull <TRACE_FILE>
    其中,<TRACE_FILE> 是您在第二步中指定的TraceView文件的路径和文件名。
    
    完成上述步骤后,您就可以在计算机上打开TraceView文件并分析应用程序的性能了。
    
    
  12. 获取系统状态:

    adb shell dumpstate
    
    
  13. logcat -G size(K/M)是不是越大越好?

    • 增加缓冲区大小的好处是可以保存更多的日志信息
    • 内存占用增加,系统性能下降
    • 日志刷新延迟
  14. 打印当前设备上的日志并退出,可以获取当前设备上的最新日志.
    adb shell logcat -d

  15. 过滤
    adb shell logcat -e <filter>

  16. 通过pem,pk8生成jks

    keytool-importkeypair -k platform.jks -p aispeech@2023 -pk8 platform.pk8 -cert platform.x509.pem -alias ccui
    
  17. 查看jks 256

     keytool -list -v -keystore ***.jks
    
  18. 查看apk签名:

     apksigner verify --print-certs xxx.apk
    
  19. 重签apk:

    1. 将apk解压

    2. 删除文件夹META-INF

    3. 将所有内容再assemble为apk

    4. 签名:

      jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my-app-release-unsigned.apk alias_name
      
    5. 对齐(可选)

      zipalign -v 4 my-app-release-unsigned.apk my-app-release.apk
      
  20. 获取应用当前运行状态
    adb shell kill -3 {pid}
    目录:/data/anr

  21. 查看进程运行时长:
    adb shell ps -o etime {pid}

  22. 切换到后台执行
    nohup bash make_jenkins.sh ccui img | tee build.log &

  23. 查询所有disable的包:
    adb shell pm list packages -d

  24. adb logcat指定tag

    adb shell logcat -v threadtime -s TAG1 TAG2

  25. adb 中的 -v 有啥用?

    -v threadtime 是一个格式选项,用于指定日志消息的输出格式。此外还有

    1. brief:简短格式,仅显示日志消息的优先级和消息内容。
    2. process:仅显示进程ID(PID)、优先级和消息内容。
    3. tag:仅显示标签和消息内容。
    4. raw:原始输出格式,不添加任何前缀信息。
    5. time:显示简单的时间戳格式(时:分:秒)以及消息内容。
    6. long:更详细的输出格式,包括日期、时间、进程ID、线程ID、优先级、标签和消息内容。
  26. grep查看附近N行

    #后N行
    grep -A N {keyword}
    #前N行
    grep -B N {keyword}
    #前后N行
    grep -C N {keyword}
    
    
  27. 模拟点击按钮

    1. 首先通过指令adb shell uiautomator dump获取坐标
    2. 接着通过指令adb shell input tab x y执行点击
      接入要执行100次,可以通过for i in {1..100};do adb shell input tab x y;sleep 10;done完成
    3. adb shell input keyevent --longpress {code} 模拟长按
  28. 查看大文件

    find ${path} -type f -size +100M
    
  29. 查找文件並執行:

    find . -type (d|f) -(i)name "*substr*" -exec cat {} (+|\;)
    
  30. 查找关键内容

    grep -rnE "your_regex_pattern" /path/to/directory

    • r:递归搜索子目录。
    • n:显示匹配行的行号。
    • E:使用扩展的正则表达式(仅适用于 egrepgrep -E 是等效的)。
  31. xargs用法

xargs命令用于将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。以下是一些常见的使用方式:

  • echo 'splitXsplitXsplit' | xargs -dX:使用xargsd选项,可以指定输入参数的分隔符,这里我们将splitXsplitXsplit分割为三个独立的参数。
  • find . -type f -name "*.txt" | xargs rm:在这个例子中,find命令找到所有以.txt结尾的文件,然后通过xargs将这些文件作为rm命令的参数,从而实现删除所有.txt文件。
  • ls | xargs -n 1 echon选项指定了每次传递给echo命令的参数数量。这里我们指定每次只传递一个参数,所以echo命令会被执行多次,每次打印一个文件名。

这些只是xargs的一些常见用法,实际上xargs可以与各种命令组合,实现各种复杂的功能。

还可以采用-I指定参数到{}.然后再后续拼接

adb shell ls "/storage/emulated/0/*.wav" | xargs -I {} adb pull {}

  1. grep 命令时,-e-E 选项有不同的作用:
    -e 用法:
grep -e "pattern1" -e "pattern2" filename

-E用法

grep -E "pattern1|pattern2" filename
  1. scp上传文件

    1. 使用scp上传文件:

      scp [-r] [-P prot] local_file_path username@hostname:remote_file_path
      
      

    这里:

    • local_file_path 是你要上传的本地文件的路径。
    • username 是你在远程主机上的用户名。
    • hostname 是远程主机的主机名。
    • remote_file_path 是你希望在远程主机上存储文件的路径。
    • -r 如果是文件夹,则需要递归
    • -P 记得要大写指定端口

    例如,如果你要将本地的文件 /home/user/document.txt 上传到远程主机 example.com(你的用户名是 user)的 /home/user/documents 目录下,你可以使用以下命令:

    scp /home/user/document.txt user@example.com:/home/user/documents
    
  2. 使用scp从服务区拉取文件。

    这个就不多说了,只需要上面的本地还有云端的顺序调换一下即可

  3. 挂载U盘

    lsblk 查看U盘设备,通常是在/dev 下,例如/dev/sda3

    mkdir {dir} 创建要挂载的目录

    mount /dev/sd3 {dir} 完成挂载

  4. 可以通过下面的指令,查看到对应的windows,这就是遍历的顺序

    adb shell dumpsys input
    
     Windows:
          0: name='Window{2554c17 u0 com.aispeech.ccui.systemui}', displayId=0, portalToDisplayId=-1, paused=false, hasFocus=true, hasWallpaper=false, visible=true, canReceiveKeys=true, flags=0x01000020, type=0x000007f9, frame=[0,0][42,1200], globalScale=1.000000, windowScale=(1.000000,1.000000), touchableRegion=[0,0][42,1200], inputFeatures=0x00000000, ownerPid=28009, ownerUid=1000, dispatchingTimeout=5000ms
          1: name='Window{f7f513d u0 com.aispeech.ccui_lenovo_t30.voice/com.aispeech.ccui.setupwizard.activity.ProtocolDetailActivity}', displayId=0, portalToDisplayId=-1, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=true, flags=0x81810520, type=0x00000001, frame=[0,0][1920,1200], globalScale=1.000000, windowScale=(1.000000,1.000000), touchableRegion=[0,0][1920,1200], inputFeatures=0x00000000, ownerPid=25593, ownerUid=1000, dispatchingTimeout=5000ms
          2: name='Window{373e223 u0 com.aispeech.ccui_lenovo_t30.voice/com.aispeech.ccui.setupwizard.activity.ProtocolActivity}', displayId=0, portalToDisplayId=-1, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=true, flags=0x81810520, type=0x00000001, frame=[0,0][1920,1200], globalScale=1.000000, windowScale=(1.000000,1.000000), touchableRegion=[0,0][1920,1200], inputFeatures=0x00000000, ownerPid=25593, ownerUid=1000, dispatchingTimeout=5000ms
      Global monitors in display 0:
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值