ADB简介
adb
命令是adb
这个程序自带的一些命令,而adb shell
则是调用的Android
系统中的命令,这些Android
特有的命令都放在Android
设备的system/bin
目录下
查看adb
版本号
查看adb
版本号:adb version
查看电脑上连接的所有手机设备
查看电脑上连接的所有手机设备:adb devices
指定对应serialNumber
号的设备/模拟器
adb -s HJS0218930001800 install test.apk
指定在设备号为HJS0218930001800
的设备上安装应用
adb pull
和 adb push
-
adb pull [手机路径] [电脑路径] 将手机中的文件拉取到电脑中
,示例:adb pull /sdcard/test.txt E:\
-
adb push [电脑路径] [手机路径] 将电脑中的文件推送到手机中
,示例:adb push E:\test.txt /sdcard/
adb install
- 安装应用:
adb install test.apk
-
-r
:替换已经存在的应用,即adb install -r test.apk
-
-d
:允许降版本安装 -
-t
:允许安装测试包 -
-s
:将应用安装到sdcard
中 -
-g
:为应用授予所有运行时权限
-
adb uninstall
- 卸载应用:
adb uninstall [packagename]
,其中packagename
表示应用包名,示例:
adb uninstall com.tencent.mm
-
-k
:表示卸载应用但是保留数据和缓存目录,示例:adb uninstall -k com.tencent.mm
-
adb logcat
- 查看所有日志:
adb logcat
-
-v
:设置日志的输出格式 -
-s
:查看某一标识的日志:adb logcat -s [flag]
,示例:adb logcat -s test
,同时过滤多个标识:adb logcat -s test1,test2,test3
-
-f
:将应用日志输出到手机文件中:adb logcat -f [filePath]
,其中filePath
表示文件路径
,示例:adb logcat -f /sdcard/test.txt
-
-t
:输出最近的几条日志,然后退出命令。示例:adb logcat -t 10
-
- 将应用日志输出到电脑文件中:
adb logcat > E:\test.txt
- 指定输出某一标识的某个日志级别及以上的日志信息:
adb logcat -s test:D
- 同时输出多个标识的某个日志级别及以上的日志信息:
adb logcat -s test1,test2,test3:D
- 输出所有某个日志级别及以上的日志信息:
adb logcat *:D
- 日志级别分类:
-
V
:Verbose
,默认日志 -
D
:Debug
,调试日志。 -
I
:Info
,一般提示性信息 -
W
:Warn
,警告信息 -
E
:Error
,异常或错误信息
-
- 同时输出多个标识的某个日志级别及以上的日志信息:
- 将指定标识的某个日志级别及以上的日志信息输出到电脑文件中:
adb logcat -s gyb:D > E:\test.txt
- 查看指定应用日志:
windows
命令如下adb logcat | findstr [进程ID]
,linux
命令入下adb logcat | grep [进程ID]
,示例:adb logcat | findstr 13584
- 查看指定应用的指定标识的日志:
windows
命令如下adb logcat -s test:D | findstr 13584
,linux
命令如下adb logcat -s test:D | grep 13584
- 查看指定应用的指定标识的日志:
adb shell
ps
- 列出手机中所有进程信息:
adb shell ps
- 查找某个应用的进程信息:
windows
命令如下adb shell "ps | grep [keyword]"
或adb shell ps | findstr [keyword]
,linux
命令如下adb shell ps | grep [keyword]
,其中keyword
可以是应用包名或者包名的一部分,示例:adb shell "ps | grep com.example.learn"
pm
- 列出手机中已安装的所有应用包名:
adb shell pm list packages
-
-s
:列出手机中已安装的所有系统应用,即adb shell pm list packages -s
-
-3
:列出手机中已安装的所有第三方应用 -
-f
:列出手机中已安装的所有应用的包名和APK
存放路径
-
- 查找对应包名的
APK
所在路径:adb shell pm path com.tencent.mm
- 禁止应用:
adb shell pm disable [packagename]
,其中packagename
表示应用包名,示例:
adb shell pm disable com.tencent.mm
- 启用应用:
adb shell pm enable [packagename]
,其中packagename
表示应用包名,示例:
adb shell pm enable com.tencent.mm
- 清楚应用数据和缓存:
adb shell pm clear [packagename]
,其中packagename
表示应用包名,示例:
adb shell pm clear com.tencent.mm
APK签名
查看签名文件
keytool -list -v -keystore [keystorePath]
keystorePath:签名文件绝对路径
示例:
keytool -list -v -keystore D:\Key\test.jks
查看第三方应用签名
首先对第三方应用进行解压缩,找到文件名为META-INF的文件夹,找到里面后缀名为.RSA的文件
keytool -printcert -file [RSAPath]
RSAPath:对第三方APK文件解压缩后,文件名为META-INF的文件夹中后缀名为.RSA的文件
示例:
keytool -printcert -file D:\Test\META-INF\TEST.RSA
给空白APK文件签名
方法一:
jarsigner -verbose -keystore [keystorePath] -signedjar [newPath] [oldPath] [alias]
keystorePath:签名文件绝对路径
newPath:签名后文件的输出路径
oldPath:未签名文件的原始路径
alias:签名文件的alias名称(创建时所填写)
示例:
jarsigner -verbose -keystore D:\Key\test.jks -signedjar D:\Key\New.apk D:\Key\Old.apk test
方法二:
jarsigner -verbose -keystore [keystorePath] -storepass [keystorePass] -signedjar [newPath] [oldPath] [alias]
keystorePath:签名文件绝对路径
keystorePass:签名文件密码
newPath:签名后文件的输出路径
oldPath:未签名文件的原始路径
alias:签名文件的alias名称(创建时所填写)
示例:
jarsigner -verbose -keystore D:\Key\test.jks -storepass test -signedjar D:\Key\New.apk D:\Key\Old.apk test