Android之常用adb指令

Android之常用adb指令

 

adb命令模拟按键事件 KeyCode

  • //这条命令相当于按了设备的Backkey键
  • adb shell input keyevent 4   
  • //这条命令相当于按了设备的Home键
  • adb shell input keyevent 3 
  • //这条命令相当于按了设备的MENU键
  • adb shell input keyevent 82  
  •  //可以解锁屏幕
  • adb shell input keyevent  82 
  • //在屏幕上做划屏操作,前四个数为坐标点,后面是滑动的时间(单位毫秒)
  • adb shell input swipe 50 250 250 250 500 
  • //在屏幕上点击坐标点x=50  y=250的位置。
  • adb shell input tap 50 250 
  • //输入字符abc
  • adb shell input text abc

 

adb命令输入文本

焦点处于某文本框时,可以通过 input 命令来输入文本比如:Holle World 

  • adb shell input Holle World 

 

adb命令截图

  • adb shell screencap -p /sdcard/xx.png


adb命令录制 mp4 格式的视频保存到 /sdcard

  • adb shell screenrecord /sdcard/xxx.mp4
     

 

启动一个Activity:

  • adb shell am start -n {包名}/{包名}.{活动名称/类名}

 

启动service:

  • adb shell am startservice -n {包名}/{包名}.{服务名称}

 

发送broadcast:

adb shell am broadcast -a

  • eg:adb shell am broadcast -a com.bd.vr.app.action --es name_string "uu" --ei age_int 27 --ez reservation_boolean true
  •  说明:前面为EXTRA_KEY,后面为VALUE,分别为String类型,int类型,boolean类型

 

查看应用启动时间:

  //(相当于热启动)

adb shell am start -W {包名}/{包名}.{活动入口名称/类名}

//(相当于冷启动)

adb shell am start -S -W {包名}/{包名}.{活动入口名称/类名} 

  • -W 列出启动过程中统计到的具体数据
  • -S 强制停止当前的Activity,重新启动
  • ThisTime:最后一个启动的Activity的启动耗时.
  • TotalTime:自己的所有Activity的启动耗时.
  • WaitTime: ActivityManagerService启动App的Activity时的总时间(包括当前Activity的onPause()和自己Activity的启动).
     

查看CPU信息

adb shell top -m -s cpu(-m显示最大数量,-s 按指定行排序)

  • 参数含义:
  • PID  : progress identification,应用程序ID
  • S    : 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数
  • #THR : 程序当前所用的线程数
  • VSS  : Virtual Set Size虚拟耗用内存(包含共享库占用的内存)
  • RSS  : Resident Set Size实际使用物理内存(包含共享库占用的内存)
  • PCY  : 前台(fg)和后台(bg)进程
  • UID  : User Identification,用户身份ID
  • Name : 应用程序名称

(注:Ctrl+c退出adb命令行)

  • 可以根据PID值可以查看当前程序的内存使用情况

adb shell dumpsys xxx(PID)

  • 参数含义:
  • dalvik : dalvik使用的内存
  • native : native堆上的内存,指C\C++堆的内存(android 3.0以后bitmap就是放在这儿)
  • other  : 除了dalvik和native的内存,包含C\C++非堆内存······
  • Pss    : 该内存指将共享内存按比例分配到使用了共享内存的进程
  • allocated : 已使用的内存
  • free      : 空闲的内存
  • private dirty : 非共享,又不能被换页出去的内存(比如linux系统中为了提高分配内存速度而缓冲的小对象,即使你的进程已经退出,该内存也不会被释放)
  • share dirty   : 共享,但有不能被换页出去的内存

 

 

adb shell dumpsys相关指令(打印出当前系统信息

 

  • adb shell dumpsys activity(查看Activity相关信息)
  • adb shell dumpsys cpuinfo(查看CPU相关信息)
  • adb shell dumpsys battery(查看电池使用信息)
  • adb shell dumpsys window(查看Window的相关信息,最后部分可以看到分辨率的信息)

获取当前Activity的信息:

adb shell "dumpsys activity | grep mFocusedActivity"

获取当前设备的分辨率:

adb shell "dumpsys window | grep init "

 

apk文件安装和卸载

  •  adb install   (主要作用:将指定的apk文件安装到设备上)
  • adb install –r 覆盖安装
  • adb install –s 安装到SD卡
  • adb install –rs覆盖安装到SD卡
  • adb uninstall <包名>(主要作用:卸载设备上的指定程序)

 

adb push/pull复制文件

  • adb push <本地路径><设备路径>(把pc上的文件或文件夹复制到设备中)
  • adb pull <设备路径><本地路径>(把设备上的文件或文件夹复制到电脑)



adb 查看应用的包名

  • adb shell pm list packages(查看所有应用包名)
  • adb shell "pm list packages | grep xxx"(查看包含xxx关键字的应用包名)
  • adb shell pm list packages -f(查看所有应用包名及其安装位置)
  • adb shell "pm list packages -f | grep xxx"(查看包含xxx关键字的应用包名及其安装位置)

 

 

adb shell

  • ls    查看文件夹
  • cd    改变目录
  • cat <文件名>    查看文件内容
  • rm    删除文件
  • mkdir <文件夹>    新建文件夹
  • cp    复制文件到另一目录
  • exit   退出shell命令

 

adb logcat相关

adb logcat [选项] [过滤项], 其中 选项 和 过滤项 在 中括号 [] 中, 说明这是可选的

  • 选项解析 
  • -- "-s"选项 : 设置输出日志的标签, 只显示该标签的日志;
  • --"-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;
  • --"-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;
  • --"-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;
  • --"-v"选项 : 设置日志的输出格式, 注意只能设置一项;
  • --"-c"选项 : 清空所有的日志缓存信息;
  • --"-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;
  • --"-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;
  • --"-g"选项 : 查看日志缓冲区信息;
  • --"-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;
  • --"-B"选项 : 以二进制形式输出日志;
  • 过滤项解析(过滤项格式 : [:priority])

  • 过滤项格式 : [:priority] , 标签:日志等级, 默认的日志过滤项是 " *:I " ;
  • -- V : Verbose (明细);
  • -- D : Debug (调试);
  • -- I : Info (信息);
  • -- W : Warn (警告);
  • -- E : Error (错误);
  • -- F: Fatal (严重错误);
  • -- S : Silent(Super all output) (最高的优先级, 可能不会记载东西);

 

使用管道过滤日志

adb shell "logcat | grep xxx "(过滤固定字符串 : 只要命令行出现的日志都可以过滤, 不管是不是标签)

输出日志到指定文件夹

adb logcat > D:\abd_log_file\hb_log.log(日志包括系统日志输出到指定文件里)

adb logcat >D:\adb_log_file\"%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%时%time:~3,2%分%time:~6,2%.log"
(将日志信息输出到以“日期 时间”命名的文件中)

(注:操作APP 后,再控制台输入ctrl + c 按键,停止输出日志信息)

 

你可能感兴趣的:(Android)