adb,logcat使用及对Android设备的操作

adb常用命令

  • 查看连接到本机的所有的设备命令:adb devices 执行结果如下:

    E:\xiao\src\android_camera>adb devicesList of devices attachedemulator-5590   host68653344        deviceemulator-5660   hostemulator-5608   host
  • 使用adb登录到指定设备命令:adb -s "device" shell
    如果连接本机的设备只有一个可以直接使用命令adb shell
    例如:

      E:\xiao\src\android_camera>adb -s 68653344 shell  libra:/ $

    如果是网络设备,则填写ip地址和端口号。例如:

      $ adb -s 172.17.159.159:5555 shell
  • 安装app

$ adb -s 172.17.159.159:5555 install c:\EPG.apk单设备连接时$ adb install c:\EPG.apk当安装时提示已安装需要卸载时使用如下命令覆盖安装$ adb install -r c:\EPG.apk
  • 卸载app
$ adb uninstall "包名"$ adb uninstall -k "包名"
  • 连接与断开网络设备
$ adb connect 172.17.122.122$ adb disconnect
  • 发送和拉取文件
发送到设备$ adb push <本地路径> <远程路径>拉取文件到本地$ adb pull <远程路径> <本地路径>

对android设备进行操作

登录设备后我们就可以通过命令行对设备进行操作了

  • 查看网络
# netcfg
  • 重新挂载分区
例如将/system分区挂载为可读写状态# mount -o rw,remount /system
  • 查看应用使用内存信息dumpsys meminfo <包名 或 pid>
# dumpsys meminfo ican.ytx.com.videosummary或# dumpsys meminfo 14087

am 命令,am全称activity manager,你能使用am去模拟各种系统的行为,例如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等等

  • 拨打电话
# am start -a android.intent.action.CALL -d tel:10086这里-a表示动作,-d表述传入的数据,还有-t表示传入的类型。
  • 打开一个网页
# am start -a android.intent.action.VIEW -d  http://www.baidu.com (这里-d表示传入的data)
  • 打开音乐播放器
# am start -a android.intent.action.MUSIC_PLAYER或者使用 包名和应用名,可以在Androidmanifest.xml文件查看到# am start -n com.android.music/com.android.music.MusicBrowserActivity//am start -n ican.ytx.com.videosummary/ican.ytx.com.videosummary.MainActivity
  1. start [options] :启动activity通过指定的intent参数
  2. startservice [options] : 启动service通过指定的intent参数
  3. force-stop : 强制停止指定的package包应用
  4. broadcast [options] :发送一个intent。具体intent参数参照start命令参数
  • 启动一个服务am startservice <服务名称>
例如:am startservice -n com.android.music/com.android.music.MediaPlaybackService (这里-n表示组件)或者:am startservice -a com.smz.myservice (这里-a表示动作,就是你在Androidmanifest里定义的)
  • 发送一个广播am broadcast -a <广播动作>
例如1: am broadcast -a com.smz.mybroadcast例如2: am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///storage/usb/Android
  • 截图
# /system/bin/screencap -p /sdcard/screenshot.png

logcat使用

  • logcat命令行选项
选项 说明
-b 加载可供查看的备用日志缓冲区,如 events 或 radio。默认情况下使用 main 缓冲区
-c 清除(刷新)整个日志并退出。
-d 将日志转储到屏幕并退出。
-f 将日志消息输出写入 。默认值为 stdout。
-g 打印指定日志缓冲区的大小并退出。
-n 将已旋转日志的最大数量设置为 。默认值为 4。 需要使用 -r 选项。
-r 每输出 时旋转日志文件。默认值为 16。需要使用 -f 选项。
-s 将默认过滤器规则设为静默式。
-v 设置日志消息的输出格式。默认值为 brief 格式有关支持的格式列表,请参阅"控制日志输出格式"

详细使用参考这里

常用过滤方法

  • 过滤指定包名的log
step 1 通过包名获取进程pid# ps | grep "com.ytx.ican.tcpupdate"step 2 通过pid过滤log,例如pid为5505# logcat -v time | grep "5505"
  • 静默掉相应的TAG
    • 下面的命令通过静默级别S来过滤掉TAG为MyCameradecode_difftime的信息
    • 下面命令含义为过滤pid为 5505 进程,显示格式为time(显示日期、调用时间、优先级/标记以及发出消息的进程的 PID),显示TAG等级高于DEBUG的信息同时过滤掉包含MyCameradecode_difftime的信息
logcat -v time *:d MyCamera:S decode_difftime:S | grep "5505"

更多相关文章

  1. GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
  2. 如何在后台运行Linux命令?
  3. 一款常用的 Squid 日志分析工具
  4. No.11 使用firewall配置的防火墙策略的生效模式
  5. Android(安卓)SDK: adb 常用命令的使用(无线连接、端口转发、文件
  6. camera V4L2 FIMC
  7. android ndk生成so库
  8. Android(安卓)Studio Error -- Could not create the Java Virtu
  9. 【Android测试工具】03. ApkTool在Mac上的安装和使用(2.0版本)

随机推荐

  1. 在同一列上选择多个条件
  2. MYSQL必知必会-SQL语句查询
  3. 《高性能MySQL》学习笔记一
  4. mysql数据版本控制系统的最佳实践
  5. Log4j2记录日志到数据库(MySQL&MongoDB)
  6. php mysql有条件地将行插入到不同的表中
  7. MySQL架构:空列与联接
  8. CentOS 6.4 安装 JAVA + MYSQL + APACHE
  9. 为什么准备好的语句由每个会话管理?
  10. 程序猿(媛)Shell脚本必备技能之一: 在Lin