方案
下面介绍的方案都是非侵入式的:
1、通过logcat命令过滤activity启动相关的日志,杀掉应用进程后重新打开,打印出的第一行日志中,如下图红框部分就是启动Activity。
adb logcat | grep 'ActivityManager: Start'
2、杀掉应用进程后,打开应用的同时执行下面的命令:
adb shell dumpsys window windows | grep 包名
3、可以用上篇文章中《推荐一款超好用的Android反编译工具》提到的反编译方法获取:
4、通过aapt命令获取,脚本如下:
#!/bin/bash echo "请输入apk地址:" read apk launch_activity=$(aapt dump badging ${apk} | grep launchable-activity | sed 's/ //g' | cut -d "'" -f2) package_name=$(aapt dump badging ${apk} | grep package: | sed 's/ //g' | cut -d "'" -f2) if [[ ! -n "${launch_activity}" ]]; then echo "抱歉没有找到启动activity" else echo "${package_name}/${launch_activity}" fi