out/target/product/xxx/system/app/MusicTests/MusicTests.apk 编译完成后显示
adb push MusicTests.apk system/app/MusicTests
adb install -r path/MusicTests.apk
-r 表示replace
adb uninstall app包名
例:adb uninstall com.android.music
adb shell am start -n 包名/.xxxActivity
//例子: adb shell am start -n com.android.music/.MediaPlaybackActivity
当调试的程序没有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 shell dumpsys activity| grep "mFocusedActivity"
//或者
adb shell dumpsys window | grep mCurrentFocus
adb shell dumpsys |grep BroadcastRecord
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