工作中经常用到一些adb命令,我觉得有必要整理一下,怕以后用到的时候忘记了。
adb使用的端口号是:5037
java如何调用adb:java中的Runtime类为我们提供解决办法,可以使用Runtime.getRuntime.exec();此方法用于执行外部的程序或命令。
adb常用方法总结:
adb devices 获取设备ID。
adb get-state 获取设备状态。
adb kill-server ,adb start-server 结束adb,启动adb,一般都是这2个命令配合使用。
adb install 安装应用程序。参数:apk文件的路径。
adb uninstall 卸载应用程序。参数:应用程序包名。
adb pull <PC机上的文件><Android路径> 将PC文件拷贝到Android设备。
adb pull <Android路径><PC机上的文件> 将Android机中的文件拷贝到PC设备上。
注意:adb pull有可能出现失败的情况,这里要注意如果失败,可先尝试使用adb root命令切换成root用户后再行操作。
adb locat 查看日志。
adb locat:打印默认日志数据。
adb locat -v time:打印日志的详细时间和简单数据。
adb locat *:E:打印Error级别的信息。
adb locat >D:\locat.txt:将日志保存到某个位置。
loact级别:优先级使用字符标识,优先级从低到高
V –Verbose(最低优先级)
D – Debug
I – Info
W – Warning
E – Error
F – Fatal
S – Silent
如:
adb logcat *:W 设置过滤级别为W以上。
adb shell命令:
概念:adb命令是这个adb程序自带的一些命令。而adb shell命令是调用Android系统中的命令。
adb shell命令比较庞大也比较多,就不详细讲述了,前段时间做了个小项目,自己封装了一个用到adb shell命令的类,可以作为参考。
public class Tools {
private static Tools INSTANCE = null;
static Process process;
OkHttpClient client = new OkHttpClient();
// 手机下线
public String PHONE_OFFLINE_STATE = "2";
public Tools() {
}
public static Tools getInstance() {
if (INSTANCE == null) {
INSTANCE = new Tools();
}
return INSTANCE;
}
// 获取手机屏幕分辨率
public String getScreen(String devName) {
process = null;
String buff = "";
try {
process = Runtime.getRuntime().exec(
"adb -s " + devName + " -d shell wm size");
BufferedReader br = new BufferedReader(new InputStreamReader(
process.getInputStream(), "utf-8"));
while ((buff = br.readLine()) != null) {
System.out.println("手机" + devName + "的分辨率是:" + buff);
return buff;
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
// 获取手机系统版本号
public String getSystemVersion(String devName) {
process = null;
String buff = "";
try {
process = Runtime.getRuntime().exec(
"adb -s " + devName
+ " shell getprop ro.build.version.release");
BufferedReader br = new BufferedReader(new InputStreamReader(
process.getInputStream(), "utf-8"));
while ((buff = br.readLine()) != null) {
System.out.println("手机" + devName + "的系统版本是:" + buff);
return buff;
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
// 获取手机厂商
public String getModel(String devName) {
process = null;
String buff = "";
try {
process = Runtime.getRuntime().exec(
"adb -s " + devName + " -d shell getprop ro.product.model");
BufferedReader br = new BufferedReader(new InputStreamReader(
process.getInputStream(), "utf-8"));
while ((buff = br.readLine()) != null) {
System.out.println("手机" + devName + "的厂商是:" + buff);
return buff;
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
// 获取手机型号
public String getBrand(String devName) {
process = null;
String buff = "";
try {
process = Runtime.getRuntime().exec(
"adb -s " + devName + " -d shell getprop ro.product.brand");
BufferedReader br = new BufferedReader(new InputStreamReader(
process.getInputStream(), "utf-8"));
while ((buff = br.readLine()) != null) {
System.out.println("手机" + devName + "的型号是:" + buff);
return buff;
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}