android实际的自动化测试中,应用的整个测试过程中,我们可能都不要人为的手动干预,譬如apk的安装,我们希望它静默安装,不要人手动去确认等。
如果大家看过我第一篇的文章ADB技能使用初级篇(上),相信大家还记得里面有个pm 命令,接下来我们看看如何通过它实现我们的静默安装功能。
首选需要我们的手机要有root权限,具体的命令如下
adb shell pm install -r path
path :apk在sdcard中的绝对地址
这样就我们可以静默安装sdcard中的APK了,但是这种方式只能,使用大部分手机,有的手机还是无法进行静默安装,最常见的手机例如小米等。那怎么办呢,我们可以使用其他方式来配合这个命令。
1.cp命令,使用cp 命令将APK拷贝到/data/app 目录下,此目录是存放所有已经安装的apk信息,这样也可以实现静默安装。
2.cat命令,如果你的运气不那么好,你的手机不支持cp命令,可以使用cat命令替代
代码实现
String cmd[] = {
"pm install -r " + path,
"cp -f \"" + path + "\" /data/app",
"cat \"" + path + "\" > \"/data/app/" + name + "\""
};
Process process = Shell.execShells("su", cmd);
public static Process execShells(String cmdTag, String commands[]) throws IOException {
Process process = Runtime.getRuntime().exec(cmdTag);
if (commands != null) {
OutputStream output = process.getOutputStream();
for (int i = 0; i < commands.length; i++) {
if (commands[i] != null) {
output.write(commands[i].getBytes());
output.write("\n".getBytes());
}
}
output.close();
}
return process;
}