利用adb 命令回到手机端某个app的页面

  • Post author:
  • Post category:其他


利用adb 命令回到手机端某个app的页面,而不用点击本app图标

//需要执行的adb命令
String[] cmdStart = new String[] { "su",
						"am start -n com.bpt.activity/com.bpt.activity.AcMain" };
try {
		//执行adb 命令
		CMDUtil.execShellCMD(cmdStart, 1);
	} catch (IOException e1) {
	 // TODO Auto-generated catch block
	 e1.printStackTrace();
	} catch (InterruptedException e1) {
	 // TODO Auto-generated catch block
	 e1.printStackTrace();
	}

执行命令的工具方法

public static void execShellCMD(String[] s, int execType) throws IOException,InterruptedException {
if (s.length != 0) {
	 Process p = Runtime.getRuntime().exec(s[0]);
	 // PROBLEM: only first cmd in the array can be implemented, the other can not be implemented(or we can't see)
	 if (s.length > 1) {
		 OutputStream outputStream = p.getOutputStream();
		 DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
		 int i = 1;
		 dataOutputStream.writeBytes(s[1]);
	     dataOutputStream.flush();
		 dataOutputStream.close();
		 outputStream.close();
	 }
			switch (execType) {
			case 1:
				p.waitFor();
				break;
			default:
				p.waitFor();
				break;
			}
		}
	}

这个命令是在控制台连接手机

1.进入控制台
这里写图片描述

2.进入adb shell
进入 adb shell

3.在进入su

这里写图片描述

4.输入命令

这里写图片描述

这里就已经可以看到手机 上已经打开 Bpt 这个app的AcMain的页面

这个命令的格式:

am start -n app的包名/包名+类名

app的包名在项目的AndroidManifest.xml 文件中 可以看到 package=“com.bpt” 这个是这个项目的唯一标示。


———————————————————————————


今天做个补充:


下面利用抖音做例子

获取app的包名以及当前页面的activity(获取抖音的页面)

//获取app的包名以及当前页面的activity
adb shell dumpsys window windows | findstr "Current"

在这里插入图片描述

可以看到 前面的 “ com.ss.android.ugc.aweme”就是抖音的包名,后面的“com.ss.android.ugc.aweme.splash.SplashActivity” 就是抖音的页面activity

利用adb 命令停止app 应用

//杀掉app 的命令
adb shell am force-stop com.ss.android.ugc.aweme

这样就可以把抖音的应用杀掉了

adb shell am start -n com.ss.android.ugc.aweme/com.ss.android.ugc.aweme.splash.SplashActivity

这样就可以直接adb 控制打开抖音了。

好记性不如烂笔头

—–有信仰的小马



版权声明:本文为mxjblog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。