日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android adb你真的会用吗?

發(fā)布時(shí)間:2025/6/15 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android adb你真的会用吗? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

引言

本文基于Android官方文檔, 以及個(gè)人工作的使用經(jīng)驗(yàn), 總結(jié)下adb的常用用法, 備忘.

1, adb簡(jiǎn)介

adb全名Andorid Debug Bridge. 顧名思義, 這是一個(gè)Debug工具.
然而, 為何稱之為Bridge呢? 因?yàn)閍db是一個(gè)標(biāo)準(zhǔn)的CS結(jié)構(gòu)的工具, 是要連接開(kāi)發(fā)電腦和你的調(diào)試手機(jī)的.包含如下幾個(gè)部分:

  • Client端, 運(yùn)行在開(kāi)發(fā)機(jī)器中, 即你的開(kāi)發(fā)PC機(jī). 用來(lái)發(fā)送adb命令.
  • Deamon守護(hù)進(jìn)程, 運(yùn)行在調(diào)試設(shè)備中, 即的調(diào)試手機(jī)或模擬器.
  • Server端, 作為一個(gè)后臺(tái)進(jìn)程運(yùn)行在開(kāi)發(fā)機(jī)器中, 即你的開(kāi)發(fā)PC機(jī). 用來(lái)管理PC中的Client端和手機(jī)的Deamon之間的通信.

2, 常用用法

2.1 adb devices

列舉當(dāng)前連接的調(diào)試設(shè)備

$ adb devices List of devices attached DU2SSE1467010378 device

2.2 adb logcat

打印log信息

指令說(shuō)明備注
adb logcat打印log/
adb logcat -c清除手機(jī)的log buffer有些手機(jī)權(quán)限控制, 不支持.
adb logcat -b <buffer>打印指定buffer的log信息buffer有: main(主log區(qū),默認(rèn)), events(事件相關(guān)的log), radio(射頻, telephony相關(guān)的log)
adb logcat -v <format>格式化輸出log常用的用adb logcat -v time顯示時(shí)間
adb logcat -f <filename>輸出log到指定文件

2.3 adb install/uninstall

安裝卸載apk

// 安裝apk時(shí)指定apk file路徑 $ adb install ~/Downloads/mobileqq_android.apk [100%] /data/local/tmp/mobileqq_android.apk pkg: /data/local/tmp/mobileqq_android.apk Success // 卸載apk時(shí)指定包名 $ adb uninstall com.tencent.mobileqq Success

2.4 adb pull/push

調(diào)試設(shè)備和開(kāi)發(fā)PC之間拷貝文件.

// 拷貝本地文件到調(diào)試設(shè)備中 $ adb push ~/temp/GithubApp.trace /sdcard/ [100%] /sdcard/GithubApp.trace// 從調(diào)試設(shè)備中拷貝文件到本地 $ adb pull /sdcard/GithubApp.trace ~/ [100%] /sdcard/GithubApp.trace

2.5 adb start/kill-server

啟動(dòng)/殺死adb簡(jiǎn)介中提到的Server端進(jìn)程.

由于adb并不穩(wěn)定, 有時(shí)候莫名的問(wèn)題掉線時(shí), 可以先kill-server, 然后start-server來(lái)確保Server進(jìn)程啟動(dòng). 往往可以解決問(wèn)題.

2.5 adb shell

進(jìn)入調(diào)試設(shè)備的shell界面, 此時(shí)可以使用調(diào)試設(shè)備中的很多指令. 下文高階用法中很多就是.

$ adb shell shell@hwH60:/ $

3, 高階用法

3.1 adb connect/disconnect

通過(guò)wifi進(jìn)行遠(yuǎn)程連接手機(jī)進(jìn)行調(diào)試的.
https://developer.android.com/studio/command-line/adb.html#wireless

需先連上usb模式, 開(kāi)啟遠(yuǎn)程調(diào)試模式:
$ adb tcpip 5555

3.2 adb shell am

am即activity manager.
該命令用來(lái)執(zhí)行一些系統(tǒng)動(dòng)作, 例如啟動(dòng)指定activity, 結(jié)束進(jìn)程, 發(fā)送廣播, 更改屏幕屬性等. 調(diào)試?yán)?

指令說(shuō)明備注
start <Intent>根據(jù)intent指向啟動(dòng)ActivityIntent可以是顯示的指向activity, 也可以是ACTION方式, 并且可以添加flag, data等參數(shù)信息.
startservice <Intent>啟動(dòng)Service可以添加flag, data等參數(shù)信息.
broadcast <Intent>發(fā)送廣播可以添加flag, data等參數(shù)信息.
monitor啟動(dòng)一個(gè)Crash和ANR的監(jiān)聽(tīng)器如有Crash或ANR會(huì)在控制臺(tái)輸出相關(guān)信息.
force-stop <Package>強(qiáng)制停止該包相關(guān)的一切傳入package name.
kill <Package>殺死該包相關(guān)的所有進(jìn)程傳入package name.
kill-all殺死所有后臺(tái)進(jìn)程
display-size WxH改變顯示的分辨率例如adb shell am display-size 1280x720, 手機(jī)可能不支持.
display-density <dpi>改變顯示的density例如adb shell am display-density 320, 手機(jī)可能不支持.

3.3 adb shell pm

pm即package manager.
用來(lái)執(zhí)行package相關(guān)的操作, 例如安裝卸載, 查詢系統(tǒng)的安裝包等.

指令說(shuō)明備注
list packages <Filter>列出滿足filter條件的所有包
list permissions <Group>列出該Group的所有權(quán)限
list features查看系統(tǒng)支持哪些feature例如藍(lán)牙, wifi, 攝像頭等.
install <Path>/uninstall <Package>安裝卸載
clear <Package>清除應(yīng)用數(shù)據(jù)

3.4 adb shell screencap

截屏, 比截屏快捷鍵更加方便快捷.

$ adb shell screencap /sdcard/screen.png $ adb pull /sdcard/screen.png ~/temp [100%] /sdcard/screen.png

3.5 adb shell screenrecord

錄屏, 做demo的話, 可以很方便的用這個(gè)命名錄制視頻, 然后借助工具將其轉(zhuǎn)換成gif圖, 超贊. 如下:

screenrecord gif

Android4.4及以上系統(tǒng)可用.

2.5 adb shell dumpsys

強(qiáng)大的dump工具, 可以輸出很多系統(tǒng)信息. 例如window, activity, task/back stack信息, wifi信息等.

探索Activity之launchMode和探索Activity之啟動(dòng)Intent flag和Affinity就是用adb shell dumpsys activity來(lái)輸出task信息的.

常用dumpsys:

指令說(shuō)明備注細(xì)分參數(shù)
activity輸出app組件相關(guān)信息還可以用細(xì)分參數(shù)獲得單項(xiàng)內(nèi)容, 下同. 例如adb shell dumpsys activity activities來(lái)獲取activity task/back stack信息.activites, service, providers, intents, broadcasts, processes
alarm輸出當(dāng)前系統(tǒng)的alarm信息//
cpuinfo輸出當(dāng)前的CPU使用情況//
diskstats輸出當(dāng)前的磁盤(pán)使用狀態(tài)//
batterystats電池使用信息//
packagepackage相關(guān)信息, 相當(dāng)于pm功能的集合輸出諸如libs, features, packages等信息/
meminfo輸出每個(gè)App的內(nèi)存使用和系統(tǒng)內(nèi)存狀態(tài)可以指定包名, 例如adb shell dumpsys meminfo com.anly.githubapp/
window輸出當(dāng)前窗口相關(guān)信息/policy, animator, tokens, windows


作者:anly_jun
鏈接:https://www.jianshu.com/p/5980c8c282ef
來(lái)源:簡(jiǎn)書(shū)
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

轉(zhuǎn)載于:https://www.cnblogs.com/givemelove/p/8492391.html

總結(jié)

以上是生活随笔為你收集整理的Android adb你真的会用吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。