有多个设备时选择其中的某设备
adb -s H066982 shell

//========================================
安装APK
adb install -r r:\1.apk

//========================================
以调试模式启动APP
adb shell am start -D -n hw.helloworld/hw.helloworld.MainActivity

//========================================

列出所有安装应用的包名
adb shell pm list packages

过滤显示
adb shell pm list packages | grep 431

找到apk的位置
adb shell pm path com.tence01.mm

pull出来
adb pull /data/app/com.tence01.mm-1.apk d:\

pull 整个目录
adb pull /data/local/tmp/ d:\
//====================================================
//setpropex 修改系统调试进程方法

查看系统当前值
getprop ro.secure //默认值是 1
getprop ro.debuggable //默认值是 0

将 setpropex push 到设置并设置好仅限
在root权限下执行
./setpropex ro.debuggable 1
./setpropex ro.secure 0

adb root
运行adbd as root
//强制重启android的Dalvik层
ps | grep system_server
kill -9 pid
//====================================================
//-k 为是否保留数据
pm uninstall -k 包名
//====================================================
IDA 调试 so

adb push D:\Tools\android\ida7\and_server /data/local/tmp/
//adb shell 下进入su, 下面二条命令在 root 权限下运行, 否则看不到所有进程

chmod 777 /data/local/tmp/and_server
/data/local/tmp/and_server

adb forward tcp:23946 tcp:23946

//如果IDA 提示 Bogus or irresponsive remote server
//在Root下执行下面命令 关闭SELinux防火墙
setenforce 0
//====================================================
查看活动页面
adb shell dumpsys activity
adb shell dumpsys activity | grep -i run
adb shell dumpsys activity | grep "mFoc"
//====================================================
杀进程
查看进程ID
ps | grep and_server
进程ID
//root 21042 1 13604 11844 ffffffff b6e97f74 R ./and_server
kill -9 21042
//kill -9 发送SIGKILL信号给进程,告诉进程,你被终结了,请立刻退出。

ps 常用参数
-A 显示所有进程(等价于-e)(utility)
-a 显示一个终端的所有进程,除了会话引线
-N 忽略选择。
-d 显示所有进程,但省略所有的会话引线(utility)
-x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
-p pid 进程使用cpu的时间
-u uid or username 选择有效的用户id或者是用户名
-g gid or groupname 显示组的所有进程。
U username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility)
-f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
-l 长格式(有F,wchan,C 等字段)
-j 作业格式
-o 用户自定义格式。
v 以虚拟存储器格式显示
s 以信号格式显示
-m 显示所有的线程
-H 显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
e 命令之后显示环境(如:ps -d e; ps -a e)(utility)
h 不显示第一行

ps命令常用用法(方便查看系统进程)
1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。
2)ps -A 显示所有进程。
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps e 列出程序时,显示每个程序所使用的环境变量。
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s 采用程序信号的格式显示程序状况。
10)ps S 列出程序时,包括已中断的子程序资料。
11)ps -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u  以用户为主的格式来显示程序状况。
13)ps x  显示所有程序,不以终端机来区分。
最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。
//---------------
ps 查找进程路径

//4170是进程ID
ls -al /proc/4170

cwd符号链接的是进程运行目录;
exe符号连接就是执行程序的绝对路径;
cmdline就是程序运行时输入的命令行命令;
environ记录了进程运行时的环境变量;
fd目录下是进程打开或使用的文件的符号连接。

//====================================================
//====================================================
shell命令

拷贝文件
cp /data/* /data/local/tmp

*//-------------------------------------
定位文件
locate 文件名
如果新增加的文件无法locate,使用updatedb

查找文件
find -name test.file
不区分大小写
find -iname test.file
在指定目录查找文件
find /var -name test.file

解压文件
解压 tar.gz 文件
tar  -xzf  all.tar.gz

转载请注明转自: 听风 , 本文固定链接: 安卓调试常用ADB命令