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