使用ADB启动手机APP

手机连接电脑,开启USB调试,【不懂去百度】

windows下载ADB,设置环境变量,然后打开cmd,【不懂去百度】

//获取手机上当前正在运行的APP的包名+Activity名
ADB命令:

adb shell dumpsys window | findstr mCurrentFocus

执行结果:

mCurrentFocus=Window{d9a816a u0 com.xxx.xxx/com.xxx.xxx.ui.activity.TabActivity}

其中com.xxx.xxx就是包名,

但是因为很多APP启动后显示的页面,并不是入口Activity,
因此,上面的结果中【com.xxx.xxx/com.xxx.xxx.ui.activity.TabActivity】并不一定能用来启动APP,
很多APP有个专门的过渡启动页,用来判断是否已经登录,登录了显示主页,没登录显示登录页。
ADB启动APP命令:

adb shell am start com.xxx.xxx/com.xxx.xxx.starActivity

【这个starActivity就是APP的启动入口Activity】

下面是找到这个APP入口Activity的命令:

adb shell dumpsys package com.xxx.xxx

执行这个命令,会显示一大堆信息,其中前面几行信息就是入口信息,排在最前面,但是信息太多,要翻页很久,
入口信息像这样:

b70c46b com.xxx.xxx/.ui.activity.LoadingActivity filter 9e6bc8

根据结果调整命令,加入搜索条件:findstr \/ | findstr filter
调整后的命令:

adb shell dumpsys package com.xxx.xxx  | findstr \/ |findstr filter

这样就找到了4行信息,搜索条件包括两个条件【一:有/字符的,二:有filter字符串的】
如下,其中第一行就是我们需要的入口Activity信息:

b70c46b com.xxx.xxx/.ui.activity.LoadingActivity filter 9e6bc8
cfb0461 com.xxx.xxx/com.hyphenate.chat.EMMonitorReceiver filter 63c9b86【这个APP引用了其它的包,这里是其它包入口信息】
cfb0461 com.xxx.xxx/com.hyphenate.chat.EMMonitorReceiver filter ed53c47【这个APP引用了其它的包,这里是其它包入口信息】
cfb0461 com.xxx.xxx/com.hyphenate.chat.EMMonitorReceiver filter ed53c47【这个APP引用了其它的包,这里是其它包入口信息】

结论:
一、先用

adb shell dumpsys window | findstr mCurrentFocus

命令找到【当前连接电脑的手机正在运行的APP】的包名
二、再用

adb shell dumpsys package 包名  | findstr \/ |findstr filter

命令找到入口Activity。

三、使用

adb shell am start com.xxx.xxx/com.xxx.xxx.starActivity

启动APP

    原文作者:网络老男孩了
    原文地址: https://blog.csdn.net/wangluonanhai/article/details/122584545
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞