adb shell +<双引号>命令<双引号> 等效于 adb shell +回车后输入相关命令 ;不加双引号概率导致关键字不识别
系统无findstr命令时 ,可尝试用grep替代
目录
引言
adb shell +<双引号>命令<双引号> 等效于 adb shell +回车后输入相关命令 ;不加双引号概率导致关键字不识别
系统无findstr命令时 ,可尝试用grep替代
查看某个进程:
adb shell "pidof <包名>"
或者
adb shell ps <关键字或包名>
或者
adb shell ps |grep xxx == adb shell ps |findstr xxx
或者如下
D:\svnProject\Yi-Act>adb shell
root@KKHi3751V560:/ # clear
root@KKHi3751V560:/ # busybox ps
root@KKHi3751V560:/ # busybox ps | grep test
//应用所在进程号18383
18483 1000 1063m S < {a.test} com.sakura.test
27918 0 4416 S grep test
杀掉进程:
1.adb shell am force-stop <包名>
将所有状态的进程都杀死了,就算是前台的任务也杀掉了
2.adb shell kill <pid>
前台任务杀不了
3.adb shell pm clear <包名>
停止APP进程,而且会清除这个APP进程产生的所有数据。
抓log到电脑本地:
adb logcat -v time >c:/temp/666.log
或:
D:\svnProject\Yi-Act>adb shell
root@KKHi3751V560:/ # logcat -v time > data/1124.log
130|root@KKHi3751V560:/ #
130|root@KKHi3751V560:/ # exit
D:\svnProject\Yi-Act>adb pull data/1124.log d:/temp/1124.log
data/1124.log: 1 file pulled, 0 skipped. 6.3 MB/s (711821 bytes in 0.108s)
命令打开相应apk:
adb shell
# am start -n <包名>/<包名+活动名/即活动在工程的路径>
如:
>adb shell
am start -n com.sakura.factory/com.sakura.factory.FactoryHome
...Starting: Intent { cmp=com.sakura.kkfactory/.FactoryHome }
获得应用的启动时间
可以很方便地获取应用的启动时间
adb shell "am start -W <package_name>/<activity_class_name>"
返回的几个结果,以WaitTime为准,返回的是从startActivity到应用第一帧完全显示的时间
查看apk的版本信息
adb shell dumpsys package <package_name> | grep version
如果你得到的是的两个version版本,则为系统app,下面是系统app原厂的版本,上面是升级之后的系统app的版本信息
查看app的路径
adb shell pm path <package_name>
查看了一个普通app的路径,如下,位于data/app下面的普通app
package:/data/app/com.tencent.test-1/base.apk
查看当前界面所对应的activity
>adb shell
dumpsys activity activities
找到mFocusedActivity:对应的包和活动即是;
或者
dumpsys window |grep mCurrentFocus
查询栈顶Activity
dumpsys activity |grep mFocusedActivity
或者
adb shell dumpsys activity |findstr mResumedActivity
查看所有安装的包:
# pm list
查找对应包是否存在:
# pm list package |grep com.sakura.activitycontainer
查看应用版本号:
dumpsys package com.exmple.myapp | grep "version"
或者
pm dump com.exmple.myapp | grep "version"
adb截图保存到电脑
adb shell screencap -p /sdcard/screen.png //是截图保存到sd卡
adb pull /sdcard/screen.png //是将screen.png保存到计算机上;
//保存的路径为你使用adb命令时的当前目录,当然你也可以在最后加入你想存放的路径名
模拟按键输入
利用命令“adb shell input keyevent <键值>”可以实现自动化。例如“adb shell input keyevent 3”就可以按下Home键。
执行返回:adb shell input keyevent 4
执行灭屏亮屏:adb shell input keyevent 26
执行解锁屏幕:adb shell input keyevent 82
修改Hosts文件中域名对应的ip
Hosts文件在system/etc/目录下
adb shell
#cd system/etc/
#ls hosts*
挂载后可读写hosts文件
#mount -o rw,remount /system
#busybox vi hosts
进入vi编辑界面
按i编辑;
ESC退出编辑模式,:wq 写入并退出
修改/查看系统属性值
adb shell
# setprop <property name> <value>
#getprop <property name>
查看手机/电视sdk版本
adb shell "getprop | grep version"
运行上面的命令后,列出来的version中[ro.build.version.release]: [6.0.1]即为安卓sdk版本
查看手机/tv型号信息
adb shell "getprop | grep product"
运行此命令之后,能看到product,board,brand和cpu等等的型号
查看wifi密码(需要root权限)
adb shell "cat data/misc/wifi/*.conf"
查看后台services信息
adb shell "service list"
全部服务
运行结果为 Found 126 services:
xxx
具体服务
adb shell dumpsys activity services [<packagename>]
包名是必须的,不加包名显示所有,较为混乱 ;不需要写完整的包名、支持模糊匹配
查看系统当前内存占用,为综述
adb shell "cat /proc/meminfo" 显示总和剩余
或
adb shell dumpsys meminfo 各应用和服务所占内存,不显示总和剩余可用
查看某一个app的内存占用
>adb shell "dumpsys meminfo <包名>"
其中的Heap size包括了Dalvik Heap和Native Heap,平时我们所说的内存限制指的是Dalvik Heap。
查看单个应用程序的最大内存限制
adb shell "getprop | grep heapgrowthlimit"
得到的结果为128M: [dalvik.vm.heapgrowthlimit]: [128m]
这就是说Dalvik Heap size的最大值超过了128M,就很可能发生OOM
重启
adb reboot
查看android cpu是32位还是64位
adb shell getprop ro.product.cpu.abi
电脑复制文件到手机
adb push "C:\Users\Administrator\Downloads\Root.apk" /mnt/sdcard/goodRoot/
复制手机文件到电脑
adb pull /sdcard/packages.xml C:\Users\linux\Desktop\packages.xml