首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写adb jdwp + adb转发脚本?

如何编写adb jdwp + adb转发脚本?
EN

Stack Overflow用户
提问于 2016-09-14 16:19:14
回答 2查看 2.1K关注 0票数 1

我正在尝试使用命令行和脚本工具来调试Android应用程序(我已经受够了Android Studio蚕食我的CPU)。

要连接到我的应用程序,我执行adb jdwp以获取pid,然后执行adb forward tcp:8700 jdwp:<pid>以能够连接到应用程序。但是我想写更多的脚本。

adb jdwp有两个限制: 1.它不返回,所以我必须用ctrl-c杀死adb;2.它只列出pids。如果有更多的pids,没有简单的方法来查看哪个是我的应用程序。

有没有一种方法可以让adb jdwp正常工作:让它退出并返回applicationId和pid?

EN

回答 2

Stack Overflow用户

发布于 2016-12-08 17:37:05

我设法用下面的脚本解决了这个问题(只要你的应用作为最后一个进程启动,这个脚本就可以工作)。作为未来的增强,它可以与gradle任务运行器集成,以进一步简化过程。

代码语言:javascript
复制
#!/bin/bash

DEBUG_PORT=7777
SOURCE_PATH=app/src/main/java

FILE=/var/tmp/andebug-$(date +%s)
adb jdwp > "$FILE" &
sleep 1
kill -9 $!
JDWP_ID=$(tail -1 "$FILE")
rm "$FILE"
adb forward tcp:$DEBUG_PORT jdwp:$JDWP_ID
jdb -sourcepath $SOURCE_PATH -attach localhost:$DEBUG_PORT
票数 1
EN

Stack Overflow用户

发布于 2021-07-30 14:08:58

下面是一个示例脚本,与Struchu的脚本类似,但不写入本地文件

改进

  • 它会启动应用程序

  • It在启动后获取应用程序id

  • 它也使用adb over wifi,因为你的设备正在启动热点。

#!/bin/bash PACKAGE="com.example.app“ACTIVITY= "$PACKAGE”/"$PACKAGE"".MainActivity“#通过wifi连接adb connect "$(ip r| grep default | cut -f3 -d\ )":5555 # adb -e连接到wifi设备并启动活动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 app/src/main/java -attach localhost:8000

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39485653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档