我正在尝试使用命令行和脚本工具调试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?
答案 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