连接电脑并打开手机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
这样就找到了四行信息,搜索条件包括两个条件【一:有/字符,二:有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