adb命令
文件管理
- adb 连接设备
usb 连接手机
adb tcpip 5555
adb shell ifconfig wlan0
adb connect 手机ip地址
- 查看系统所有属性的配置表
busybox vi build.prop
- 获取手机系统信息( CPU,厂商名称等)
adb shell "cat /system/build.prop | grep "product""
- 获取手机系统版本信息
adb shell "cat /system/build.prop | grep "version""
// 系统固件版本
ro.build.version.incremental=eng.iipjenkins.20191018.155227
ro.build.version.sdk=25
ro.build.version.preview_sdk=0
ro.build.version.codename=REL
ro.build.version.all_codenames=REL
ro.build.version.release=7.1.2
ro.build.version.security_patch=2017-04-05
ro.build.version.base_os=
ro.opengles.version = 196609
ro.opengles.version=196609
ro.rksdk.version=RK30_ANDROID7.1.2-SDK-v1.00.00
- 查看已安装应用的versionCode
dumpsys package com.cvte.mirror.speech | grep versionCode
- 截图
adb shell screencap /sdcard/11.png
adb pull /sdcard/11.png
- 安装卸载
//安装时,保留原有数据
adb install -r hello.apk
//卸载,但是保留数据
adb uninstall -k com.clear.hello
- 从电脑上复制文件到设备
// 把 a.png 从电脑上拷贝到设备sd卡上
adb push ~/a.png /mnt/sdcard/
// 把 a.png 从电脑上拷贝到设备sd卡上并重命名为 b.png
adb push ~/a.png /mnt/sdcard/b.png
// 把 pic目录下所有文件从电脑上拷贝到设备sd卡上
adb push ~/pic/ /mnt/sdcard/
- 从设备复制文件到电脑
// 把 a.png 从设备sd卡上拷贝到电脑上
adb pull /mnt/sdcard/a.png ~/
// 把 a.png 从设备sd卡上拷贝到电脑上并命名为b.png
adb pull /mnt/sdcard/a.png ~/b.png
// 把pics目录下所有文件从设备sd卡上拷贝到电脑上
adb pull /mnt/sdcard/pics/ ~/pics/
- 删除某个文件
-f 强制删除文件不需要确认
-r 递归删除文件夹内文件
-i 删除文件前需要确认
adb shell rm /sdcard/1.txt
- 创建目录
adb shell mkdir /sdcard/temp // 指定 -p 递归创建目录
adb shell mkdir -p /sdcard/temp/test/abc/hello/
- 创建文件、移动文件
adb shell touch /sdcard/1.txt
// 拷贝文件1.txt到test目录
adb shell cp /sdcard/1.txt /sdcard/test/
// 移动文件,移动同一目录下文件相当于重命名文件
adb shell mv /sdcard/1.txt /sdcard/2.text
PM命令
- 查看应用的包名
pm list packages | grep xxx
- 查看当前当前包名应用安装的位置
pm list packages -f 包名
pm -lf | grep 包名
- 查看应用存放位置
ps // 找到对应的包名
pm path 包名
- 清除应用缓存
adb shell pm clear com.clear.hello
- 列出(系统、第三方)应用包名
adb shell pm list packages -s // 系统
adb shell pm list packages -3 // 第三方
PS命令
查看当前进程信息
ps | grep shop (包名中有shop的进程信息)
kill 进程id 杀死指定进程
ps | grep cvte
// 查看指定进程信息
adb shell ps -x pid
AM命令
- force-stop
force-stop命令杀掉所有用户空间下的包名pkgName相关的信息 一般地,点击home弹出的清理用户最近使用app采取的策略便是force-stop.
am force-stop pkgName
am force-stop --user 2 pkgName //只杀用户userId=2的相关信息
- 打开指定的Activity
am start cvte.mid.factory/.TestModeSelectorActivity // 打开指定界面
am start com.cvte.mirrordevguidehelper // 打开指定应用
am start -a xxxx // 根据action 启动应用
启动Service
am startservice -n{包(package)名}/{包名}.{服务(service)名称}
am startservice -n com.android.traffic/com.android.traffic.maniservice
发送broadcast
am broadcast -a <广播动作>
// 发送一个网络变化的广播
am broadcast -a android.net.conn.CONNECTIVITY_CHANGE
DM命令
查看应用的各种信息,其中就包含了versionCode
adb shell dumpsys package [PackageName]
adb shell dumpsys package com.tencent.mobileqq | grep versionCode
// 查询当前包名应用是否获取指定权限
dumpsys package check-permission
如果在data 目录下安装了比system/app的app versionCode低的版本,==重启reboot的时候系统会自动选择版本较高的覆盖安装==
查看前台 Activity
adb shell dumpsys activity activities | grep mFocusedActivity
正在运行的 Service
adb shell dumpsys activity services
mount 权限
修改权限 为可读可写
mount -o rw,remount /system
查看系统当前挂载的权限
mount | grep system
输入法
查看已安装的输入法
adb shell ime list -a
切换输入法
appium: adb shell ime set io.appium.android.ime/.UnicodeIME
sougou: adb shell ime set com.sohu.inputmethod.sogou/.SogouIME
adbkeyboard: adb shell ime set com.android.adbkeyboard/.AdbIME
wifi密码
查看wifi保存的密码
/data/misc/wifi
cat wpa_supplicant.conf
系统属性
查看、修改系统属性
getprop | grep mic
setprop sys.hw.cvte.mic.dumpPath /data/mic/
// 修改文件权限
chmod 777 data/
修改系统屏幕方向
mount -o rw,remount /system
cd system
busybox vi build.prop
// 查找 hwr属性 (vim / 查找命令)修改屏幕角度方向
Logcat
logcat -c;logcat // 清空所有缓存信息
adb logcat *:E // 需要打印级别为Error的信息
adb shell logcat > ~/Desktop/signway_err1.log // 打印日志到指定文件
查看系统运行内存信息
Procrank
进入烧录模式
adb shell reboot loader
monkey测试
adb shell monkey -p [程序包名] -v [事件数量]
Linux 常用命令
- 查找文件命令
linux系统下 :
find -name "文件名"
查找一个带 Activity 的文件
find -name "*Activity*.java"
mac :
如果在mac系统(Uinux)需要加.代表查找当前目录
find . -name "文件名"
打开文件或者指定路径下的文件夹
open .
open "指定路径"
- 查找文件内容
grep -nr "文件内容” ./
- 查找指定类型文件的文件内容
find -name "文件名" | grep -nr "文件内容"
例:find -name " *.mk " | grep -nr " baidu "
打包系统签名
- 系统签名证书的目录是“build/target/product/security”
- platform.x509.pem platform.pk8
java -jar signapk.jar platform.x509.pem platform.pk8 rawOpenSDKService.apk OpenSDKService.apk
内存检测
procrank
- 内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
- VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)是单个进程全部可访问的地址空间
- RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)是单个进程实际占用的内存大小,对于单个共享库, 尽管无论多少个进程使用,实际该共享库只会被装入内存一次。
- PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
- USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)USS 是一个非常非常有用的数字, 因为它揭示了运行一个特定进程的真实的内存增量大小。如果进程被终止, USS 就是实际被返还给系统的内存大小。
- USS 是针对某个进程开始有可疑内存泄露的情况,进行检测的最佳数字。怀疑某个程序有内存泄露可以查看这个值是否一直有增加 使用dumpsys meminfo查看内存信息