串口调试命令 debug
adb 命令(去掉adb shell即为串口命令)
发送广播 adb shell am broadcast -a com.android.test
打开activity adb shell am start -n com.google.android.tungsten.setupwraith/.MainActivity
adb start-server:启动adb进程
adb connect ip地址 :通过Ip连接设备(在局域网中即可。可以不用adb线)
adb kill-server:杀死adb进程
adb install E:\yyh.apk
adb uninstall 应用包名
adb shell pm path com.org.emanual(输出包名以及路径)然后再路径
adb devices:列出与开发环境建立连接的android设备的列表
adb shell:进入Android命令行
adb shell sqlite3 data/data/com.android.providers.settings/databases/settings.db “select * from secure”(查看secure数据表)
Android的指令:
ls:罗列出当前目录下的所有文件和文件夹
ps -A:罗列出当前系统运行的所有进程
netstat -ano:查看系统的端口占用情况
截图
adb shell /system/bin/screencap -p /sdcard/screenshot.png(保存到SDCard)
adb pull /sdcard/screenshot.png d:/screenshot.png(保存到电脑)
录屏
adb shell screenrecord --time-limit 10 /sdcard/demo.mp4
adb pull /sdcard/demo.mp4 F:\mvp\demo.mp4
批量安装apk命令,apk文件得拷贝到adb根目录。
for %i in (*.apk) do adb install %i
连接adb调试
有时候要使用连接线去连接android 设置去调试,如果没有连接线的话,可以将android 设备和
pc置于同一个局域网中,然后通过 **adb connect android设备ip地址** 去连接调试
串口命令
logcat
- "-s"选项 : 设置输出日志的标签, 只显示该标签的日志;
--"-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;
--"-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;
--"-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;
--"-v"选项 : 设置日志的输出格式, 注意只能设置一项;
--"-c"选项 : 清空所有的日志缓存信息;
--"-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;
--"-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;
--"-g"选项 : 查看日志缓冲区信息;
--"-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;
--"-B"选项 : 以二进制形式输出日志;
logcat --help z
logcat -c(清除还没吐出来的缓存log)
logcat (开始抓log)
logcat -s “过滤条件” (只输出特定的log)
logcat -v time(log中带时间戳)
logcat -f 路径(将logcat保存在一个路径下)
logcat | grep -i wifi(使用管道来进行过滤,查询wifi并忽略大小写)
dumpsys
输出系统在一段时间里的状况,包括activity,广播等之类,比较多
因为dumpsys刷出来的东西太多,故可以和grep结合使用
dumpsys activity 查看Activity信息
dumpsys package 查看包的信息
dumpsys activity activities 查看Activity栈
dumpsys audio 查看audio信息
dumpsys |grep BroadcastRecord 查看广播记录
dumpsys input 查看设备对应的kl文件信息
dumpsys wifi 查看wifi信息
dumpsys activity top 查看顶层应用情况,具体哪一个在最上面
一些常用的串口命令
input text 账号密码(快速 输入账号密码)
getevent (看按键键值)
getprop 系统属性(得到系统属性的值)
input keyevent 键值(模拟按键)
getenforce(查看selinux的权限)
dumpsys window|grep mFocusedWindow(查看当前界面属于那一个应用)
setenforce 0(将selinux的权限去掉)
setprop 系统属性 系统属性值(设置系统属性)
settings
** 系统中很多的属性都是在Setting这个应用设置的,例wifi,蓝牙,声音,亮度等,这些数据主要是存储在数据库中,对应的URI为:content://settings/system和content://settings/secure.对应的数据库为: /data/data/com.android.providers.settings/databases/settings.db里,里面有三个表global, system, secure.
可以通常这样查看数据
adb shell sqlite3 data/data/com.android.providers.settings/databases/settings.db "select * from secure"
但是自从android 6.0以后这几个表都变为了xml文件。具体位置如下:
不同用户放不同的路径下,如果没有创建新用户,则在/data/system/users/0下
settings_global.xml, settings_system.xml, settings_secure.xml
用代码设置或者得到系统属性的值 Settings.Secure.getInt(getContentResolver() , Settings.Secure.WIFI_ON);
Settings.System.putInt(mContext.getContentResolver(), key, value);
用串口:(system,secure类似) settings get global 系统属性key
settings put global 系统属性key 系统属性值
pm
pm install -r (安装应用)
pm create-user 10(创建用户)
pm list users(列出所有用户)
pm remove-user 10(在主用户模式下删除10这个用户)
pm path com.org.emanual(输出包名以及路径)然后再路径
am
am switch-user 10(切换到10这个用户)
wm
wm size (读取屏幕分辨率)
wm density(读取屏幕dpi)
wm size 1920x1080(将屏幕分辨率设置为1920x1080)
wm density 300 (将dpi设置为300)
-wm size reset (恢复默认值)
今天突然发现一篇将adb 命令整理的很全的文章,这里分享出来,真是大神啊,这篇文章真的很经典很经典,文章中提到的用法工作中基本都能用到。