adb shell的一些常用命令

工作中经常用到一些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;
	}

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值