ADB命令
查看最顶端前台应用的包名和activity名
1
|
adb shell dumpsys window | grep mCurrentFocus
|
查看包信息
1
|
adb shell dumpsys package com.android.settings
|
查看App使用的数据库信息
1
|
adb shell dumpsys dbinfo com.android.settings
|
截图操作
1
|
adb shell screencap -p /data/local/tmp/Luo.png
|
管理package
pm命令是Android中packageManager的命令行,是用于管理package的命令.
1
2
3
4
|
//列出所有安装的APK包名
adb shell pm list packages
//安装apk文件,这里的apk文件不是在主机目录下,而是在Android目录下
adb shell pm install /data/local/tmp/LuoDst.apk
|
调试命令
am命令是一个重要的调试工具,主要用于启动或停止服务、发送广播、启动Activity等
1
2
|
//以Debug模式启动App
adb shell am start -D -N org.example.luodst/.MainActivity
|
其实以上所有命令也可以通过执行adb shell进入Android的shell中直接执行,只需要将开始的adb shell去掉就行.
主机与Android交互命令
1
2
3
4
5
6
7
|
//安装apk
adb install
//交换文件
adb push
adb pull
//查看日志
adb logcat
|
Linux命令
grep基本语法
用法:grep [选项] “字符串/基本正则表达式” [文件]
常用选项:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。
-q 不显示存在或者匹配的文本信息
-f 后接文件名,以文件中的每一行作为匹配项
-R 递归查询当前目录下的文件
-w 匹配单词
-o 只输出匹配字符串
-A 输出匹配行的后n行,后带数字,如-A 2
-B 输出匹配行的前n行,后带数字,如-B 2
-C 输出匹配行的前后n行,后带数字,如-C 2
|
创建空文件
1
|
touch /data/local/tmp/Luo.txt
|
写文件
echo命令通过配合">“或者”»“对文件进行写操作,其中”>“为覆盖写操作,"»“为扩展写操作.
1
|
echo "LuoHun" >> Luo.txt
|
查看文本文件内容
在shell中过滤符合条件的输出
1
|
cat Luo.txt | grep LuoHun
|
查看当前设备正在运行的进程
1
2
|
//在Android8之后,ps命令只能打印出当前进程,需要加上-e参数才能打印出全部的进程
ps
|
查看App网络相关信息
通常使用的参数组合为-alpe
netstat -alpe用于查看sockets连接的IP和端口以及相应的进程名和PID,配合grep往往有奇效.
1
|
netstat -alpe | grep com.android.la
|
查看对应进程打开的文件
1
|
lsof -p 1625 -l | grep jar
|
这里的文件不仅仅指常见的普通文件.在Linux系统中有一种说法叫"万物皆文件”,其实网络中建立连接的也可以叫做文件,因此lsof命令也可以用于与netstat命令相同的操作.
1
|
lsof -l -p 1625 | grep TCP
|
查看当前系统运行负载
1
2
|
//和htop作用一样,只是相对来说htop更加人性化
top
|