利用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
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 版权协议,转载请附上原文出处链接和本声明。