Method 1: Debug from CLI
Launch target apk. Get pid of target app. Forward target app
remote port (jdwp:) to local tcp port (tcp:<#>).
Attach jdp to specified tcp port.
(apk manifest with debuggable=”true”)
scripts:
#!/bin/bash
#adb kill-server
#sleep 1
#adb start-server
adb wait-for-device
cmd="adb -d shell am start -e debug true -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -n com.thirdwhale/com.thirdwhale.activity.SplashActivity";
echo $cmd;
exec $cmd &
app_debug_port=$(adb jdwp | tail -1);
echo "app_debug_port: $app_debug_port";
cmd0="adb -d forward tcp:29882 jdwp:$app_debug_port";
echo $cmd0;
exec $cmd0 &
cmd1="jdb -J-Duser.home=. -connect com.sun.jdi.SocketAttach:hostname=localhost,port=29882 -sourcepath C:/workspaces/android/3rdWhale_import2/src/main/java";
cmd2="jdb -J-Duser.home=. -attach asantoso_xpl:29882";
echo $cmd1;
exec $cmd1;
sample jdb.ini:
stop in com.thirdwhale.activity.SplashActivity.onResume()
stop in com.thirdwhale.activity.NewsActivity.onResume()
stop in com.thirdwhale.activity.WhatsAround.onResume()