ADB簡介
adb命令是adb這個程序自帶的一些命令,而adb shell則是調(diào)用的Android系統(tǒng)中的命令,這些Android特有的命令都放在Android設(shè)備的system/bin目錄下
查看adb版本號
查看adb版本號:adb version
查看電腦上連接的所有手機(jī)設(shè)備
查看電腦上連接的所有手機(jī)設(shè)備:adb devices
指定對應(yīng)serialNumber號的設(shè)備/模擬器
adb -s HJS0218930001800 install test.apk指定在設(shè)備號為HJS0218930001800的設(shè)備上安裝應(yīng)用
adb pull 和 adb push
-
adb pull [手機(jī)路徑] [電腦路徑] 將手機(jī)中的文件拉取到電腦中,示例:adb pull /sdcard/test.txt E:\ -
adb push [電腦路徑] [手機(jī)路徑] 將電腦中的文件推送到手機(jī)中,示例:adb push E:\test.txt /sdcard/
adb install
- 安裝應(yīng)用:
adb install test.apk-
-r:替換已經(jīng)存在的應(yīng)用,即adb install -r test.apk -
-d:允許降版本安裝 -
-t:允許安裝測試包 -
-s:將應(yīng)用安裝到sdcard中 -
-g:為應(yīng)用授予所有運行時權(quán)限
-
adb uninstall
- 卸載應(yīng)用:
adb uninstall [packagename],其中packagename表示應(yīng)用包名,示例:
adb uninstall com.tencent.mm-
-k:表示卸載應(yīng)用但是保留數(shù)據(jù)和緩存目錄,示例:adb uninstall -k com.tencent.mm
-
adb logcat
- 查看所有日志:
adb logcat-
-v:設(shè)置日志的輸出格式 -
-s:查看某一標(biāo)識的日志:adb logcat -s [flag],示例:adb logcat -s test,同時過濾多個標(biāo)識:adb logcat -s test1,test2,test3 -
-f:將應(yīng)用日志輸出到手機(jī)文件中:adb logcat -f [filePath],其中filePath表示文件路徑
,示例:adb logcat -f /sdcard/test.txt -
-t:輸出最近的幾條日志,然后退出命令。示例:adb logcat -t 10
-
- 將應(yīng)用日志輸出到電腦文件中:
adb logcat > E:\test.txt - 指定輸出某一標(biāo)識的某個日志級別及以上的日志信息:
adb logcat -s test:D- 同時輸出多個標(biāo)識的某個日志級別及以上的日志信息:
adb logcat -s test1,test2,test3:D - 輸出所有某個日志級別及以上的日志信息:
adb logcat *:D - 日志級別分類:
-
V:Verbose,默認(rèn)日志 -
D:Debug,調(diào)試日志。 -
I:Info,一般提示性信息 -
W:Warn,警告信息 -
E:Error,異?;蝈e誤信息
-
- 同時輸出多個標(biāo)識的某個日志級別及以上的日志信息:
- 將指定標(biāo)識的某個日志級別及以上的日志信息輸出到電腦文件中:
adb logcat -s gyb:D > E:\test.txt - 查看指定應(yīng)用日志:
windows命令如下adb logcat | findstr [進(jìn)程ID],linux命令入下adb logcat | grep [進(jìn)程ID],示例:adb logcat | findstr 13584- 查看指定應(yīng)用的指定標(biāo)識的日志:
windows命令如下adb logcat -s test:D | findstr 13584,linux命令如下adb logcat -s test:D | grep 13584
- 查看指定應(yīng)用的指定標(biāo)識的日志:
adb shell
ps
- 列出手機(jī)中所有進(jìn)程信息:
adb shell ps - 查找某個應(yīng)用的進(jìn)程信息:
windows命令如下adb shell "ps | grep [keyword]"或adb shell ps | findstr [keyword],linux命令如下adb shell ps | grep [keyword],其中keyword
可以是應(yīng)用包名或者包名的一部分,示例:adb shell "ps | grep com.example.learn"
pm
- 列出手機(jī)中已安裝的所有應(yīng)用包名:
adb shell pm list packages-
-s:列出手機(jī)中已安裝的所有系統(tǒng)應(yīng)用,即adb shell pm list packages -s -
-3:列出手機(jī)中已安裝的所有第三方應(yīng)用 -
-f:列出手機(jī)中已安裝的所有應(yīng)用的包名和APK存放路徑
-
- 查找對應(yīng)包名的
APK所在路徑:adb shell pm path com.tencent.mm - 禁止應(yīng)用:
adb shell pm disable [packagename],其中packagename表示應(yīng)用包名,示例:
adb shell pm disable com.tencent.mm - 啟用應(yīng)用:
adb shell pm enable [packagename],其中packagename表示應(yīng)用包名,示例:
adb shell pm enable com.tencent.mm - 清楚應(yīng)用數(shù)據(jù)和緩存:
adb shell pm clear [packagename],其中packagename表示應(yīng)用包名,示例:
adb shell pm clear com.tencent.mm
APK簽名
查看簽名文件
keytool -list -v -keystore [keystorePath]
keystorePath:簽名文件絕對路徑
示例:
keytool -list -v -keystore D:\Key\test.jks
查看第三方應(yīng)用簽名
首先對第三方應(yīng)用進(jìn)行解壓縮,找到文件名為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名稱(創(chuàng)建時所填寫)
示例:
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名稱(創(chuàng)建時所填寫)
示例:
jarsigner -verbose -keystore D:\Key\test.jks -storepass test -signedjar D:\Key\New.apk D:\Key\Old.apk test