串口调试命令 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 kill-server:杀死adb进程
- adb install E:\yyh.apk
- adb uninstall 应用包名
- 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:罗列出当前系统运行的所有进程
- 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
串口命令
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 <package-name> 查看包的信息
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这个用户)
am
- am switch-user 10(切换到10这个用户)