你如何编写adb jdwp + adb脚本?

时间:2016-09-14 08:19:14

标签: android adb

我正在尝试使用命令行和脚本工具调试Android应用程序(我已经有足够的Android Studio占用我的CPU)。

要连接到我的应用,我会adb jdwp获取pid,然后adb forward tcp:8700 jdwp:<pid>能够连接到该应用。但是我想更多地编写脚本。

adb jdwp有两个限制:1。它不会返回,所以我必须使用ctrl-c,2来杀死adb。它只列出了pids。如果有更多的pids,那么很难看出哪个是我的应用。

有没有办法让adb jdwp表现出来:让它退出并返回applicationId以及pid?

2 个答案:

答案 0 :(得分:1)

这是一个与 Struchu 类似的示例脚本,无需写入本地文件

改进

  • 它启动应用程序

  • 启动后获取apps程序id

  • 鉴于您的设备正在启动热点,它还通过 wifi 使用 adb

     #!/bin/bash
     PACKAGE="com.example.app"
     ACTIVITY="$PACKAGE"/"$PACKAGE"".MainActivity"
     #Connect over wifi
     adb connect "$(ip r | grep default | cut -f3 -d\ )":5555
     # adb -e connect to wifi device and start activity
     adb -e shell am start -D  -n "$ACTIVITY"
     JDWP=$(adb -e shell ps | grep "$PACKAGE" | cut -f7 -d\ )
     adb forward tcp:8000 jdwp:"$JDWP"
     jdb -sourcepath app/src/main/java -attach localhost:8000
    

答案 1 :(得分:0)

我设法使用以下脚本解决了这个问题(如果你的应用程序作为最后一个进程启动,它将起作用)。作为未来的增强功能,它可以与tr任务运行器集成,以进一步简化流程。

gradle