如上-e代表push到模拟器中,/mnt/sdcard/代表SD卡
adb logcat wait-for-device等待设备一连接就开始抓LOG
从电脑上远程控制手机
打开设备上的monkey端口
将PC的1080端口印射到手机上的1080端口上,这样所有通过电脑1080端口的信息都会发住手机
远程连接电脑上的端口,比如发送一些按键信息,这样就能传递到手机上了
adb 无线连接与文件同步
adb connect + IP ,可以链接某个设备。
这个命令在调试真机的时候,使用频繁。 但注意: 1.要链接的IP ,必须和自己的PC的网络在同一个局域网内,adb 不能跨局域网链接设备 2.如果通过usb链接android设备,通过adb devices 可以看见设备列表,但是使用不了,可以参考下面的命令 adb tcpip 5555 adb connect 192.168.0.101:5555
adb shell getprop dhcp.wlan0.ipaddress获取设备的IP地址
adb get-serialno 获取设备的ID和序列号serialNumber
说明:
序列号[serialNumber]——由adb创建的一个字符串,这个字符串通过自己的控制端口<type>-<consolePort>
唯一地识别一个模拟器/设备实例。一个序列号的例子: emulator-5554
adb get-state 查看模拟器/设施的当前状态.
adb forward <local> <remote>发布端口,可以设置任意的端口号,
adb forward tcp:6100 tcp:7100 // PC上所有6100端口通信数据将被重定向到手机端7100端口server上
adb wait-for-device 在模拟器/设备连接之前把命令转载在adb的命令器中
adb jdwp 查看指定的设施的可用的JDWP信息.
adb shell input text <string> 向设备输入文本(光标所在的文本框)
adb shell input keyevent <event_code> 向设备发送按键事件
input tap , 对屏幕发送一个触摸事件
adb shell input tap 500 500
input swipe , 滑动事件
adb shell input swipe 900 500 100 500
在编辑短信时,往文本框输入文本:adb shell input text "hello"
向手机发送键值回Home:adb shell input keyevent 3
event_code 参考view/KeyEvent.java中的 KEYCODE_*
public static final int KEYCODE_SOFT_LEFT = 1;
public static final int KEYCODE_SOFT_RIGHT = 2;
public static final int KEYCODE_HOME = 3;
public static final int KEYCODE_BACK = 4;
public static final int KEYCODE_CALL = 5;
public static final int KEYCODE_ENDCALL = 6;
adb shell procrank 查询各进程内存使用情况
adb shell service list 查看services信息
adb shell cat /proc/meminfo 查看当前的内存情况
adb shell cat /proc/cpuinfo 查看CPU信息(硬件)
adb shell cat /proc/iomem 查看IO内存分区
adb shell getprop 列出系统所有属性
adb shell getprop | findstr "gsm" 列出包含gsm的属性
adb shell setprop <key> <value> 修改系统属性
adb shell sqlite3 可以执行sql语句查看数据库信息, 具体使用情况待调查
adb shell dmesg 查询内核缓冲区信息
adb shell dumpstate 各类信息,比如进程信息,内存信息,进程是否异常,kernnel的log等
adb shell dumpcrash
adb shell dumpsys 查询所有service的状态
adb reboot-bootloader 重启到bootloader
adb reboot recovery 重启到recovery
adb push flash_image.zip /system/bin/flash_image 增加flash_image文件到手机上
android list targets 显示系统中全部Android平台
android list avd 显示系统中全部AVD(模拟器):
adb shell screencap -p /sdcard/penghong.png(参数-p为保存为png格式)
adb shell screenrecord
/sdcard/demo
.mp4 录制视频
adb shell pm dump com.tencent.mobileqq 列出指定应用的 dump 信息
adb shell pm install , 安装应用存放于 Android 设备上(安装存放于电脑上的用adb install)
am 又是一个庞大的命令。。。 am 源码 Am.java am start , 启动一个 Activity,已启动系统相机应用为例 启动相机 [xuxu:~]$ adb shell am start -n com.android.camera/.Camera Starting: Intent { cmp=com.android.camera/.Camera } 先停止目标应用,再启动 [xuxu:~]$ adb shell am start -S com.android.camera/.Camera Stopping: com.android.camera Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.camera/.Camera } 等待应用完成启动 [xuxu:~]$ adb shell am start -W com.android.camera/.Camera Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.camera/.Camera } Status: ok Activity: com.android.camera/.Camera ThisTime: 500 TotalTime: 500 Complete 启动默认浏览器打开一个网页 [xuxu:~]$ adb shell am start -a android.intent.action.VIEW -d http://testerhome.com Starting: Intent { act=android.intent.action.VIEW dat=http://testerhome.com } 启动拨号器拨打 10086 [xuxu:~]$ adb shell am start -a android.intent.action.CALL -d tel:10086 Starting: Intent { act=android.intent.action.CALL dat=tel:xxxxx } am instrument , 启动一个 instrumentation , 单元测试或者 Robotium 会用到 am monitor , 监控 crash 与 ANR [xuxu:~]$ adb shell am monitor Monitoring activity manager... available commands: (q)uit: finish monitoring ** Activity starting: com.android.camera am force-stop , 后跟包名,结束应用 am startservice , 启动一个服务 am broadcast , 发送一个广播
adb shell uiautomator dump 获取当前界面的控件信息
adb shell ime list -s 列出设备上的输入法
adb shell wm size 获取手机分辨率
adb shell settings https://testerhome.com/topics/1993
adb shell dumpsys dropbox [--print|--file] [YYYY-mm-dd] [HH:MM:SS] [tag] app发生crash,未及时在logcat中抓取到有效log时,可通过该脚本获取到log,app报错时间关键字“data_app_crash”
adb shell dumpsys package com.tencent.mm|findstr android.permission获取应用的权限
8.获取通知信息:
adb shell dumpsys notification
7.adb shell dumpsys wifi
可以获取到当前连接的wifi名、搜索到的wifi列表、wifi强度等
获取电源管理信息:
adb shell dumpsys power 可以获取到是否处于锁屏状态:mWakefulness=Asleep或者mScreenOn=false 亮度值:mScreenBrightness=255 屏幕休眠时间:Screen off timeout: 60000 ms 屏幕分辨率:mDisplayWidth=1440,mDisplayHeight=2560 等
获取电话信息:
adb shell dumpsys telephony.registry 可以获取到电话状态,例如 mCallState值为0,表示待机状态、1表示来电未接听状态、2表示电话占线状态 mCallForwarding=false #是否启用呼叫转移 mDataConnectionState=2 #0:无数据连接 1:正在创建数据连接 2:已连接 mDataConnectionPossible=true #是否有数据连接 mDataConnectionApn= #APN名称 等
adb shell dumpsys window displays |findstr init 获取手机分辨率
使用命令adb shell dumpsys alarm 来检测app的alarm唤醒次数
adb 获取WIFI密码:adb shell后,然后cat /data/misc/wifi/*.conf
命令
手机不识卡的解决办法:adb shell setprop persist.radio.multisim.config dsds
adb shell getprop dalvik.vm.heapgrowthlimit单个应用程序最大内存限制
adb shell dumpsys battery set usb 0 屏蔽USB充电
cat /proc/stat命令 查看CPU时间片
查看 TP相关的信息
adb shell getevent 查看input设备属于哪一个event
adb shell getevent dev/input/event1
与input event 对应的信息 root@android:/ # cat/proc/bus/input/devices
查看TP上报的速率: getevent -r /dev/input/event1
查看TP上报的键值:getevent -l/dev/input/event1
/system/build.prop中 JAVA虚拟机内存使用上限,还可以adb shell getprop查看
adb shell getprop|findstr dalvik.vm.heapgrowthlimit
adb logcat -c 清空手机中的log
单个应用程序最大内存限制,超过这个值会产生OOM
adb shell cat /system/build.prop>phone.info
ro.build.version.release android版本号
ro.product.model 机型
ro.product.brand分支
adb shell pm clear com.android.contacts清除数据
adb nodaemon server查看adb的端口号