Android adb 使用总结 (调试专用)

adb 安装

  1. android 内置应用
out/target/product/xxx/system/app/MusicTests/MusicTests.apk 编译完成后显示
adb push MusicTests.apk system/app/MusicTests 
  1. adb install 第三方应用
adb install -r path/MusicTests.apk             

-r 表示replace

adb 卸载

adb uninstall app包名  
例:adb uninstall com.android.music

adb 启动app

adb shell am start -n 包名/.xxxActivity    
//例子: adb shell am start -n com.android.music/.MediaPlaybackActivity

adb 发送广播

当调试的程序没有activity 时候,用广播方式

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n package_name/class_name

平时只是指定

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED 

adb 获取当前activity

adb shell dumpsys activity| grep "mFocusedActivity"
//或者
adb shell dumpsys window | grep  mCurrentFocus

adb 接收广播

 adb shell dumpsys |grep BroadcastRecord  

adb 启动服务

adb shell am startservice -n com.android.XXX/com.android.xxx.service

其他

adb shell pm list packages -f 
列出所有安装包目录,对应 的手机中位置

log 脚本调试某一个app

log.sh 记得 chmod a+x

#!/bin/bash
packageName=$1
pid=`adb shell ps | grep $packageName | awk '{print $2}'`
adb logcat | grep --color=auto $pid

执行 ./log.sh 包名
举例:
./log.sh com.android.floatball 开始抓悬浮球的log

脚本解析:
packageName=$1
log.sh 后面第一个参数是 com.android.floatball
所以$1 表示第一个参数 com.android.floatball 即packageName = com.android.floatball
adb shell ps | grep $packageName 表示显示进程 grep 过滤除了packageName 的进程信息,如下:

system 1323  337   1892416 64444 SyS_epoll_ 7a5104e3ac S com.android.floatball

第二个 1323 表示进程号 ,所以 awk ‘{print $2}’ awk 一行一行读取信息,所以读取了进程信息
,并且打印 第二个参数值 1323 赋值给 pid . print $2 表示读取整行信息后,打印第二个参数变量

adb logcat | grep –color=auto $pid 打印pid 进程 的log

如果想杀死进程pid ,adb shell kill pid

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值