常用android命令备忘录

1. 常用基本命令
adb devices
	查看当前挂载手机设备的信息
adb root
	root userdebug版本的手机。
adb remount
	将 '/system' 目录改为可写入的模式,默认情况下 '/system' 部分是只读模式的。
	这个命令只适用于已被 root 的设备, 即调用过 adb root之后。
	注意,使用其他命令之前,最好先使用adb root和adb remount命令。
adb push test.mp4 /sdcard/
	push 文件置于sdcard下
adb pull /sdcard/test.mp4 .
	将手机中特定的文件pull到本地

adb shell
	进入手机模式
adb shell + 其他linux命令
	调用手机的一些命令,如 adb shell chmod 0777 /system/bin/test_bin
adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/test.mp4
	扫描/sdcard/目录下,test.mp4的metadata信息,如缩略图,时长,编码格式等信息。
adb shell am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///mnt/sdcard/
	重新挂载sdcard,适用于在手机的sdcard中push了好多视频,需要显示到图库中去测试,不用在一个个去scanner了。
adb shell pkill media
	杀掉进程名中带media关键字的相关进场,不需要在手机模式下: ps -df | grep mediaserver; kill -9 mediaserver进程号,这些繁琐的操作
adb shell getprop
	获取手机所有的属性键值
adb shell getprop media.stagefright.extractremote
	查看是否以remote的模式运行MediaExtractor,即MPEG4Extractor等解析器是否运行在media.extractor 进程中(注:android 7.0之后,将mediaserver进程拆分成mediaserver, media.extractor, media.codec等粒度更小的进程,但保留了这个键值属性,手机厂商可以选择解析运行在media.extractor还是mediaserver进场)
adb shell setprop media.stagefright.extractremote false
	将media.stagefright.extractremote属性值设置为false, 保证解析器运行在mediaserver进程中。
2. 常用调试命令
adb logcat
	查看手机缓冲区的ap log
adb logcat -c && adb logcat -v threadtime
	清除手机缓冲区log,并实时查看ap log
adb logcat  -s MediaPlayer
	过滤 LOG_TAG 为 MediaPlayer的相关ap log
adb logcat | grep "MediaPlayer"
	过滤log中包含"MediaPlayer"相关的ap log
adb logcat | grep -E "MediaPlayer|NuPlayer"
	过滤多个关键字相关的ap log

adb shell dmesg
	查看缓冲区的kernel log (只要距离开机的相对时间段, 没有时间信息,不推荐使用)
adb shell dmesg -c
    查看缓冲区的kernel log并 clear
adb shell dmesg  -C
	清除缓冲区的kernel log, 不会显示到终端设备上
adb shell dmesg -C && adb shell dmesg -w
	清除缓冲区的kernel log, 并循环调用adb shell dmesg 以便实时显示 kernel log

备注: 上述的dmesg命令不直观,不推荐使用,推荐如下用法

adb logcat -b kernel
	查看kernel log
adb logcat -b kernel -c && adb logcat -v threadtime -b kernel
	清除缓存的kernel log并实时查看kernel log

adb shell debuggerd -b + 进程号
	查看当前指定进程的各个线程调用栈
	如:
		$adb shell ps -df | grep audioserver
		audioserver    719     1 0 15:51:31 ?     00:00:15 android.hardware.audio@2.0-service
		audioserver    919     1 0 15:51:32 ?     00:00:04 audioserver

		$adb shell debuggerd -b 919 > ~/tmp.txt
3. 部分专用调试命令
adb shell dumpsys
	查看手机上所有的service的运行状态(强烈不推荐这个命令,信息太多了,不好查找有用信息)
adb shell service list
	查看手机上所有运行的service name(用于dumpsys后跟的参数)
我们查看了所有的service,可以一一dumpsys指定service的状态
adb shell dumpsys media.player
	查看当前播放的媒体文件的状态
	如 NuPlayer的state, 音视频轨所用的decoder,视频的分辨率,音频的采样率,采用位数等等

adb shell dumpsys battery
	查看当前电池的状态信息,是否在充电等信息
4、放在线音乐或者视频时 抓包
adb shell tcpdump -s 0 -i wlan0 -w a.pcap 
抓取wlan0网卡的数据 并写到 a.pcap文件里
根据网卡的不同 可能为p2p0等设备
使用 wireshark来查看
如果想看具体包信息 可以过滤 HTTP包 只看 HTTP最后的 HTTP/1.1 200 OK 
中的conenet-Length字段 如果没有设置 前端拿到的就是 -1
5、通过wifi连接adb来查看log

此方法使用于手机的usb端口被其他设备占用的情形

5.1 查看手机ip地址
连上手机,adb shell ifconfig
找到wlan0中 inet addr: 后面的ip地址
5.2 连接端口
adb tcpip 1234
其中1234为端口号,保证没有被其他模块使用即可
5.3 连接手机
adb connect ip:port 方式
例:
adb connect 192.168.0.1:1234

注意手机和pc必须在同一个网段中
为了不用每次都敲这些命令,我做成了bash脚本,如下:

#!/bin/sh

adb root
sleep 1 
addr_line=`adb shell ifconfig | grep "inet addr:.* Bcast:"`
addr=`echo ${addr_line} | sed 's/.*inet addr:\(.*\) B.*/\1/g'`
random_num=`date +%s%N`
range=$((65536 - 49152))
delta=$(( $random_num % $range))
#port=`expr 49152 + 10`
#port=$[ 49152 + 10 ]
if [ -z $1 ]; then
port=`expr 49152 + $delta`
else
port=$1
fi
echo "random_num:'$random_num',range:'$range', delta:$delta, port:'$port'"
adb tcpip ${port}
sleep 1
echo adb tcpip ${port}
#echo adb tcpio
#sudo /home/ruzhi/system-config/bin/Linux/adb connect ${addr}:${port}
adb connect ${addr}:${port}
echo adb connect ${addr}:${port}
echo ------------------------------------------
adb devices
--------------------- 
作者:少侠的崛起 
来源:CSDN 
原文:https://blog.csdn.net/u012188065/article/details/80481467 
版权声明:本文为博主原创文章,转载请附上博文链接!

使用说明

使用说明:
将此段sh保存到脚本中,连接手机,
直接运行 脚本 + 指定端口号,
比如我将这段代码保存到con.sh中,运行时输入
con.sh 1234
脚本会自动搜索手机ip 地址,之后连接 1234 端口号
为了保证更高的效率,脚本后面也可以不指定端口号,即
con.sh 
端口号为  49152 - 65536 之间的一个随机端口号,大部分不会被占用。
--------------------- 
作者:少侠的崛起 
来源:CSDN 
原文:https://blog.csdn.net/u012188065/article/details/80481467 
版权声明:本文为博主原创文章,转载请附上博文链接!
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值